临床预测模型中的评价模型的指标,
不光只有区分度和校准度,
还应该有临床决策曲线!
Hi,大家好,我是晨曦!
这期推文的主题来自评论区小伙伴的提问,这位小伙伴在构建临床预测模型的时候,审稿人给的回复是让其添加临床决策曲线(DCA)来评估构建的模型
这位小伙伴在网络上搜索了半天的教程仍然是一知半解,所以在评论区提出了自己的疑问,正好晨曦对这方面的内容也很感兴趣,所以本期推文的主题,我们就来看看这个一直被我们忽视的临床决策曲线(DCA)
引言
我们在构建预测模型的时候,为了告诉别人我们的模型在性能上是足够优越的,我们往往需要对我们的模型进行评估,这个时候我们常常会对模型的区分度(ROC曲线)和校准度(拟合优度检验),这其中ROC曲线是被我们使用的最多的,一般在5分以下的文章,往往都只会提供ROC曲线的结果,甚至有些文章连Calibration plot都不会提供,更别提使用更少的DCA曲线了
那么,第一个问题来了,什么是DCA曲线?
DCA曲线首先是被MSKCC(纪念斯隆凯特琳癌症研究所)的AndrewVickers博士等人研究出的一种评价方法,并在2006年发表在Med Decis Making,相较于二战时期发明的ROC,DCA的历史可谓是足够的年轻,DCA的出现是为了解决一个问题即这个模型是否真的值得被使用
举个例子,临床上如果必须出现假阴性或者假阳性中的其中一个,作为患者肯定更愿意选择假阳性,因为这样可能不会造成威胁生命的后果,ROC聚焦在准确性上而没有包含造成结果的信息,这就导致一个具有更大特异性而敏感性较低的模型拥有较高的AUC,但是模型本身却并不会被临床所选择
总结:DCA(临床决策曲线)将告诉我们一个模型是否值得被使用以及如果你有几个候选模型,你究竟应该选择哪个
参考文献
Decision curve analysis: a novel method for evaluating prediction models
那么,解决了第一个问题,我们继续往下探索,为什么顶级期刊或者说是高分杂志都要求临床研究中有DCA呢?想要弄明白这个问题,我们就需要来回归一下DCA的发展历程
里程碑一:DCA的诞生(2006年)
文献总结传统的预测模型评价标准,比如ROC,针对的因变量为二分类变量(生或者死、稳定或者复发),如果是连续型数值变量,那么就需要寻找cutoff以便转化成分类变量(对于多分类变量也要转化成二分类变量),同时,传统的决策分析技术虽然允许对临床结果进行评估,以判断产生的模型是否值得被使用,但是需要收集额外的信息,而导致这项技术并不能够广泛的应用,DCA的开发解决了上述的问题,并适用于二分类变量或者连续型变量且不需要提供额外数据就可以帮评估模型是否值得被使用以及多个候选模型中哪个更优
晨曦杂谈文献中的两个例子提出了一个普遍性的原则,即准确性指标如敏感性、特异性和AUC,并不能够很好的解释模型所具有的临床价值,虽然模型具有更高的AUC可能比一个较低的AUC更有价值,但是,从结果上看,更高AUC的模型可能会有会带来更为劣质的后果
即使DCA曲线有这么多优势,但是这并不认为DCA可以取代敏感性、特异性等准确性衡量标准,因为,这两者本身就不是一个方面的评价指标,所以,到这里,我们可以归纳出模型评价的三方面指标
1.评价模型的区分度即模型的鉴别能力——ROC
2.评价模型的校准度即模型的准确性/一致性评估——拟合优度检验/Calibration curve
3.评价模型的临床实用性即模式是否值得被使用——DCA
里程碑二:DCA的进一步解释(2009年)
文献总结这篇文献完善了DCA的相关内容,晨曦在这里对这篇文献进行精读,以便各位小伙伴可以加深对DCA的理论了解
首先,我们看下面这个Figure显示了决策曲线分析的最基本元素。模型为浅灰色线,金标准测试(活检)为虚线。另外两行是“全部干预”(细黑线)和“没有干预”(粗黑线)
模型相关背景知识:研究人员试图寻找其他的标记物,可以预测PSA升高的男性的高级别癌症。这个想法是,任何PSA升高的男性都将接受第二次检查,只有当这表明有侵袭性疾病的风险时,才会进行活检
针对上述模型绘制了DCA曲线,如下图所示
晨曦杂谈这里的干预是一个很宽泛的概念,它可能指药物或手术,也可能包括生活方式的建议,额外的诊断检查,或随后的监测等等,所以我们可以进行一个总结:凡是我们想要探讨的外界因素都可以被视为干预,而我们干预的目的自然就是为了获得“好结果”(阳性结局),所以这里我们进一步概括——干预被视为高风险患者从模型中中获得阳性结果时考虑的任何行为或外界因素
那么我们如何理解图中的“全部干预”和“没有干预”这两条线呢?
我们可以举一个临床上的例子,针对PSA升高的患者,临床医生往往建议进行前列腺活检来明确是否存在Cancer,这个时候就存在两种策略,一种策略是对所有PSA升高超过阈值的患者进行活检,而不考虑预测模型以及其它检查的结果;另一种策略则是针对PSA没有超过阈值的患者都不进行活检而是采取密观随诊,这两种情况确确实实存在于临床实践中,这就是图中两条线的理论来源
这张Figure的Y轴为获益程度,X轴为医生偏好,这里的Y轴在不同的模型中是固定的,表示的是患者基于干预的获益程度;X轴则是根据不同模型选择不同的干预方式,比如说在上图中,X轴划分为两大类即“担心疾病”与“担心活检”
担心疾病简单解释为对于PSA较高的患者或者患者本身积极要求活检,医生更倾向于认为疾病本身所带来的危害要高于活检所带来的危,也就是说建议活检
担心活检简单解释为对于PSA不是很高的患者且年龄比较小的患者或者是患者本人对于侵入性治疗有抵触情绪,在这种情况下医生更倾向于认为活检所带来的危害要高于疾病本身所带来的危害,也就是说不建议活检
我们可以看到,在上图中该模型比直接干预的获益要大,除了那些属于“非常担心”类别的,对于这类来说,“对所有人进行干预”策略的好处实际上略高。这在直觉上是合理的:一个PSA升高且医生偏好又是十分担心疾病本身的情况下,可能想要直接进行活检,而不是依赖模型(模型来判断是否需要活检),当然我们也可以简单粗暴的看这张图,只要我们的模型曲线在两条实线的外侧就说明这个模型在临床上是值得被应用的(其中对于多个模型的DCA曲线比较,越远离两条实现越说明其有应用的价值),回到文献中的例子则是说明使用该模型来确定患者是否应该进行活检是有临床价值的
这个时候我们继续往下探索,上图我们的X轴是医生的偏好,我们这里只是简单的进行了分类,实际上,医生的偏好受到很多因素的影响,比如说PSA升高的幅度、患者本身的情绪、医疗条件的限制等等,尽管我们可以简单的认为越靠近两端代表着这些外在因素更强烈从而让偏好更加强烈,但是我们依旧想要把横坐标设定为阈值,毕竟数值让我们更加有“安全感”,所以我们接下来探讨如何把X轴转化为阈值?
当然具体的转化在我们后续R的实操中都已经被作者写好的R包给囊括了,但是,我们依旧需要知道其中蕴含的逻辑和思想,正所谓道法结合,你不光需要懂得道,你也要需要懂得法
我们示例里的模型最后预测的是患者患有高级别癌症的预测概率(高级别癌症自然就需要进行活检),这时候我们面临着这样一个事实,如果模型预计患者患有高级别癌症的概率为1%,那么患者和医生自然都是不同意进行活检的,但是如果模型预计患者患有高级别癌症的概率为99%,那么医生和患者自然就会同意进行活检,然后我们不断把这个概率进行改变,直到医生和患者不再确定,那么这个阈值到底是多少,这个就需要我们结合自己的数据来设定
举个例子,一位临床医生结合自己的临床经验认为,如果一个患者需要做十次活检(预测高级别癌症的概率为10%)才可以发现自己患有高级别癌症,那么医生是不会建议患者去做活检的,会考虑采用随诊或者密关或者其它检查来代替活检,所以这个时候,我们把阈值定为10%就是比较合理的
那么这个10%我们还可以如何理解?
其实10%的风险就是1:9的概率,所以如果你使用10%的概率,那么就意味着“错过一个高级别癌症比做不必要的活检要糟糕九倍”,然后我们把概率放在DCA曲线上,就是如下图所示
我们现在可以看到,只有当阈值概率小于2%或3%时,我们才应该避免使用该模型。这在前列腺癌中是一种符合临床规则的现象,活检是侵入性且痛苦的,并与脓毒症的风险相关。
然而,一个较低的阈值在其他一些情况下可能是合理的,例如,皮肤癌活检,这是一种风险和侵入性要小得多的手术。还要注意的是,该曲线只绘制了20%。这是因为,考虑到与活检的危害相比,遗漏高级别前列腺癌的相对风险,我们认为任何患者或医生在接受活检前要求超过20%的风险都是不合理的。因此,阈值的合理范围主要取决于上下文
当然以上的大部分操作都有R包帮助我们解决了,但是你需要明白这其中的宏观逻辑
这个时候相信各位小伙伴已经充分明白了横坐标所代表的含义以及可以操作的地方,那么纵坐标(收益)我们又该如何理解呢?
其实纵坐标收益,我们可以理解为净收益,例如,0.07意味着每100个人有7个真阳性,即针对上面的例子就是100个人中有7个真正的高级别前列腺癌
好,到这里我们这篇文献就给大家解读完毕了,相信到这里,各位小伙伴对于DCA应该有了一个全面的了解了,那么我们下面继续我们里程碑的讲解~
里程碑三:DCA被各大期刊所承认和推荐
J Clin Oncol杂志-IF:28.24
JAMA杂志-IF:51.27
BMJ杂志-IF:27.6
所以到这里相信各位小伙伴已经知道了,如果在我们构建预测模型的时候,添加一个DCA,势必会让我们的文章更加严谨,同时也会让我们的文章更加具有专业性
了解完了理论知识,那么我们接下来就开始进行R代码的讲解
代码实战
近年来,决策曲线分析(decision curve analysis, DCA)逐渐成为临床预后模型的宠儿,最主要的原因它从全新的角度来评估患者在治疗后的获益情况,即使没有治疗信息,也可以评估患者的治疗获益,这是决策曲线分析最大的优点
那么在这里就给大家介绍一个绘制DCA曲线的R包——ggDCA包
###1.准备工作#####install.packages('ggDCA')library(ggDCA)library(tidymodels)library(tidyverse)library(rms)###2.准备输入数据并构建模型####data("LIRI")#包含了结局变量(status),生存时间(time)和4个基因(ANLN,CENPA,GPR182,BCO2)#现在,我们来验证ANLN基因是否是肝癌的预后的新指标,假设我们已经知道CENPA,GPR182,BCO2这3个基因对肝癌的预后有重要的影响(注意,这仅仅是假设)#那么,我们需要建立3个模型#模型1:单独使用ANLN建立模型,验证ANLN对预后有影响#模型2:使用CENPA,GPR182,BCO2这3个基因建立模型,验证这3个基因对预后有影响#模型3:同时使用这4个基因。#我们得到最理想的结果是:模型1对预后有影响,模型2对预后有影响,模型3对预后有影响#但是模型3在模型2加入了模型1之后,对预后的意义比模型1和模型2都要好。df <- LIRIdf_split <- initial_split(df,prop = 0.7)#创建划分任务train <- training(df_split)#划分训练集test <- testing(df_split)#划分测试集m1 <- lrm(status~ANLN,train)#构建模型m2 <- lrm(status~CENPA+GPR182+BCO2,train)#构建模型m3 <- lrm(status~ANLN+CENPA+GPR182+BCO2,train)#构建模型d_train <- dca(m1)#得到绘制一个DCA的数据ggplot(d_train)#绘制DCA曲线(一个模型)d_train <- dca(m1,m2,m3)#得到绘制三个DCA的数据ggplot(d_train)#绘制DCA曲线(三个模型)d_train <- dca(m1,m2,m3, model.names =c('ANLN','Other 3 genes','All 4 genes'))#修改图例名称ggplot(d_train)#以上都是基于训练集模型绘制DCA,那么如何转移到测试集呢?d_test <- dca(m3, new.data=test)ggplot(d_test)#当验证1个模型的时候会将原始模型(m3)和验证模型(validate)画在一张图里。#但是当验证的模型在2个及以上的时候,所画出的图形仅仅包含了验证结果,不包含原始模型结果d_test <- dca(m1,m2,m3, new.data=test)ggplot(d_test)#ggDCA包支持logistic回归和cox回归,使用方便,核心的命令只有2个dca()和ggplot(),一个分析,一个画图。使用极其简便,并且可以结合ggplot2包进一步美化图形#以上只展示了logistic回归,感兴趣的小伙伴可以访问R包的帮助文档获取更多内容
好啦,到这里,本期推文就给大家介绍到了这里,内容还是比较繁杂的,晨曦这里也是给了大家尽可能直白的讲解,相信配合上理论还有实战,各位小伙伴的临床预测模型类文章都可以添加上这样一张图,好让各位小伙伴的文章可以更加丰富
在这里也是感谢一棵树老师开发的ggDCA包,真的用起来是十分的方便,也欢迎大家有需要可以使用哦~
那么,本期推文到这里就结束了,也欢迎各位小伙伴在评论区积极讨论,说出你感兴趣的话题,说不定下期的主题就是你感兴趣的内容哦
我是晨曦,我们下期再见~
参考资料
1.Biostatistics: Decision Curve Analysis | Memorial Sloan Kettering Cancer Center (mskcc.org)
斯隆凯特琳癌症研究所(MSKCC)的决策曲线分析法(DCA)官方教程
2.Vickers AJ, Elkin EB. Decision curve analysis: a novel method for evaluating prediction models. Medical Decision Making. 2006 Nov-Dec;26(6):565-74.
3.Vickers AJ, van Calster B, Steyerberg EW. A simple, step-by-step guide to interpreting decision curve analysis. Diagn Progn Res. 2019 Oct 4;3:18
4.ggDCA帮助文档及实例教程
晨曦单细胞文献阅读系列

非肿瘤单细胞分析模板已到位!眼馋单细胞的小伙伴快来看!手把手教你产出第一篇单细胞SCI!


晨曦碎碎念系列传送门(未完待续...)
晨曦单细胞笔记系列传送门
晨曦从零开始学画图系列传送门
晨曦单细胞数据库系列传送门

END

撰文丨晨   曦
排版丨四金兄
主编丨小雪球
欢迎大家关注解螺旋生信频道-挑圈联靠公号~
继续阅读
阅读原文