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底前采用预付方式与我们开展合作。
领取专属 10元无门槛券
私享最新 技术干货