ROC曲线,受试者工作特征曲线 (receiver operating characteristic curve,简称ROC曲线),又称为感受性曲线(sensitivity curve)。
ROC曲线是根据一系列不同的二分类方式(分界值或决定阈),以真阳性率(灵敏度)为纵坐标,假阳性率(1-特异度)为横坐标绘制的曲线。传统的诊断试验 评价方法有一个共同的特点,必须将试验结果分为两类,再进行统计分析。
ROC曲线的评价方法与传统的评价方法不同,无须此限制,而是根据实际情况,允许有中间状态,可以把试验结果划分为多个有序分类,如正常、大致正常、可疑、大致异常和异常五个等级再进行统计分析。
因此,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不符合真实情况,在实际中极少出现。
R中绘制ROC曲线
R的ROCR包中主要是两个函数:prediction和performance。前者是将预测结果和真实标签组合在一起,生成一个 prediction对象,然后再用performance函数,按照给定的评价方法,生成一个performance对象,最后直接对 performance用plot函数就能绘制出相应的ROC曲线。
ROCR代码: library(ROCR) # 载入R包 data(ROCR.simple); # 载入数据 ###绘制ROC曲线 pred <- prediction(ROCR.simple$predictions, ROCR.simple$labels); perf <- performance(pred,"tpr","fpr"); plot(perf,colorize=TRUE); ###计算曲线下的AUC即面积 auc<- performance(pred,"auc"); auc_area<-slot(auc,"y.values")[[1]]; #auc_area<-auc@"y.values"[[1]]; auc_area<-round(auc_area,4); #添加文本 text_auc<-paste("AUC=", auc_area,sep=""); text(0.8,0.3,text_auc); #分析: 我们现在取ROCR.simple 的前10个元素作为研究对象(predictions, labels各10个)。 ROCR.simple$predictions[1:10] ROCR.simple$labels[1:10] value_sorted<-sort(ROCR.simple$predictions[1:10],decreasing=T) label_sorted<-ROCR.simple$labels[1:10][order(ROCR.simple$predictions[1:10],decreasing=T)] data.list<-cbind(value_sorted,label_sorted) data.list pred1 <- prediction(ROCR.simple$predictions[1:10], ROCR.simple$labels[1:10]); perf1 <- performance(pred1,"tpr","fpr"); plot(perf1,colorize=TRUE);
SPSS 9.0以上版本可进行ROC分析
简单操作步骤如下:
1.定义列变量,并输入数据
(1)诊断分类值或检测结果(test):多个诊断试验则定义test1,test2,...
(2)金标准类别(group):1=病例组,0=对照组
(3)分类频数(freq),需要进一步执行第二步
2.说明频数变量路径:Data\Weight Case..., 选项:Weight case by, 填表:Freqency Variable (freq)
3.ROC分析:路径:Grahps\Roc Curve... 填表:Test Variable(test), State Variable (group), Value of state variable,选项包括:
(display) ROC Curve,with diagonal reference line (机会线), standard error and confidence interval (面积的标准误,及其可信区间), Coordinate points of the ROC curve (ROC曲线的坐标点)
options:test direction (如果检测值小划归为阳性,则需要选), cofidence level (%):需要除95%以外的可信度,可在此定义。
如果是连续型测量资料,则不需要第1步的(3)及第2步。
1F
为什么没ROCR包?