ROC曲线介绍.docx_第1页
ROC曲线介绍.docx_第2页
ROC曲线介绍.docx_第3页
ROC曲线介绍.docx_第4页
ROC曲线介绍.docx_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ROC曲线介绍前言 近年可以看到愈来愈多的医学文献以ROC curve做为标题或关键词,常用的医学文献查询系统-MEDLINE已经把它列为医学标题(Medical Subject Heading)。放射线科医师使用ROC曲线分析计算机断层摄影术与核医扫描的诊断能力【1-4】,精神科医师用它来决定问卷的决策点【5】,泌尿科医师用它来检定前列腺专一抗体密度(PSA density)是否比前列腺专一抗体浓度(PSA concentration)更能诊断出前列腺癌【6】。1989年和1990年在MEDLINE中可以查到178篇以ROC曲线为标题的文献【7】,1994年略微减少,但仍可找到20篇。本文将对ROC曲线的基本概念加以介绍。历史回顾ROC曲线的全名为Receiver Operating Characteristic Curve,中文或可译为接收器运作指针曲线,这项技术起初是为了增进军事雷达的敌我侦测能力而发展的。举例而言:雷达接收的无线电波可能只是噪声,也可能是噪声加上真正的电磁波,如果把噪声判为敌机,或把敌机误判为噪声,都会使我方蒙受损失,因此选择一个合理的指标做为判断标准,显然是极具军事价值的。在1954年的情报理论研讨会上,哈佛大学的Meter及Middleton和密西根大学的Peterson、Birdsall及Fox同时提出了应用概算比(likelihood ratio)做为决策法则的报告【8】。随后,这项决策法则被整合为ROC曲线。1971年,Lusted把ROC曲线的观念引介给医学界【9】。他指出ROC曲线是以X轴与Y轴分别代表伪阳性诊断与真阳性诊断的点状图【9】。1973年,Simpson及Fitter提出以ROC曲线下的面积做为诊断工具分辨能力的指标【10】。根据此一理论,要了解一个诊断工具是否优于另一工具,只要比较两者ROC曲线下的面积就可以得到答案了。1975年,Bamber【11】指出ROC曲线下的面积的意义。他认为这个面积(大于0,小于1的一个数字)代表强迫二选一(two-alternative-forced-choice, 2AFC)的情形下,诊断工具猜对有病者、无病者的机率。1988年Hanley提出ROC曲线下的面积的计算方法【12】。1983年Hanley及McNeil提出二条ROC曲线下的面积的统计检定方法【2】。 Centor在1991年的论文【7】中,对ROC曲线的发展有更详细的描述,有兴趣者可自行参考。从阳性预测值到ROC曲线在临床实务上,我们几乎不可能找到百分之百正确的诊断工具。一般认为可以做为黄金标准的长期追踪、组织切片检查、造影摄影术和尸体解剖【13】,除了最后一项外,也不是绝对正确。因此,阳性预测值、阴性预测值、敏感度、精确度、概算比等概念纷纷被提出来。医师较喜欢使用阳性预测值(或阴性预测值),因为这项指标是以具有某种检验结果的人数做为分母,以真实健康状态与检验结果相符的人数做为分子。医师如果知道某检验的阳性预测值是90,他就可以告诉一个检验结果为阳性的人说:你有90的机会得了某病。预测值的缺点是会受到盛行率的影响。如果甲、乙两医院的某病盛行率不同,这两家医院同一检验的阳性预测值也会不同。敏感度与精确度是以真实的健康状态人数为分母,以检验结果与该健康状态相符的人数做为分子,不会受到盛行率的影响,各医院同一检验的敏感度与精确度是相同的。而其缺点在于敏感度与精确度彼此之间有交换性,当诊断标准趋于严格时(检验为阳性的人数减少),敏感度会降低,但精确度会升高,例如:把血糖的正常值从140mg/dl提高到180mg/dl,敏感度的分母(真正的糖尿病患者人数)不变,但分子减少,所以敏感度会下降,而精确度则正好相反,因此这两个指标会随着正常值的改变而一升一降,我们无法由这两个指标中的任何一个知道最适当的正常值该定在那里。阳性概算比的定义是:具有某一状态者被检验为阳性的机率和不具有某一状态者被检验为阳性的机率之比值。因此阳性概算比就是真阳性率与伪阳性率的比值,由于真阳性率等于敏感度,伪阳性率等于一减去精确度,所以阳性概算比是整合敏感度与精确度的一个指标。不同的正常值就会产生不同的阳性概算比,当我们以一项检验工具,各个不同正常值下的阳性概算比的分母、分子画入X-Y坐标,即可得到一条以伪阳性率为X轴,真阳性率为Y轴的曲线,这条曲线即是ROC曲线。ROC曲线的制成假设图一的横轴代表某项检验的数值,纵轴代表人数比例(机率),h(x)代表无病者的分布曲线,d(x)代表有病者的分布曲线,hf(x)与d(x)底下的面积均为1(100%),且H(x)代表无病者的检验值小于或等于X的机率(即自负无限大至x之间h(x)的积分),D(x)代表有病者的检验值小或等于X的机率。则 伪阳性率1H(x). (1)真阳性率1D(x). (2)(1H(x),1D(x)的点集合即构成图二的ROC曲线。上述观念,也可以扩展到离散机率函数。假设某项检验的结果可以分为五级,有病组与无病组被分到各级的人数如表一,则以不同级为诊断标准时,即可得到如表二的敏感度与伪阳性率,根据表二的资料,即可得到图三的ROC曲线。临床上可用的诊断工具,其ROC曲线是一条凸向左上方的曲线,而且愈偏离45度对角线愈好【14】。45度对角线(图二)被称为无讯息线(Line of no information),这条线代表诊断工具的诊断结果,对医师判断病人是否有病,没有提供任何有效的讯息,也就是说,做这项检验的效用和扔铜板(指正反面出现机率相等的铜板)决定有病、没病是一样的。因此,早期判断一项诊断工具是否可用的指针,就是ROC曲线偏离45度对角线多远。Peterson和Birdsall提出的d指数【8】,Lusted所提的de(敏感指标)【9】都是属于这方面的研究。继敏感指标后,被提出的指针是ROC曲线下的面积,这面积是指在强迫二选一的情形下,猜对有病者、无病者的机率。强迫二选一是指从有病组中挑出一个人,再从无病组中挑出一人,做一项检验后,必须指出两人中那一个是有病者【1,7】。ROC曲线下的面积就代表诊断工具猜对的机率有多大。猜对的机率愈大代表诊断工具愈好。读者若对于ROC曲线下的面积的计算及多条ROC曲线下的面积的统计检定有兴趣,可以进一步参考Hanley及McNeil所写的论文【1,2】。Catalona等【6】的论文则是选定,每条ROC曲线最好的反折点来进行比较。因为有些医师觉得,临床上不必去考虑敏感度或精确度太差的情形,因此比较整条ROC曲线,在临床上是没有意义的。选择反折点ROC曲线的用处之一,是提供研究者找出一个较好的反折点(或正常值),使诊断工具的敏感度与精确度能有合理的平衡。对一位求诊者而言,如果把有病误诊为无病,和把无病误诊为有病视为同样重要,这时的反折点应是使敏感度与精确度的和有最大值的检验值。这个最大值是Youden在1950年提出的。如果h(x)与d(x)是平均值不同,变异数相同的两族群的常态分布曲线,则由图一可知:x=c*,使H(x)1D(x),这条线是图一中的45度对角线,也就是说:(1H(c*),1D(c*))正好是ROC曲线与45度对角线交点。但ROC曲线不是平滑曲线时,最好的反折点则不一定是(1H(c*),1D(c*))。Chong及Wilkinson【5】, Catalona【6】等的论文就是以这种方法选择反折点的。Sox等提出了选择最佳反折点的另一种想法【15】。他们认为最好的反折点是与下列斜率直线相切的ROC曲线上的一点: 治疗无病者的净成本无病者盛行率与ROC曲线相切之斜率: - -治疗有病者的净利润有病者盛行率 Sox等的观念比Yuden的观念更合理。但可能因为损益数据不易取得,而较少(或没有?)被采用。计算机程序Centor指出:Metz曾开发多种可用于微电脑的ROC曲线相关程序【7】。我们曾为个人计算机使用者以SAS/PC写过可计算ROC曲线各点及找出Yuden index 最佳反折点的程序。应用我们的程序的研究者,必须确认他的每笔数据至少有检验值、真实健康状态及各真实健康状态的人数等项。结语在临床上,由于新的检验技术不断地推陈出新,如果这个新技术是以数字呈现检验结果,则必须订出一个正常值的范围,作为医疗人员解读的依据。而ROC曲线正是许多研究者用以决定正常范围的工具。因此了解ROC曲线的原理,将有助于临床医疗人员对各种检验数据的理解与诠释。REFERENCES1. Hanley JA, McNeil BJ: The meaning and use of the area under a receiver operating characteristic (ROC) curve. Radiology, 1982;143:29-36.2. Hanley JA, McNeil BT: A method of comparing the areas under receiver operating characteristic curve derivedfrom the same cases. Radiology 1983;148:839-8433. Swets JA, Pickett RM, Whitehead SF et al. Assessment of diagnostic technologies. Science 1979;205:753-759.4. Somoza E, Mossman D: Comparing and optimizing diagnostic tests: an information-theoretical approach5. Chong MY, Wilkinson G: Validation of 30-and 12-item versions of the Chinese health questionnaire(cHQ) in patient admitted for general health screening. Psychol Med 1989;19:495-505.6. Catalona WJ, Richie JP, deKernion JB et al: Comparison of prostate specific antigen concentration versus prostate specific antigen density in the early detection of prostate cancer: receiver operation characteristic curves. J Urol 1994;152:2031-2036.7. Centor: Signal detectability: the use of ROC curves and their analyses. Med Decis Making 1991; 11:102-106.8. Swets JA: The relative operating characteristic in psychology- a technique or isolating effects of response bias finds wide use in the study of perception and cognition. Science 1973;182:990-1000.9. Lusted LB: Signal detectability and medical decision-making. Science 1971;171:1217-9.10. Simpson AJ, Fitter MJ: What is the best index of detectability?Psychol Bull 1973;80:481-8.11. Bamber D: The area above the ordinal dominance graph and the area below the receiver operating characteristic graph. J Math Psych 1975;12:387-415.12. Hanley JA: The robustness of the binominal assumptions used in fitting ROC curves. Med Decis Making 1988;8:197-203.13. Fletcher RH, Flether SW, Wagner EH: Clinical epidemiology. Baltimore: Williams & Wilkins 1988; 2nd:43-45.14. Murphy JM, Berwick DM, Weinstein MC: Performance of screening and diagnostic tests. Arch Gen Psychiatry 1987;44:550-555.15. Sox HC, Blatt MA, Higgins MC et al: Medical decision making. singapore: PE Publishing Pte Ltd. 1990;1st ed:134-138. 25/index.php/articles/41/297-rocROC(Receiver Operating Characteristic)曲线,也就是受试者工作曲线,用于二分类判别效果的分析与评价.一般自变量为连续变量,因变量为二分类变量.基本原理是:通过判定点(cutoff point/cutoff value)的移动,获得多对灵敏度(sensitivity)和误判率(1-Specificity(特异度),以灵敏度为纵轴,以误判率为横轴,连接各点绘制曲线,然后计算曲线下的面积,面积越大,判定价值越高.灵敏度:就是把实际为真值的判定为真值的概率.特异度:就是把实际为假值的判定为假值的概率.误判率:就是把实际为假值的判定为真值的概率,其值等于1-特异度.将绘成的曲线与斜45度的直线对比,若差不多重合,说明自变量对因变量的判定价值很差,若越远离斜45度的直线即曲线下的面积越大,说明自变量对因变量的判定价值越好,即根据自变量可以较为正确的判定因变量.使用SPSS的操作过程如下:Graphs/ROC Curve:Test variable选自变量(连续型变量),state varibale选因变量(二分类变量)display的选项一般全选.运行结果:ROC曲线,可直观地看到曲线外形.Area under the curve:曲线下方的面积,包括面积值,显著性分析,置信区间.Coordinates of the curve:ROC曲线各点对应的灵敏度和误判率.ROC曲线的概念受试者工作特征曲线(receiver operator characteristic curve, ROC曲线),最初用于评价雷达性能,又称为接收者操作特性曲线。ROC曲线是根据一系列不同的二分类方式(分界值或决定阈),以真阳性率(灵敏度)为纵坐标,假阳性率(1-特异度)为横坐标绘制的曲线。传统的诊断试验评价方法有一个共同的特点,必须将试验结果分为两类,再进行统计分析。ROC曲线的评价方法与传统的评价方法不同,无须此限制,而是根据实际情况,答应有中间状态,可以把试验结果划分为多个有序分类,如正常、大致正常、可疑、大致异常和异常五个等级再进行统计分析。因此,ROC曲线评价方法适用的范围更为广泛。(二)ROC曲线的主要作用ROC曲线能很轻易地查出任意界限值时的对疾病的识别能力。选择最佳的诊断界限值。ROC曲线越靠近左上角,试验的准确性就越高。最靠近左上角的ROC曲线的点是错误最少的最好阈值,其假阳性和假阴性的总数最少。两种或两种以上不同诊断试验对疾病识别能力的比较。在对同一种疾病的两种或两种以上诊断方法进行比较时,可将各试验的ROC曲线绘制到同一坐标中,以直观地鉴别优劣,靠近左上角的ROC曲线所代表的受试者工作最准确。亦可通过分别计算各个试验的ROC曲线下的面积(AUC)进行比较,哪一种试验的AUC最大,则哪一种试验的诊断价值最佳。(三)ROC曲线分析的主要步骤ROC曲线绘制。依据专业知识,对疾病组和参照组测定结果进行分析,确定测定值的上下限、组距以及截断点(cut-off point),按选择的组距间隔列出累积频数分布表,分别计算出所有截断点的敏感性、特异性和假阳性率(1-特异性)。以敏感性为纵坐标代表真阳性率,(1-特异性)为横坐标代表假阳性率,作图绘成ROC曲线。ROC曲线评价统计量计算。ROC曲线下的面积值在1.0和0.5之间。在AUC0.5的情况下,AUC越接近于1,说明诊断效果越好。AUC在0.50.7时有较低准确性,AUC在0.70.9时有一定准确性,AUC在0.9以上时有较高准确性。AUC0.5时,说明诊断方法完全不起作用,无诊断价值。AUC0.5不符合真实情况,在实际中极少出现。两种诊断方法的统计学比较。两种诊断方法的比较时,根据不同的试验设计可采用以下两种方法:当两种诊断方法分别在不同受试者身上进行时,采用成组比较法。假如两种诊断方法在同一受试者身上进行时,采用配对比较法。(四)ROC曲线的优点该方法简单、直观,通过图示可观察分析方法的临床准确性,并可用肉眼作出判定。ROC曲线将灵敏度与特异性以图示方法结合在一起,可准确反映某分析方法特异性和敏感性的关系,是试验准确性的综合代表。ROC曲线不固定分类界值,答应中间状态存在,利于使用者结合专业知识,权衡漏诊与误诊的影响,选择一更佳截断点作为诊断参考值。提供不同试验之间在共同标尺下的直观的比较,ROC曲线越凸越近左上角表明其诊断价值越大,利于不同指标间的比较。曲线下面积可评价诊断准确性。(五)SPSS软件实现ROC分析SPSS 9.0以上版本可进行ROC分析,操作步骤如下:定义列变量,并输入数据诊断分类值或检测结果(test):多个诊断试验则定义test1,test2,.金标准类别(group):1病例组,0对照组分类频数(freq),需要进一步执行第二步说明频数变量 路径:DataWeight Case., 选项:Weight case by, 填表:Freqency Variable (freq)ROC分析: 路径:GrahpsRoc 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步今天我们来介绍一下ROC(Receiver operating characteristics)国内复旦张文彤老师在SPSS统计分析基础教材中将其翻译成“受试者工作特征”,也有按字面意思译成“接受者操作特征曲线”。到底选择哪一个大家自便吧。ROC曲线是有TP(True positive rate)、FP(Flase positive rate)构成的,以TP作为Y轴,FP作为X轴。对于一个离散型分类器(discrete classifier),每一个分类器仅仅对测试集生成一组(fp,tp)点。这个结果对应着ROC空间上的一个点,例如上图中的A、B、C几个点。那么如何让它们产生一个曲线就成了大家最关心的问题。有一种方法通过对每一个样本集中的样本依次排序进入队列,来到一个样本就计算一次(fp,tp)值,直到样本集中样本全部进入为止。这样我们就得到了一个与样本数量相同的(fp,tp)数组了。然后我们通过这个二维数组我们就可以在ROC空间上做出一个ROC曲线了。具体的算法大家可以参见An introduction to ROC anslysisTom Fawcett, 2005。这篇论文中对ROC曲面进行了很详细的讲解。这样我们就可以得到一个如上图所示的ROC曲线。我们可以看到上图中有很多条ROC曲线,但是到底哪一条ROC曲线代表对应的分类器的分类效果?这也是一个值得探讨的问题。我们可以看到ROC曲线下面覆盖了一定的面积,不同的曲线覆盖的大小不同,于是一个通俗的想法就是比较它们覆盖面积的不同来判断分类器的效果。当然这个通俗的想法也是有其缘由的,因为对于在ROC空间中的点来说,分类器的分类效果越好它所对应的TP值就越高,FP越低,那么这个对应的点就越靠近西北方向(及左上角)。那么对于一个分类效果比较好的分类器来说,它的ROC曲面必然靠近西北方向,当然它所覆盖的面积就会比其它分类效果较差的分类器要大了。学界称这个面积为Area under the ROC curve(AUC)。说了这么多,如果需要仔细了解ROC的原理请大家参考上文提到的那篇论文。现在我将weka中得到ROC曲面的方法,以及通过SPSS绘制一个ROC曲面的方法以源码的形式介绍给大家:package com.csdn;import java.awt.BorderLayout;import java.io.BufferedReader;import java.io.FileReader;import java.util.Random;import weka.classifiers.Classifier;import weka.classifiers.Evaluation;import weka.classifiers.bayes.NaiveBayes;import weka.classifiers.evaluation.ThresholdCurve;import weka.core.Instances;import weka.core.Utils;import weka.gui.visualize.PlotData2D;import weka.gui.visualize.ThresholdVisualizePanel;import com.learning.Util;/* * Date: 2009.4.6 * by: Wang Yi * Email: * QQ: 270135367 * */public class SimpleROC /* * param args */public static void main(String args) throws Exception / TODO Auto-generated method stub/* * 1.读入数据集 */ Instances data = new Instances( new BufferedReader( new FileReader(C:Program FilesWeka-3-6datasegment-challenge.arff); data.setClassIndex(data.numAttributes() - 1); /* * 2.训练分类器并用十字交叉验证法来获得Evaluation对象 * 注意这里的方法与我们在上几节中使用的验证法是不同。 */ Classifier cl = new NaiveBayes(); Evaluation eval = new Evaluation(data); eval.crossValidateModel(cl, data, 10, new Random(1); /* * 3.生成用于得到ROC曲面和AUC值的Instances对象 * 顺带打印了一些其它信息,用于在SPSS中生成ROC曲面 * 如果我们查看weka源码就会知道这个Instances对象包含了很多分类的结果信息 * 例如:FMeasure、Recall、Precision、True Positive Rate、 * False Positive Rate等等。我们可以用这些信息绘制各种曲面。 */ ThresholdCurve tc = new ThresholdCurve(); /classIndex is the index of the class to consider as positive int classIndex = 0; Instances result = tc.getCurve(eval.predictions(), classIndex); System.out.println(The area under the ROCcurve: + eval.areaUnderROC(classIndex); /* * 在这里我们通过结果信息Instances对象得到包含TP、FP的两个数组 * 这两个数组用于在SPSS中通过线图绘制ROC曲面 */ int tpIndex = result.attribute(ThresholdCurve.TP_RATE_NAME).index(); int fpIndex = result.attribute(ThresholdCurve.FP_RATE_NAME).index(); double tpRate = result.attributeToDoubleArray(tpIndex); double fpRate = result.attributeToDoubleArray(fpIndex); Util.writeArray(tpRate, fpRate, d:roc.txt); /* * 4.使用结果信息instances对象来显示ROC曲面 */ ThresholdVisualizePanel vmc = new ThresholdVisualizePanel(); /这个获得AUC的方式与上面的不同,其实得到的都是一个共同的结果 vmc.setROCString(Area under ROC = + Utils.doubleToString(tc.getROCArea(result), 4) + ); vmc.setName(result.relationName(); PlotData2D tempd = new PlotData2D(result); tempd.setPlotName(result.relationName(); tempd.addInstanceNumberAttribute(); vmc.addPlot(tempd); / 显示曲面 String plotName = vmc.getName(); final ja

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论