公众号:医学大数据挖掘分析
受试者工作曲线(receiver operator curves ,简称ROC曲线),它以试验的灵敏度(真阳性率)为纵坐标,以(1-特异度)(或假阳性率)为横坐标作图形成一条曲线,表达灵敏度与特异度之间的相互关系,是广泛应用于临床诊疗和人群筛检研究的一种统计方法。用于评价生物标志物(markers)的性能,即基于标记值是否超过阈值(c),诊断为“正常人”和“患者”(Figure 1)。它结合灵敏度和特异度对诊断试验进行综合评价,根据曲线的形状和面积(Area Under Curve, AUC)对诊断试验作定量分析。
AUC定义为ROC曲线与坐标轴围成的面积,AUC的取值范围通常在0.5到1之间。AUC<0.5不符合真实情况,在实际中极少出现,偶尔数据分析中出现AUC<0.5大多是因为诊断指标的方向选择反了,比如指标小于阈值提示“疾病”。AUC越接近1,markers性能越高:
AUC>0.9时有较高准确性;
AUC在0.7~0.9时有一定准确性;
AUC在0.5~0.7时有较低准确性;
AUC=0.5时真实性最低,markers无诊断价值。
Figure 1
传统的ROC曲线分析方法认为个体的事件(疾病)状态和markers是随着时间的推移而固定的,但在临床流行病学研究中,疾病状态和markers都是随着时间的推移而变化的(即time-to-event outcomes)。早期无病的个体由于研究随访时间较长,可能较晚发病,而且其markers可能在随访期间较基线发生变化。如果使用传统的ROC会忽略疾病状态或markers的时间依赖性,此时用随时间变化的time-dependent ROC(时间相依ROC)比较合适。
同时,对同一种疾病用药疗效的诊断或疾病的预后预测,往往有各种不同的诊断方法或手段,涉及的markers是非常多的,不同的markers对疾病各方面敏感性是不一样的,因此在做出诊断时如何充分利用、评价、比较这些markers的诊断信息、价值,就显得非常重要。
原理:ROC及时间相依ROC
传统的ROC:
假设有个体i(i=1,2,3,…,n),X为生物标记物markers(通常为基线值),D为事件的状态,1表示发生事件(疾病),否则为0;对于给定的阈值c,则灵敏度和特异度分别为:
展开全文
Xi 表示阳性组中第 i 个检测结果, Xj 表示阴性组中第 j 个检测结果,阳性例数用 n 表示,阴性例数用 m 表示。则ROC 曲线下面积——AUC(阳性组测量值大于阴性组测量值的概率)的估计值为:
时间相依ROC:
生存数据中,结果变量是时间相依的,所以灵敏度和特异度可看作是时间的函数。假定Ti为个体i的发病时间,设Di(t)为t时刻的疾病状态,取值1或0。对于给定的阈值c,时间相关的灵敏度和特异度分别有:
时间相关的AUC定义为:
实例
使用数据来自于1974年至1984年间梅奥诊所(Mayo Clinic)对原发性胆汁性肝硬化(primary biliary cirrhosis, PBC)的临床试验的子数据集(mayo)。数据集记录312例随机胆汁性肝硬化(一种罕见的自身免疫性肝病)患者的4个变量:time(事件时间/截尾时间)、censor(截尾指标)、mayoscore4与mayoscore5,这两个分数分别来自4个协变量和5个协变量构造的预测的风险评分。此分析目的是确定mayoscore4、mayoscore5能否提供预后信息,并比较两个评分指标的性能。
ROC曲线在SPSS以及R的实现
使用传统的ROC曲线分析,评价mayoscore4与mayoscore5对结局的诊断价值。ROC曲线分析在SPSS(26.0)的实现是很简单的,对于单个或多个marker来说,SPSS给出了ROC曲线下的面积(AUC)以及面积是否有统计学意义的结果,以此判断marker的诊断价值。还可以判断多个marker间的AUC是否有差异,哪个marker的诊断价值更高,但并不能绘制置信区间(Figure 2)。采用R 可以绘制AUC的置信区间(Figure 3)。
1) SPSS实现步骤:分析—分类—ROC分析(成对样本设计)
Figure 2
另外,SPSS(26.0)可以实现对同一marker进行分组绘制ROC曲线,并比较组间的差异,在此并未显示,有兴趣可自行实践。
2)ROC在R的实现
在R中,ROCR和pROC是常用的绘制ROC曲线的包,在这里使用pROC绘制。
部分代码如下:
Figure 3
得到mayoscore4与mayoscore5的AUC分别为:0.846(95%CI:0.799~0.893), 0.775(95%CI:0.721~0.829),且可以绘制置信区间。但是很明显传统的ROC分析没有将终点事件出现的时间(time)考虑在内,忽略了结局状态或生物标记物(marker)对时间的依赖。
采用时间相依的ROC会有什么不同?
查看生存分析数据:
胆汁性肝硬化患者的生存曲线显示生存率下降较为平缓,现评价mayoscore4与mayoscore5进行生存预后预测的价值。
Survival ROC绘制不同时间点的ROC曲线
部分代码如下:
Figure 5
Figure 6
SurvivalROC使用Kaplan-Meier(KM)或最近邻(Nearest Neighbor Estimation, NNE)法从含有删失的生存数据中估计时间相关的ROC曲线。本例使用survivalROC绘制了六个时间点(365*c(1,2,3,4,5,6))的ROC曲线(Figure 5-6),可以明显发现不同时间点的AUC是不一样的。t=365时,AUC的值最大,这是因为在此之前发生的结局事件很少。其他各个时间的AUC亦给出。但是该方法并不能计算AUC的95%置信区间,如果需要估算AUC的置信区间,需要采用“timeROC”。
timeROC估计多个时间点AUC以及AUC的95%置信区间
使用time ROC绘制mayoscore5与mayoscore4在不同时间点的ROC曲线,以及不同时间点的AUC。
部分代码如下:
Figure 8
time ROC通过对时间t之前发生事件个体的标记值以及时间进行加权,进行调整估算时间相依的ROC以及AUC。可以计算同一受试者两种不同标记物的两条曲线下面积(AUC)比较的置信区间和测试(compare),同时计算多个时间点的AUC。同样使用time ROC绘制了六个时间点(365*c(1,2,3,4,5,6))的ROC曲线(Figure 7)以及AUC(95%CI)随时间的变化(Figure 8)。可以看出在短时间内,mayoscore4的AUC是高于mayoscore5的,但随着时间的推移,mayoscore5的AUC逐渐高于mayoscore4。
使用传统的ROC曲线,得到的结果是mayoscore5的AUC大于mayoscore4,但使用时间相依的ROC曲线结果显示mayoscore5的AUC逐渐高于mayoscore4,是随着时间的推移的结果。
总结
传统的ROC分析对生存分析数据进行ROC分析容易忽略疾病状态或markers对时间的依赖性,可以采用时间相依的ROC曲线分析。在时间相依的ROC曲线分析中,每个个体的疾病状态在每个时间点被观察和更新,可以在多个时间点构建ROC曲线,并比较该标记的预测能力。目前R中除survivalROC, timeROC外,还有tdROC、timereg、risksetROC、survAUC等可以做时间相依ROC。另外,ROC还可以根据生物指标的阈值(c)进行合理的分组,如有朋友对此感兴趣,可后台回复联系我们。
参考文献
1 Kamarudin A N, Cox T, Kolamunnage-Dona R. Time-dependent ROC curve analysis in medical research: current methods and applications [J]. BMC Medical Research Methodology, 2017, 17(1):1-19.
2 Heagerty P J, Zheng Y. Survival Model Predictive Accuracy and ROC Curves [J]. Biometrics, 2005, 61(1):92-105.
3 https://rdrr.io/cran/survivalROC/man/survivalROC.html
4 https://rdrr.io/cran/timeROC/src/R/timeROC_3.R
更多内容,请关注“医学大数据挖掘分析”公众号,欢迎留言联系~
邮箱:medicalda@tp-data.com
地址:广州市天河区珠江东路高德置地秋广场F座