R语言的ROC分析
Posted 飞影学苑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言的ROC分析相关的知识,希望对你有一定的参考价值。
“ 受试者工作特征曲线(Receiver Operating Curve,ROC)是医学影像研究中经常会用到的一个统计方法,用于分析一个连续变量进行二分类时的敏感性和特异性。”
ROC分析时,任意选取一个数值进行分类判别时,都有假阳和假阴的误判。100例阳性病例正确判读出80例,真阳率为80%,也就是敏感性;100例阴性正确判读出90例,真阴率就是90%,也就是特异性。以真阳率作为纵轴,假阳率作为横轴(1-特异性),每一个截断值下的真阳率和假阳率在图上表示为一个点,将截断数值由小到大遍历并连接各点,就绘制完了ROC曲线,ROC曲线下面积AUC越大,说明这个连续变量的分类鉴别准确性越高。门槛越高,敏感性越好,不过特异性差;门槛越低,特异性越好,敏感性差。选取合适的截断值cut-off value,使得敏感性+特异性之和最大。
—
R语言里进行第一次ROC分析前,首先需要下载pROC软件包,运行install.packages("pROC")自动下载安装。这里以胶质瘤的高低级别鉴别为例,比较APTw和ADC数值在区分高低级别胶质瘤上的敏感性/特异性。将所有入组病例测量到的APTw、ADC数值及高低级别(0为低级别,1为高级别)信息录入excel并存为csv格式文件(GliomaROC.csv),格式如下图
使用read.csv命令读取GliomaROC.csv数据,存入新建Mydata变量。
—
ROC分析使用的是roc()函数,支持formula和常规的语法格式,formula格式更为简洁,如下图。常规的语法格式是roc(Mydata$Grade, Mydata$APTw),分析结果的末尾显示了曲线下面积AUC。
为了方便ROC曲线作图,一般会先将roc函数结果保存下来。
—
用plot()或者plot.roc()命令绘制两个ROC曲线在一张图上,print.thres和print.auc设置为TRUE,打印出截断值和AUC,legacy.axes设为TRUE,横轴显示为常用的1-specificity,否则会显示为specificity(x坐标1-0)。
绘制第二个ROC曲线时,需要加上add=TRUE,表示两个ROC绘制在一张图上,颜色和AUC显示的位置需要额外设置,以免重合显示,最终的ROC曲线显示如下。
以上是关于R语言的ROC分析的主要内容,如果未能解决你的问题,请参考以下文章