如何使用一行代码在一张图形上展示不同的模型

简介: 如何使用一行代码在一张图形上展示不同的模型

在临床文章中,我们通常会构建多个模型,并且比较不同模型的系数差异。

今天来学习一个新的R包——ggstats包,包里有一个新的函数,可以使用这个函数来在一个图形上显示不同模型的系数差异。

1. 安装R包

install.packages("ggstats")
library(ggstats)
library(survival)
library(tidyverse)

2. 加载数据

使用colon 数据集进行演示。

# 查看数据集结构
glimpse(colon)

处理下数据。

mycolon <- colon %>%
  transmute(Time = time,
            Status = status,
            Age = age,
            Sex = factor(sex, levels = c(0, 1), labels = c("Female", "Male")),
            Obstruct = factor(obstruct, levels = c(0, 1), labels = c("No", "Yes")),
            Differ = factor(differ, levels = c(1, 2, 3),
                            labels = c("well", "moderate", "poor")),
            Extent = factor(extent, levels = c(1, 2, 3, 4),
                            labels = c("submucosa", "muscle",
                                       "erosa", "contiguous structures"))
  ) %>%
  na.omit()
glimpse(mycolon)

如上代码所示,我将colon 数据集中的部分变量转换了因子,并新建了一个数据集mycolon,下面使用mycolon 数据集进行演示。

3. 构建模型

先来拟合两个不同的逻辑回归模型。

# 模型1
fit1 <- glm(Status ~ Age + Sex + Obstruct + Differ + Extent,
            binomial(link = "logit"), data = mycolon)
fit1
# 模型2
fit2 <- glm(Status ~ Age + Sex + Obstruct + Differ,
            binomial(link = "logit"), data = mycolon)
fit2

4. 比较不同的模型

可以使用ggcoef_compare()函数来比较不同的模型。

models <- list(
  "Full model" = fit1,
  "Simp model" = fit2)
ggcoef_compare(models, exponentiate = TRUE)

同样这个R包支持ggplot2语法。

可以调整不同的参数来设置图形美化。

ggcoef_compare(models, exponentiate = TRUE,
               errorbar_height = 0.4, point_size = 2) +
  theme_bw() +
  theme(legend.position = c(0.85, 0.60),
        legend.background = element_blank())

5. 使用分面图形来显示模型

ggcoef_compare(models, type = "faceted", exponentiate = TRUE,
               errorbar_height = 0.4, point_size = 2) +
  theme(legend.position = c(0.85, 0.17),
        legend.background = element_blank())

如果要调整更多的参数,可以查看函数的帮助文档。

参考资料

  1. ggstats 包帮助文档
目录
相关文章
|
7月前
|
数据可视化 数据挖掘 Python
【数据分析与可视化】Matplotlib中动态rc参数设置详解与实战(图文解释 附源码)
【数据分析与可视化】Matplotlib中动态rc参数设置详解与实战(图文解释 附源码)
339 0
|
3月前
|
JSON JavaScript Linux
绘图框架 plotly 知识点补充(绘制子图,图表保存)
绘图框架 plotly 知识点补充(绘制子图,图表保存)
78 13
|
7月前
|
自然语言处理 数据可视化
【词云图绘制实战】——数据准备、清洗、多形式展示
【词云图绘制实战】——数据准备、清洗、多形式展示
|
6月前
JavaIO的简单代码实例和展示
JavaIO的简单代码实例和展示
25 1
|
5月前
|
数据可视化 Linux 数据格式
`seaborn`是一个基于`matplotlib`的Python数据可视化库,它提供了更高级别的接口来绘制有吸引力的和信息丰富的统计图形。`seaborn`的设计目标是使默认图形具有吸引力,同时允许用户通过调整绘图参数来定制图形。
`seaborn`是一个基于`matplotlib`的Python数据可视化库,它提供了更高级别的接口来绘制有吸引力的和信息丰富的统计图形。`seaborn`的设计目标是使默认图形具有吸引力,同时允许用户通过调整绘图参数来定制图形。
|
7月前
|
数据可视化
R语言动态图可视化:如何、创建具有精美动画的图
R语言动态图可视化:如何、创建具有精美动画的图
|
7月前
|
数据可视化
R语言对布丰投针(蒲丰投针)实验进行模拟和动态可视化生成GIF动画
R语言对布丰投针(蒲丰投针)实验进行模拟和动态可视化生成GIF动画
|
7月前
|
机器学习/深度学习 数据可视化 算法
神经网络模型结构框架可视化的在线与软件绘图方法
神经网络模型结构框架可视化的在线与软件绘图方法
250 1
|
7月前
|
数据可视化 数据挖掘 Python
【数据分析与可视化】Seaborn库简介及风格设置详解(图文解释 超详细)
【数据分析与可视化】Seaborn库简介及风格设置详解(图文解释 超详细)
367 1
|
7月前
|
存储 JSON 程序员
C#实现数据导出任一Word图表的通用呈现方法及一些体会
C#实现数据导出任一Word图表的通用呈现方法及一些体会