R绘制ROC曲线

来源:云生信1 7,729

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曲线。

R绘制ROC曲线-图片1

 

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);

 

R绘制ROC曲线-图片2

 

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步。

    • lin 0

      为什么没ROCR包?

    发表评论

    匿名网友