欢迎光临散文网 会员登陆 & 注册

手把手的教程!一文小云教你学会临床决策曲线(DCA)

2023-11-20 11:01 作者:尔云间  | 我要投稿

做肿瘤分析的小伙伴看过来啦,小伙伴平时做临床分析的时候,肯定都少不了对模型的构建,比如一些单因素的Cox回归分析,或者多因素的Cox回归分析,lasso等等,既然做了模型我们肯定少不了对模型的验证,验证的方式也有很多用比如对模型ROC曲线验证,再比如,临床特征比较多的情况下,小伙伴有的就会构建Nomogram模型,那么就会使用校准曲线去验证模型,以上我们介绍的都是对模型的本身去验证,小云在这里教大家一个新的曲线,可以去验证小伙伴构建的模型在临床上的适用性!就是决策曲线,小云这里先简单给大家介绍一下: 决策曲线分析法(decision curve analysis,DCA)是一种评估临床预测模型、诊断试验和分子标记物的简单方法。 我们在传统的诊断试验指标如:敏感性,特异性和ROC曲线下面积仅测量预测模型的诊断准确性,未能考虑特定模型的临床效用,而DCA的优势在于它将患者或决策者的偏好整合到分析中。这种理念的提出满足了临床决策的实际需要,在临床分析中的应用日益广泛。所以呢,小云这里较小伙伴绘制,用在你的文章中,大大的增长文章的丰富度! 小云这里使用的是R包rmda包去绘制DCA,其实还有很多包比如ggDCA等, 我们先导入数据: dcaData <- read.table("test2.txt",sep = "\t",row.names = 1,check.names = F,stringsAsFactors = F,header = T)

小云这里使用的是小云平时整理的,小伙伴可以按照自己数据形式去设置,小云提醒一下,数据形式要设置成数字的形式,这里小云的临床特征在图中,也加入了一些基因放入模型中 library(rmda)#加载包 #data("dcaData") #构架基础DCA模型 model <- decision_curve(event~stage + age + Mstage + Nstage + Grade+PCNA+MCM2+GINS2+time ,                                  family=binomial(link='logit'),                                 data = dcaData,                                 thresholds = seq(0, .4, by = .005),                                 bootstraps = 10) 在上述decision_curve()函数中, family=binomial(link=‘logit)是使用Logistic回归来拟合模型,默认值。 threshold设置横坐标阈概率的范围,一般是0~1。但如果有某种具体情况,大家一致认为阈概率达到某个值以上,比如50%,则必须采取干预措施,那么0.5以上的研究就没什么意义了,可以设为0-0.5。by是指每隔多少距离计算一个数据点。 bootsrap 重抽样次数 小云这里是按照自己的临床特征还有基因,小伙伴要按照自己情况来#event~stage + age + Mstage + Nstage + Grade+PCNA+MCM2+GINS2+time 下面就是绘制DCA的基本图形了我们使用默认的参数 plot_decision_curve(model,                      curve.names = "Clinical and genetic models",                     col = c("#DC0000B2"),                     confidence.intervals=F #不显示置信区间

颜色名称都可以自己调整 但是有的小伙伴想对比两个模型,总不能绘制两个图吧,小云下面就教大家绘制两个模型的DCA曲线 model.Clinic <- decision_curve(event~stage + age + Mstage + Nstage + Grade,                              data = dcaData,                              thresholds = seq(0, .4,by = .005),                              bootstraps = 10)# stage + age + Mstage + Nstage + Grade变量建立模型 我们先在构建一个模型,这我们随便使用几个变量进行展示,小伙伴要按照自己的变量去设置 #绘制两个模型DCA曲线 plot_decision_curve(list(model, model.Clinic),                     curve.names = c("Hub Gene model", "Clinic model"),                     col = c("#3C5488B2", "#DC0000B2"),#设置线的颜色                     lty = c(1,2), # 设置线形                     lwd = c(3,3, 2, 2),  #设置线宽,分别为baseling.model、full.model、All和None                     confidence.intervals = F,                     legend.position = "topright")

DCA曲线不止可以构建模型的验证,还可以绘制临床的影响曲线: 这里我们使用plot_clinical_impact()函数绘制baseline.model模型的临床影响曲线(clinical impact curve)。 模型预测1 000人的风险分层,显示“损失:受益”坐标轴,显示置信区间。 plot_clinical_impact(model,                      xlim = c(0, .4),                      col = c("#3C5488B2", "#DC0000B2"))

如果小伙伴觉得两个模型的计算方式一样,我们可以使用交叉的验证去绘制DCA曲线 #交叉验证 full.model <- cv_decision_curve(event~stage + age + GINS2 + MCM2 + PCNA,                                    data = dcaData,                                    folds = 5,                                    thresholds = seq(0, .4, by = .01)) full.model_Hub <- decision_curve(event~stage + age + GINS2 + MCM2 + PCNA,                                       data = dcaData,                                       thresholds = seq(0, .4,by = .01),                                       confidence.intervals = 'none') 同样的我们先绘制两个模型,计算方式有改变,一个是cv_decision_curve,一个是decision_curve plot_decision_curve(list(full.model_Hub, full.model),                     curve.names = c('Apparent curve',                                     'Cross-validated curve'),                     col = c("#3C5488B2", "#DC0000B2"),                     lty = c(2,1),                     lwd = c(3,2, 2, 1),                     legend.position = ("topright")) 同样的代码绘制两个曲线

结果不一样,好了上述代码我们手把手教会大家如何绘制DCA图,还不快去试试? 图片绘制起来很容易,小伙伴要多多理解代码的意义,也要理解绘制图的含义,这样才能将绘制的图放入自己的文章中!

手把手的教程!一文小云教你学会临床决策曲线(DCA)的评论 (共 条)

分享到微博请遵守国家法律