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

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

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

今天来学习一个新的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视觉映射组件制作五色玫瑰工作进程图
277 0
|
3月前
|
编解码 数据可视化 前端开发
如何使用 D3.js 创建一个交互式的地图可视化?
如何使用 D3.js 创建一个交互式的地图可视化?
|
6月前
|
数据可视化 前端开发
可视化图表与源代码显示的动态调整
【8月更文挑战第6天】本篇文章通过一个前端图表示例由浅入深,从基本图表显示再到页面源代码的显示到最后实现通过拖动一个可调整大小的分隔符,使用户可以动态地调整图表显示区域和源代码显示区域的大小。全文注释标注,小白也可上手尝试
67 1
可视化图表与源代码显示的动态调整
|
6月前
|
数据可视化
R语言多图合成:优雅地在一个画布上展示多个图形
【8月更文挑战第30天】R语言提供了多种方法来实现多图合成,从基础的`par()`函数到高级的`gridExtra`、`ggplot2`和`cowplot`包,每种方法都有其独特的优势和应用场景。通过掌握这些技术,你可以根据实际需求灵活地组合图形,从而更高效地展示和解读数据。希望本文能为你提供一些有益的参考和启示。
|
4月前
|
自然语言处理 资源调度 前端开发
前端大模型入门(四):不同文本分割器对比和效果展示-教你如何根据场景选择合适的长文本分割方式
本文详细介绍了五种Langchain文本分割器:`CharacterTextSplitter`、`RecursiveCharacterTextSplitter`、`TokenTextSplitter`、`MarkdownTextSplitter` 和 `LatexTextSplitter`,从原理、优缺点及适用场景等方面进行了对比分析,旨在帮助开发者选择最适合当前需求的文本分割工具,提高大模型应用的处理效率和效果。
530 1
|
5月前
|
JSON JavaScript Linux
绘图框架 plotly 知识点补充(绘制子图,图表保存)
绘图框架 plotly 知识点补充(绘制子图,图表保存)
125 13
|
6月前
|
C# 开发者 数据处理
WPF开发者必备秘籍:深度解析数据网格最佳实践,轻松玩转数据展示与编辑大揭秘!
【8月更文挑战第31天】数据网格控件是WPF应用程序中展示和编辑数据的关键组件,提供排序、筛选等功能,显著提升用户体验。本文探讨WPF中数据网格的最佳实践,通过DevExpress DataGrid示例介绍其集成方法,包括添加引用、定义数据模型及XAML配置。通过遵循数据绑定、性能优化、自定义列等最佳实践,可大幅提升数据处理效率和用户体验。
93 0
|
7月前
|
数据可视化 Linux 数据格式
`seaborn`是一个基于`matplotlib`的Python数据可视化库,它提供了更高级别的接口来绘制有吸引力的和信息丰富的统计图形。`seaborn`的设计目标是使默认图形具有吸引力,同时允许用户通过调整绘图参数来定制图形。
`seaborn`是一个基于`matplotlib`的Python数据可视化库,它提供了更高级别的接口来绘制有吸引力的和信息丰富的统计图形。`seaborn`的设计目标是使默认图形具有吸引力,同时允许用户通过调整绘图参数来定制图形。
|
8月前
|
XML 小程序 Java
java小程序代码详细展示
java小程序代码详细展示
50 0
|
9月前
|
图形学 Python
PyQt中图表的建立与显示(完整过程演示)
PyQt中图表的建立与显示(完整过程演示)
205 0