分享

R数据分析:临床预测模型实操,校准曲线和DCA曲线做法示例

 CodewarCodewar 2022-07-14 发布于山东

之前给大家写过好几篇很详细的临床预测模型的原理解析,本文接着之前的文章,继续写做法,首先依然是找到一篇参照论文,今天我们的示例文章是一篇来自美国心脏学会杂志的文章:

Zhang X, Yuan K, Wang H, Gong P, Jiang T, Xie Y, Sheng L, Liu D, Liu X, Xu G. Nomogram to Predict Mortality of Endovascular Thrombectomy for Ischemic Stroke Despite Successful Recanalization. J Am Heart Assoc. 2020 Feb 4;9(3):e014899. doi: 10.1161/JAHA.119.014899. Epub 2020 Jan 24. PMID: 31973604; PMCID: PMC7033899.

原文给大家贴在上面,我们要做的就是对文章统计部分进行复现。

原文回顾

整篇文章就是开发了一个用于预测癌症患者的3个月死亡率风险诺模图,考虑了什么变量,用的是什么人群队列,本文不关心,感兴趣的同学自行去阅读原文哈,本文着重写宏观做法,作者具体使用的模型是Step-wise logistic regression,文章中有报告各个变量的OR和整体模型的concordance index,重点的结果一个是诺莫图:

还有就是对整体模型,作者还展示了模型的校准曲线和决策曲线(意义详解见R数据分析:临床预测模型中校准曲线和DCA曲线的意义与做法

文章中的校准曲线长这样:

和决策曲线长这样:

因为回归的or之前写过,今天就写如何几个图的做法。

实例操练

我现在有数据如下:

我想以Y为因变量,做一个预测模型,同时展示诺莫图和校准曲线以及决策曲线,ROC之前发文章有详细的写过,本文直接略过哈。

首先,我需要先训练我的模型,此时是个logistics模型,得用lrm函数进行拟合:

refit <- lrm(y > 3 ~ studage + lectage + service + dept, dat, x = TRUE, y = TRUE)

模型拟合好形成refit对象,直接接上calibrate函数,再plot下就可以:

plot(calibrate(refit, B = 400))

运行上面的代码后直接获得下图,基本不用改动,和发表的文献结构一模一样:

上面就是校准曲线的做法,我们接着看诺莫图的和诺莫图的决策曲线的做法,关于诺莫图的做法,我记得之前写过一个非常详细的教程文献解析:生存数据和分类结局列线图的做法,史上最全,大家可以回去瞅瞅,这儿在我们现在的例子中,只需要将刚刚拟合的refit对象运行下面的代码即可出图:

nom <- nomogram(refit, lp=F,fun=plogis, funlabel="Please follow Wechat Channel- Codewar")plot(nom)

接下来继续做该诺莫图的决策曲线,决策曲线需要用到dca函数,其基本用法如下:

如果我们做Univariate Decision Curve Analysis,直接写好公式放在第一个参数就行,不过具体到我们的例子我们是在做Univariate Decision Curve Analysis,这个时候我们需要将多变量模型的预测值放在公式的右边:

We wanted to examine the value of a statistical model that incorporates family history, age, and the marker. First we will build the logistic regression model with all three variables, and second we would have saved out the predicted probability of having cancer based on the model.

对于我们的模型来讲,我需要用predict函数得到模型的预测值,然后使用dca函数并结合plot进行DCA曲线的绘制,具体代码如下:

dca(dat$y>3~Nomogram, dat, 
thresholds = seq(0.25, 0.75, by = 0.01)) %>%
plot(smooth = TRUE,bty='n')

运行后并稍加调整即可得到下图,当然下图还可以根据需求继续修改,但是基本上已经差不多,似乎比原文要更好看点啦,嘿嘿。

小结

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多