R语言使用 ggscidca包优雅的绘制竞争风险模型决策曲线

本文介绍了DCA(DecisionCurveAnalysis)在临床决策中的作用,特别是在评估诊断模型准确性时,相比于ROC曲线,它考虑了假阳性和假阴性的影响。作者展示了如何使用R语言的ggscidca包进行竞争风险模型决策曲线的绘制,包括数据准备、模型建立和图形展示,以及与其他包如dcurves的对比。
摘要由CSDN通过智能技术生成

DCA(Decision Curve Analysis)临床决策曲线是一种用于评价诊断模型诊断准确性的方法,在2006年由AndrewVickers博士创建,我们通常判断一个疾病喜欢使用ROC曲线的AUC值来判定模型的准确性,但ROC曲线通常是通过特异度和敏感度来评价,实际临床中我们还应该考虑,假阳性和假阴性对病人带来的影响,因此在DCA曲线中引入了阈概率和净获益的概念。

在这里插入图片描述
据我所知目前R语言官网CRAN上(github上没有查过),能做竞争风险模型决策曲线的R包非常少,除了dcurves包,几乎就是目前我写的ggscidca包了。在新版的ggscidca包支持竞争风险模型决策曲线绘制,咱们使用下面代码安装ggscidca包,安装了旧版本的在安装一次就可以更新到新版本。

install.packages("ggscidca")

下面我来演示一下怎么使用ggscidca包进行竞争风险模型决策曲线绘制,一共需要3步,我自认为还是相对简单的。ggscidca包对于竞争风险模型生存概率的计算依赖于cmprsk包
我们先导入R包和数据,数据使用ggscidca自带的df_surv数据

library(survival)
library(reshape2)
library(ggplot2)
library(ggscidca)
library(cmprsk)
df_surv<-df_surv

在这里插入图片描述
这个数据我简单介绍一下,cancer_cr是结局变量,diagnosed with cancer是死于癌症,dead other causes表示死于其他原因,算是竞争因素了,censor
表示生存,ttcancer表示生存时间,其他的是一些协变量 。刚才我说了,绘制竞争风险模型需要3步,
第一步就是整理数据,建立生存分析模型,整理数据中最重要的一步就是把结局变量变成0,1,2形式,0表示生存,1表示你感兴趣的结局,2表示竞争风险。这步不做就没法分析,你原先就是0,1,2形式的不用改,直接下一步就行

df_surv$cancer_cr<-ifelse(df_surv$cancer_cr=="diagnosed with cancer",1,
                          ifelse(df_surv$cancer_cr=="dead other causes",2,0))

在这里插入图片描述
改好后就是建立生存分析模型,这里因为有两个结局变量,因此咱们要选取自己感兴趣的结局变量。

cox_model <- coxph(Surv(ttcancer, cancer_cr==1) ~ age + famhistory + marker, data = df_surv)

建立好模型后,第一步完成,第二部就是把模型转成竞争风险模型类型

cox_model1<-newcrr(cox_model)

这样第二部也完成了,第三步直接绘图就行,和生存分析一样,timepoint不填入的话就自动选择中位数生存时间,这里我选择1.5年

scidca(cox_model1,timepoint=1.5,newdata = df_surv)

在这里插入图片描述
这样就绘制完成啦,还算比较简单的把,如果你需要验证集的决策曲线,newdata这里填入验证集的数据就可以了。
还有一些调整,可以参看既往文章《R语言使用 ggscidca包优雅的绘制随机森林决策曲线》,例如加上虚线
在这里插入图片描述
加上阈值

scidca(cox_model1,timepoint=1.5,newdata = df_surv,threshold.line = T,threshold.text = T)

在这里插入图片描述
表明在模型6%-87%这个阈值是获益的,位置还可以调,我这里就不调了。来个普通决策曲线也是可以的

scidca(cox_model1,timepoint=1.5,newdata = df_surv,colbar = F)

在这里插入图片描述
普通的决策曲线也是可以加阈值的

scidca(cox_model1,timepoint=1.5,newdata = df_surv,colbar = F,threshold.text = T)

在这里插入图片描述
然而对于df_surv这个数据,ggscidca包绘制的竞争风险决策曲线和dcurves包是不一样的,下图左边是dcurves包,右边是ggscidca包

在这里插入图片描述
对于不同的结果, ggscidca包的结果是根据决策曲线发明者大佬AndrewVickers博士提供的stdca.R函数生成结果的,stdca.R函数其实是可以进行竞争风险模型分析的,但是stdca.R单独生成结果有点小问题(其实不算问题,应该认知不同),我稍微修改了一点,让它更易于分析竞争风险模型(核心代码没有动),我反复比对了stdca.R的代码原理和数据生成的结果,认为没有错,那只能是dcurves包错了。

欢迎斧正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天桥下的卖艺者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值