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

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

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

今天来学习一个新的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 包帮助文档
目录
相关文章
Echarts实战案例代码(19):利用visualMap视觉映射组件制作五色玫瑰工作进程图
Echarts实战案例代码(19):利用visualMap视觉映射组件制作五色玫瑰工作进程图
230 0
|
4天前
|
编解码 数据可视化 前端开发
如何使用 D3.js 创建一个交互式的地图可视化?
如何使用 D3.js 创建一个交互式的地图可视化?
|
3月前
|
数据可视化
R语言多图合成:优雅地在一个画布上展示多个图形
【8月更文挑战第30天】R语言提供了多种方法来实现多图合成,从基础的`par()`函数到高级的`gridExtra`、`ggplot2`和`cowplot`包,每种方法都有其独特的优势和应用场景。通过掌握这些技术,你可以根据实际需求灵活地组合图形,从而更高效地展示和解读数据。希望本文能为你提供一些有益的参考和启示。
|
3月前
|
数据可视化 前端开发
可视化图表与源代码显示的动态调整
【8月更文挑战第6天】本篇文章通过一个前端图表示例由浅入深,从基本图表显示再到页面源代码的显示到最后实现通过拖动一个可调整大小的分隔符,使用户可以动态地调整图表显示区域和源代码显示区域的大小。全文注释标注,小白也可上手尝试
48 1
可视化图表与源代码显示的动态调整
|
2月前
|
JSON JavaScript Linux
绘图框架 plotly 知识点补充(绘制子图,图表保存)
绘图框架 plotly 知识点补充(绘制子图,图表保存)
61 13
|
6月前
|
自然语言处理 数据可视化
【词云图绘制实战】——数据准备、清洗、多形式展示
【词云图绘制实战】——数据准备、清洗、多形式展示
|
6月前
|
数据可视化
R语言动态图可视化:如何、创建具有精美动画的图
R语言动态图可视化:如何、创建具有精美动画的图
|
6月前
|
数据可视化
R语言对布丰投针(蒲丰投针)实验进行模拟和动态可视化生成GIF动画
R语言对布丰投针(蒲丰投针)实验进行模拟和动态可视化生成GIF动画
|
6月前
|
机器学习/深度学习 数据可视化 算法
神经网络模型结构框架可视化的在线与软件绘图方法
神经网络模型结构框架可视化的在线与软件绘图方法
232 1
|
定位技术
Echarts实战案例代码(27):地理坐标图视觉引导线及富文本提示框的案例
Echarts实战案例代码(27):地理坐标图视觉引导线及富文本提示框的案例
409 0