关键词:ROC; 时间依赖ROC
在建立生存分析(Survival Analysis)的预后模型中,需要展现预后模型在不同时间点的ROC曲线及其曲线下面积(AUC)来说明所建立预后模型的区分度。本篇文章将实例演示在R软件中实现不同预后时间点的ROC曲线及时间依赖的AUC曲线的操作步骤。
一、案例介绍
假设某研究通过前期工作,采用Cox回归已构建了基于基因表达水平的风险评分预测某癌症患者生存结局的预后模型()。数据包括随访时间(time,天)、结局(status:0=删失,1=死亡)和基因标签的风险评分(riskScore),部分数据见图1。所建立的基因标签风险评分由13个基因组成,每个患者的风险评分由患者的13个基因表达水平计算得出。通过展现不同时间点的ROC曲线及时间依赖的曲线下面积(AUC)可以很好的说明所建立预后模型在各预测时间点的区分度。
二、软件操作
(一) 导入数据(图1)
data = read.csv("时间依赖ROC曲线.csv", header = T) View(data)
(二) 绘制时间ROC曲线
对于生存结局,可以使用某个连续性变量(如实验室检查指标)、预后模型的预后指数(Prognostic Index, PI)或风险评分(Risk Score)绘制ROC曲线。同时,可以根据生存时间/随访时间设置时间截点,如12个月、36个月。本研究使用预后模型的风险评分绘制不同时间点生存结局的ROC曲线和时间依赖AUC。
##加载程序包##
library(rms) library(timeROC) ##ROC分析(图2)## ROC <- timeROC(T = data$time/(365.5/12), #将结局时间转换为月 delta = as.numeric(data$status), #生存结局 marker = data$riskScore, #预测变量 cause = 1, #阳性结局赋值 weighting = "marginal", #权重计算方法,marginal是默认值,采用km计算删失分布 times = c(12, 36, 60, 120), #预测1、3、5、10年时间 iid = T) #只有marginal可以计算置信区间 ROC # 输出各时点的AUC及其标准误(se)
##输出95%置信区间(图3)##
confint(ROC)$CI_AUC #95%置信区间
##绘制各时点ROC曲线(图4)##
{ plot(ROC, time=12*3, col = "blue", add = F, title = F) plot(ROC, time=12*5, col = "purple", add = T) plot(ROC, time=12*10, col = "black", add = T) legend("bottomright", lty = 1, cex = 1.0, col = c("blue", "purple", "black"), legend = c("3 year AUC:0.814(0.724-0.905)", "5 year AUC:0.781(0.682-0.880)", "10 year AUC:0.762(0.626-0.897)")) }
(三) 绘制时间依赖AUC图(图5)
plotAUCcurve(ROC, conf.int = T, col="darkcyan")
三、结论
图4展示了基于该基因风险评分所预测的癌症患者在3年、5年及10年时的ROC曲线和AUC点估计及区间估计,可见3、5、10年的AUC面积分别为0.814 (95%CI为0.724~0.905)、0.781 (95%CI为0.682~0.880)、和0.762 (95%CI为0.626~0.897)。图3展示了连续的各时间点的AUC点估计及区间估计。结合图5可以看出,该预后风险评分的区分能力下降至5年后趋于稳定,各预测时间点AUC的点估计值均在0.7以上,即可以较好的预测患者在各时间点是否死亡。
四、知识小贴士
在评价预测模型(诊断模型或预后模型)时,一般从两方面对模型性能进行评价,即模型的区分度(discrimination)和校准度(calibration)。区分度是指预测模型可以正确区分病例(cases)与对照(controls)的能力,AUC值和一致性指数(C统计量)是常用的区分度指标。而校准度是指模型的预测值与观察值之间的一致程度,常用校准图表示。