ROC曲线(Receiver Operating Characteristic Curve)

原文:http://blog.sina.com.cn/s/blog_531bb7630100v4ny.html

(一) 分类模型尝试将各个实例(instance)划归到某个特定的类,而分类模型的结果一般是实数值,如逻辑回归,其结果是从0到1的实数值。这里就涉及到如何确阈值(threshold value),使得模型结果大于这个值,划为一类,小于这个值,划归为另一类。

考虑一个二分问题,即将实例分成正类(positive)或负类(negative)。对一个二分问题来说,会出现四种情况。如果一个实例是正类并且也被预测成正类,即为真正类(True positive),如果实例是负类被预测成正类,称之为假正类(False positive)。相应地,如果实例是负类被预测成负类,称之为真负类(True positive),正类被预测成负类则为假负类(false negative)。

列联表如下表所示,1代表正类,0代表负类。

  

  

预测

  

  

  

1

0

合计

实际

1

True Positive(TP)

False Negative(FN)

Actual Positive(TP+FN)

0

False Positive(FP)

True Negative(TN)

Actual Negative(FP+TN)

合计

  

Predicted Positive(TP+FP)

Predicted Negative(FN+TN)

 TP+FP+FN+TN

从列联表引入两个新名词。其一是真正类率(true positive rate ,TPR), 计算公式为TPR=TP / (TP + FN),刻画的是分类器所识别出的正实例占所有正实例的比例。另外一个是假正类率(false positive rate, FPR),计算公式为FPR= FP / (FP + TN),计算的是分类器错认为正类的负实例占所有负实例的比例。还有一个真负类率(True Negative Rate,TNR),也称为specificity,计算公式为TNR=TN / (FP + TN) = 1 − FPR

在一个二分类模型中,对于所得到的连续结果,假设已确定一个阀值,比如说 0.6,大于这个值的实例划归为正类,小于这个值则划到负类中。如果减小阀值,减到0.5,固然能识别出更多的正类,也就是提高了识别出的正例占所有正例的比类,即TPR,但同时也将更多的负实例当作了正实例,即提高了FPR。为了形象化这一变化,在此引入ROC。

Receiver Operating Characteristic,翻译为"接受者操作特性曲线",够拗口的。曲线是由两个变量的组合,1-specificity和 Sensitivity. 由于1-specificity=FPR,即负正类率。Sensitivity即是真正类率,True positive rate,反映了正类覆盖程度。这个组合以1-specificity对sensitivity,即是以代价(costs)对收益(benefits)。

下表是一个逻辑回归得到的结果。将得到的实数值按大到小划分成10个个数 相同的部分。

Percentile

实例数

正例数

1-特异度(%)

敏感度(%)

10

6180

4879

2.73

34.64

20

6180

2804

9.80

54.55

30

6180

2165

18.22

69.92

40

6180

1506

28.01

80.62

50

6180

987

38.90

87.62

60

6180

529

50.74

91.38

70

6180

365

62.93

93.97

80

6180

294

75.26

96.06

90

6180

297

87.59

98.17

100

6177

258

100.00

100.00

其正例数为此部分里实际的正类数。也就是说,将逻辑回归得到的结果按从大到小排列,倘若以前10%的数值作为阀值,即将前10%的实例都划归为正类,6180个。其中,正确的个数为4879个,占所有正类的 4879/14084*100%=34.64%,即敏感度;另外,有6180-4879=1301个负实例被错划为正类,占所有负类的1301 /47713*100%=2.73%,即1-特异度。以这两组值分别作为x值和y值,在excel中作散点图。得到ROC曲线如下ROC曲线(Receiver <wbr>Operating <wbr>Characteristic <wbr>Curve)

 

对角线反映的是随机选择的结果,此对角线作为对照线。到底该怎样 选择阀值呢,这涉及到了AUC(Area Under the ROC Curve,ROC曲线下的面积)。

