生存分析中的ROC是怎么来的,ROC是对二分类资料的评价指标,那对于生存资料呢?
如果金标准是生存分析资料(生存时间overall survival time与生存状态 status),能否进行ROC分析呢?能!这就是时间依赖的ROC分析。
- 首先我们分析生存资料的特点:
(1)包含有结局和时间两个方面的信息。
(2)结局资料一般为二分类资料,即结局是两个对立相互排斥的事件,如生存和死亡,有效和无效。
(3)生存资料一般需经过前瞻性随访观察才能获得,随访往往从某一统一的时间点开始,到某规定的时间点结束,所以生存资料有时候也称为随访资料。
(4)由于失访等原因使一些研究对象的生存时间难推断,导致部分生存时间数据不完整。 - 生存资料的数据类型
(1)完全数据:观察起点到发生结局事件的时间明确,完整的资料。
(2)截尾数据:指由于其他因素导致观察对象的生存时间难以明确判断,这种生存时间数据称为截尾数据。此类数据右上角标记“+”。 - 中位生存时间
是指寿命中位数,表示有且只有50%的观察对象可以活这么长时间。由于存在截尾数据,中位生存时间需要利用生存函数或生存曲线令生存率为50%时,推算出生存时间。 -
生存函数
生存概率又称生存率或生存函数,它表示一个病人的生存时间长于时间t的概率,S(t)表示。
以时间t为横轴,S(t)为纵坐标
image.png
ROC曲线是评价二值分类模型一种图形化方法。要弄懂ROC曲线的含义,首先要搞清楚下面这些概念:
真正(True Positive , TP)被模型预测为正的正样本;
假负(False Negative , FN)被模型预测为负的正样本;
假正(False Positive , FP)被模型预测为正的负样本;
真负(True Negative , TN)被模型预测为负的负样本。
关于这个模型,这里举个栗子,A、B、C和D这四个人名字中有字母的是坏人,其余是好人,按照这么一个分类模型,A被归类为坏人,而实际上A是个好人,所以A是一个假负样本,B、梦熊和机智的怪阿姨则是真正样本。
ROC曲线的横坐标为假正率(False Positive Rate, FPR或称为特异性Specificity),FPR = FP /(FP + TN)(被预测为正的负样本结果数 /负样本实际数),纵坐标为真正率(True Positive Rate,FPR或称为灵敏度Sensitivity),TPR = TP /(TP + FN)(正样本预测结果数 / 正样本实际数)。
点(0,1):FPR=0, TPR=1. -----> 完美分类器;
点(1,0):FPR=1, TPR=0. -----> 完全错误的分类器;
点(1,1):分类器预测所有的样本都是正例;
点(0,0):分类器预测所有的样本都是负例;
y=x:随机分类器。
一个好的分类模型应该尽可能靠近图形的左上角,而一个随机猜测模型应位于连接点(TPR=0,FPR=0)和(TPR=1,FPR=1)的主对角线上。
ROC曲线下方的面积(Area Underthe ROC Curve, AUC)提供了评价模型平均性能的另一种方法。如果模型是完美的,那么它的AUC = 1,如果模型是个简单的随机猜测模型,那么它的AUC = 0.5,如果一个模型好于另一个,则它的曲线下方面积相对较大。换句话说AUC越大,分类模型越完美,说明分类条件越有意义。
其一是真正类率(true positive rate ,TPR), 计算公式为TPR=TP / (TP + FN),刻画的是分类器所识别出的正实例占所有正实例的比例。另外一个是负正类率(false positive rate, FPR),计算公式为FPR= FP / (FP + TN),计算的是分类器错认为正类的负实例占所有负实例的比例。
在用基因表达量构建cox多因素回归模型后,我们得到了一个模型表达式
在RStudio中我们得到的公式如下:
image.png
每个coef值就是对应基因的回归系数,这样就可以计算风险函数
每一个样本可以通过回归模型得到一个预测生存的概率
而我们用生存概率的中位值为基准,对患者生存分组高低风险组
用预测生存概率与实际患者生存概率(3年或者5年)进行比较,可以计算如下值:
真正(True Positive , TP)被模型预测为正的正样本;
假负(False Negative , FN)被模型预测为负的正样本;
假正(False Positive , FP)被模型预测为正的负样本;
真负(True Negative , TN)被模型预测为负的负样本。
进一步通过公式得到横纵坐标:
其一是真正类率(true positive rate ,TPR), 计算公式为TPR=TP / (TP + FN)
另外一个是负正类率(false positive rate, FPR),计算公式为FPR= FP / (FP + TN)
image.png
[1] 1.000000000 1.003739767 1.007657787 1.003371314 0.999478253
[6] 0.994723114 0.993662466 0.988839751 0.983798865 0.979476825
[11] 0.983132665 0.986985992 0.982022682 0.973123048 0.968767419
[16] 0.963311391 0.964725581 0.965179152 0.955138320 0.944520226
[21] 0.939544855 0.935336643 0.930877664 0.927219518 0.921198612
[26] 0.924697519 0.919033140 0.913448266 0.917021872 0.912368937
[31] 0.907961696 0.908006753 0.909778279 0.913431262 0.915360070
[36] 0.906253391 0.901427674 0.892519538 0.883401105 0.887292260
[41] 0.889338278 0.893599621 0.898224257 0.889352187 0.890626150
[46] 0.881791375 0.886851339 0.876380812 0.869672909 0.865315947
[51] 0.855727298 0.850384627 0.855626323 0.857953999 0.851641371
[56] 0.841369214 0.834472745 0.831696904 0.827362880 0.826691204
[61] 0.816696509 0.821924772 0.816167822 0.809117525 0.806028778
[66] 0.797033297 0.788031563 0.788721456 0.767372809 0.758552287
[71] 0.756401597 0.760039258 0.749974630 0.743244234 0.734442771
[76] 0.725448415 0.720283380 0.715124702 0.703299178 0.706720027
[81] 0.703134404 0.706643020 0.696726456 0.685721089 0.674460274
[86] 0.667861985 0.656372667 0.641863602 0.632051352 0.624949651
[91] 0.616057660 0.611693628 0.601393745 0.591923069 0.583104097
[96] 0.574307636 0.568542067 0.564989189 0.556026245 0.555685101
[101] 0.558246518 0.561125567 0.552186636 0.542075488 0.532881204
[106] 0.536266252 0.524809339 0.515588486 0.505068684 0.496247820
[111] 0.500281149 0.505368585 0.496561066 0.487368748 0.494447958
[116] 0.485531940 0.476543753 0.467739718 0.458933845 0.470586788
[121] 0.468113457 0.460217392 0.454561465 0.445778654 0.436809673
[126] 0.427594537 0.418807131 0.409964015 0.401173482 0.377197377
[131] 0.381638735 0.372839787 0.362629905 0.353487134 0.344590384
[136] 0.335392359 0.326599725 0.317345911 0.308522995 0.301017478
[141] 0.292189280 0.284975785 0.275830580 0.266990931 0.257785933
[146] 0.250349724 0.241494252 0.232298124 0.226881817 0.218013711
[151] 0.207928198 0.200274649 0.189759740 0.180900761 0.169368685
[156] 0.160476482 0.165160245 0.156308261 0.148492848 0.141670452
[161] 0.132529867 0.117643850 0.112541948 0.103692496 0.094827012
[166] 0.085941124 0.077028711 0.068080932 0.068931943 0.061272838
[171] 0.052519576 0.043766313 0.035013051 0.026259788 0.017506525
[176] 0.017506525 0.008753263 0.000000000
一共178个样本,每个样本都会得到一个概率值
通过对TPR和FPR计算得到ROC曲线
image.png
网友评论