首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

好玩的一个R包!绘制动态列线图

2023年以来浙中医大学郑老师开设了一系列医学科研统计课程,零基础入门医学统计包括R语言、meta分析、临床预测模型、真实世界临床研究、临床试验数据分析、重复测量资料分析等9门课程,如果您有需求,不妨点击下方跳转查看: 

2023年9门科研统计课程预售:多次直播,课题报销可先开发票

====================================================================

绘制动态列线图常见的包有DynNom包,这个包用的很多,今天来学习另外一个绘制动态列线图的R包——shinyPredict包。

上面这个图就是使用shinyPredict包绘制的动态列线图。

就个人而言,我感觉这个包比DynNom包好用,功能也更强大一些,学习也不复杂。

下面来学习下这个R包。

1. 安装和加载R包

安装可以直接从CRAN上安装。

install.packages("shinyPredict")  # 安装包

library(shinyPredict) # 加载包

2. 加载数据集

使用survival包的lung数据集进行演示。

library(survival) # 加载包

data(lung) # 加载数据集

View(lung) # 预览数据集

这个数据集里面的变量比较简单。

在创建列线图前将lung数据集中需要用到的分类变量转化为因子。

lung$sex <- factor(lung$sex) # 将性别转换为因子

lung$ph.ecog <- factor(lung$ph.ecog) # 将ph.ecog变量转换为因子

3. 拟合模型

这里拟合三个生存模型用来绘制列线图。

tmp.m3 <- coxph(surv(time , status ) ~ sex + age,

data=lung,

model =FALSE, y=FALSE)

tmp.m4 <- coxph(surv(time , status ) ~ sex + age + ph.ecog,

data = lung,

model =FALSE, y=FALSE)

tmp.m5 <- coxph(surv(time , status ) ~ sex + age + ph.ecog + ph.karno,

data=lung,

model =FALSE, y=FALSE)

如上图所示,我们拟合了三个Cox回归模型,每个模型中纳入的变量不同。

4. 创建动态列线图

下面来创建动态列线图。

shinyPredict(models=list("Model 1"= tmp.m3),

data=lung[, c("time","status","sex","age")], # 创建动态列线图的数据

path = "C:\\Rdata\\shiny", # 动态列线图shiny app文件存放位置

title="Predicting lung cancer mortality") # 列线图的名称

运行上述代码后,会在C:\Rdata\shiny文件路径生成三个文件。

我们使用RStudio打开app.R文件。

如上图所示,点击Run App会生成一个shiny app。

使用起来很简单,如上动图所示,在Data一列中,数据也是实时变化的。

单就显示的信息以及可视化图形来说,这个包比DynNom包好用,功能也更强大一些。

在上面的动态列线图中,我们只纳入了一个模型,我们可以在动态列线图中纳入多个模型,实时查看比较多个模型的结果。

shinyPredict(models=list("Model 1"= tmp.m3, tmp.m4, tmp.m5),

data=lung[, c("time","status","sex","age","ph.ecog","ph.karno")], # 创建动态列线图的数据

path = "./", # 动态列线图shiny app文件存放位置

title="Predicting lung cancer mortality") # 列线图的名称

运行上述代码,用同样的方法打开shiny app。

如上图所示,在左侧可以看到3个模型,可以选择不同的模型查看预测概率。

这个app还支持图形主题修改,比如说我在左上角加入+ theme_bw(),点击SUBMIT,会修改图形的主题,如下所示。

当然,这样纳入多个模型也是有要求的,比如说模型的y变量要相同,另外shinyPredict()函数目前只支持"lm"、"glm"和"coxph"创建的模型,纳入的多个模型必须是同一函数拟合的模型。

最后可以将创建的shiny app部署到shiny服务器上,转化为永久网页。

如果觉得这个包不错,可以点击在看或分享给更多的朋友!谢谢!

参考资料

shinyPredict()函数帮助文件

详情请点击下方:

https://mp.weixin.qq.com/s/jqLZpMkqWC2bmBeTgg_2Lg

关注”医学论文与统计分析“公众号,获取更多精彩内容!

====================================================================

2023年统计服务

2023年,我们将开展从科研设计、数据分析、统计学报告等医学科研研究方法咨询与服务多项服务,若您有课题经费可以支持,欢迎您提前和我们联系,2022底前采用预付方式与我们开展合作。

2023年统计服务开启!欢迎提前洽谈数据分析、科研合作服务

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230316A03LFD00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券