(二)ROC(Receiver Operating Characteristic)曲线,用于二分类判别效果的分析与评价.一般自变量为连续变量,因变量为二分类变量. 
基本原理是:通过判断点(cutoff point/cutoff value)的移动,获得多对灵敏度(sensitivity)和误判率(1-Specificity(特异度)),以灵敏度为纵轴,以误判率为横轴,连接各点绘制曲线,然后计算曲线下的面积,面积越大,判断价值越高. 灵敏度:就是把实际为真值的判断为真值的概率. 特异度:就是把实际为假值的判断为假值的概率. 
误判率:就是把实际为假值的判断为真值的概率,其值等于1-特异度. 
将绘成的曲线与斜45度的直线对比,若差不多重合,说明自变量对因变量的判断价值很差,若越远离斜45度的直线即曲线下的面积越大,说明自变量对因变量的判断价值越好,即根据自变量可以较为正确的判断因变量. 使用SPSS的操作过程如下: 
Graphs/ROC Curve:Test variable选自变量(连续型变量),state varibale选因变量(二分类变量)display的选项一般全选. 运行结果:1.ROC曲线,可直观地看到曲线形状. 
2.Area under the curve:曲线下方的面积,包括面积值,显著性分析,置信区间. 3.Coordinates of the curve:ROC曲线各点对应的灵敏度和误判率.

(一)ROC曲线的概念 
受试者工作特征曲线(receiver operator characteristic curve, ROC曲线),最初用于评价雷达性能,又称为接收者操作特性曲线。ROC曲线是根据一系列不同的二分类方式(分界值或决定阈),以真阳性率(灵敏度)为纵坐标,假阳性率(1-特异度)为横坐标绘制的曲线。 
传统的诊断试验评价方法有一个共同的特点,必须将试验结果分为两类,再进行统计分析。ROC曲线的评价方法与传统的评价方法不同,无须此限制,而是根据实际情况,允许有中间状态,可以把试验结果划分为多个有序分类,如正常、大致正常、可疑、大致异常和异常五个等级再进行统计分析。因此,ROC曲线评价方法适用的范围更为广泛。

(二)ROC曲线的主要作用 
1.ROC曲线能很容易地查出任意界限值时的对疾病的识别能力。 
2.选择最佳的诊断界限值。ROC曲线越靠近左上角,试验的准确性就越高。最靠近左上角的ROC曲线的点是错误最少的最好阈值,其假阳性和假阴性的总数最少。 
3.两种或两种以上不同诊断试验对疾病识别能力的比较。在对同一种疾病的两种或两种以上诊断方法进行比较时,可将各试验的ROC曲线绘制到同一坐标中,以直观地鉴别优劣,靠近左上角的ROC曲线所代表的受试者工作最准确。亦可通过分别计算各个试验的ROC曲线下的面积(AUC)进行比较,哪一种试验的AUC最大,则哪一种试验的诊断价值最佳。   
(三)ROC曲线分析的主要步骤 
1.ROC曲线绘制。依据专业知识,对疾病组和参照组测定结果进行分析,确定测定值的上下限、组距以及截断点(cut-off point),按选择的组距间隔列出累积频数分布表,分别计算出所有截断点的敏感性、特异性和假阳性率(1-特异性)。以敏感性为纵坐标代表真阳性率,(1-特异性)为横坐标代表假阳性率,作图绘成ROC曲线。 
2.ROC曲线评价统计量计算。ROC曲线下的面积值在1.0和0.5之间。在AUC>0.5的情况下,AUC越接近于1,说明诊断效果越好。AUC在0.5~0.7时有较低准确性,AUC在0.7~0.9时有一定准确性,AUC在0.9以上时有较高准确性。AUC=0.5时,说明诊断方法完全不起作用,无诊断价值。AUC<0.5不符合真实情况,在实际中极少出现。 
3.两种诊断方法的统计学比较。两种诊断方法的比较时,根据不同的试验设计可采用以下两种方法:①当两种诊断方法分别在不同受试者身上进行时,采用成组比较法。②如果两种诊断方法在同一受试者身上进行时,采用配对比较法。

(四)ROC曲线的优点 
该方法简单、直观,通过图示可观察分析方法的临床准确性,并可用肉眼作出判断。ROC曲线将灵敏度与特异性以图示方法结合在一起,可准确反映某分析方法特异性和敏感性的关系,是试验准确性的综合代表。ROC曲线不固定分类界值,允许中间状态存在,利于使用者结合专业知识,权衡漏诊与误诊的影响,选择一更佳截断点作为诊断参考值。提供不同试验之间在共同标尺下的直观的比较,ROC曲线越凸越近左上角表明其诊断价值越大,利于不同指标间的比较。曲线下面积可评价诊断准确性。

猜你喜欢

转载自blog.csdn.net/guifeng93/article/details/74853110