cox构建预测模型(7):如何用R语言绘制DCA曲线?(附全套代码)
临床预测模型作为临床研究的“高阶玩法”,不仅仅是改变临床实践的重要途径,更是发表高分SCI文章的热门选择。
但不论零基础的小白,还是已经了解过临床预测模型的同学,刚开始都会一头雾水。简单概括,Cox回归预测模型的基础统计策略大致可以概括为“一表四图”,即均衡性表、列线图、校准图、ROC图、DCA图。
之前的文章中我们已经为大家介绍过均衡性表、列线图、校准图、ROC曲线的绘制方法,今天完成seer数据库复现系列的最终章——DCA曲线,除了R语言复现,同样用风暴统计进行操作,对新手小白或希望更加便捷完成统计分析工作的读者十分友好!
主要内容包括:
一、文献解读
二、利用R语言复现
三、利用在线网站复现
四、小结

一、文献解读
案例文献是沈阳医学院公共卫生学院学者基于SEER数据库的一项回顾性研究,旨在建立一个列线图来预测老年恶性骨肿瘤(MBT)患者的总生存期(OS)。

1. 摘要
背景:恶性骨肿瘤(MBT)是老年患者死亡的原因之一。我们研究的目的是建立一个列线图来预测老年MBT患者的总生存期(OS)。
方法:从SEER数据库下载了2004年至2018年所有老年MBT患者的临床病理数据。他们被随机分配到训练集(70%)和验证集(30%)。采用单因素和多因素Cox回归分析确定老年MBT患者的独立危险因素。基于这些危险因素构建列线图,以预测老年MBT患者的1年,3年和5年OS。然后,利用一致性指数(C指数)、校准曲线和受试者工作曲线下面积(AUC)来评价预测模型的准确性和判别力。决策曲线分析(DCA)用于评估列线图的临床潜在应用价值。根据列线图上的分数,将患者分为高风险组和低风险组。Kaplan-Meier(K-M)曲线用于测试两名患者之间的生存差异。
结果:从SEER数据库下载了2004年至2018年所有老年MBT患者的临床病理数据。他们被随机分配到训练集(70%)和验证集(30%)。采用单因素和多因素Cox回归分析确定老年MBT患者的独立危险因素。基于这些危险因素构建列线图,以预测老年MBT患者的1年,3年和5年OS。然后,利用一致性指数(C指数)、校准曲线和受试者工作曲线下面积(AUC)来评价预测模型的准确性和判别力。决策曲线分析(DCA)用于评估列线图的临床潜在应用价值。根据列线图上的分数,将患者分为高风险组和低风险组。Kaplan-Meier(K-M)曲线用于测试两名患者之间的生存差异。
结论:我们建立了一个新的列线图来预测老年MBT患者的1年,3年,5年的OS。该预测模型可以帮助医生和患者制定治疗计划和后续策略。
2. 数据介绍
文献共纳入1641名2004-2018诊断的老年MBT患者的临床病理数据。暴露因素包括年龄、种族、性别、诊断年份、组织学类型、分级、分期、原发位置、TNM分期、肿瘤大小、是否化疗、是否放疗及手术方式。

3. 研究结果
这篇文献通过绘制两个模型的DCA曲线来评估模型的临床决策实际需求,一个是列线图模型,包括纳入列线图的全部变量,一个是TNM模型,只纳入TNM分期3个变量。A图是训练集1年、3年、5年患者的总生存期的DCA曲线;B图是训练集1年、3年、5年患者的总生存期的DCA曲线,红色线条代表列线图模型(包括构建模型的10个变量),黄色线条代表TNM模型(仅纳入TNM分期3个变量),两个模型对比,线条越靠上说明在实际临床中的应用价值越大,可参考性越强。

二、利用R语言复现
下面我们利用从SEERStat中提取的相关数据进行复现。根据文献中的纳入排除标准,提取涉及的相关数据,最终共纳入1,574名患者(原文献1,641)。介于SEERStat数据库会有更新,因此提取的样本量与原文会有所出入,这里请大家多关注统计方法的运用!本次用到的是R版本是4.3.1。
1. 安装加载R包
这里主要用到以下两个包,"dcurves"包负责构建,"ggplot2"包负责绘图。除了"dcurves"包外,还有"ggDCA"包可以完成DCA曲线的绘制,更为便捷,但对R版本有点要求,这里不作展示。
2.完成前期的准备工作
在绘制DCA曲线之前,必须要完成数据的导入、拆分数据集的工作、预测因子的筛选,DCA曲线的绘制是分别在训练集与验证集独立进行的。
3.绘制DCA曲线
原文中的DCA曲线是列线图模型与TNM分期模型进行的对比,因此我们首先需要构建两个模型,模型1纳入列线图中的9个变量,模型2仅纳入TNM分期3个变量。
受篇幅限制,下面仅展示1年的DCA曲线绘制代码,3年、5年的代码只需在此基础上稍作修改。如修改计算生存概率中的时间为times=12*3以及绘制曲线代码中的时间time=12*3,变量名dca1。(因此这里只是1/6的代码量哦!)
代码解读:“method=loess”指使用平滑函数,“formula = "y ~ x"”是用于平滑函数的公式,“span”是控制线条平滑度的平滑量,数字越大,线条越平滑,“ylim”设置y轴的范围。

三、利用在线网站复现
如果没有代码基础,或者希望通过更便捷的方式完成统计分析,推荐使用这个智能在线统计分析平台——风暴统计。一站式完成Cox预测模型基础统计分析,便捷又快速。
网址:www.medsta.cn(在电脑端浏览器打开)
或medsta.cn(medical statistics缩写)
1.进入网站分析模块
电脑端打开风暴统计平台——“风暴智能统计”模块,点击“临床预测模型(最新)”,进入“cox预测模型”页面。

2. 完成前期的准备工作
利用风暴统计平台进行ROC曲线的绘制之前,也需要完成数据导入、拆分数据集的工作哦!
3.绘制DCA曲线
完成前期准备工作之后,进入“Cox预测模型”模块,根据提示选入回归因变量与回归自变量。最最重要的是多因素回归设置,也就是你所期望的自变量筛选方式,可以是先单后多,也可以是逐步回归法,阈值也可以进行调节,十分灵活。

选中之后,下方就直接给出DCA曲线结果,同样包括训练集与验证集在3个不同时间点的6张DCA曲线图。在左侧可以调整线条的粗细、虚实以及X轴的最大刻度值,可以下载图片的PDF或PNG,对新手小白十分友好!

四、小结
通过对比网站与R语言绘制的列线图,可以发现两者的曲线相同,只是网站暂不具备绘制不同模型在同一时间点的DCA图形,从这一点来看,R语言是给更加灵活的。但是相比于R语言的几十行代码,网站显得十分便捷快速,如果仅在DCA曲线中展示一个模型,那风暴统计绝对值得一试!
