前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【统计】 ROC曲线(1) - 模型评估首选方案

【统计】 ROC曲线(1) - 模型评估首选方案

作者头像
用户6317549
发布2019-12-17 12:04:31
2.3K0
发布2019-12-17 12:04:31
举报
文章被收录于专栏:科研猫科研猫
无论在生物学、物理学、医学等何种研究领域,ROC曲线作为评估模型的首选统计方法,其用途可为非常广泛。ROC曲线,也称“受试者工作特征曲线”,或者感受性曲线,抛开这写难记的名字不谈,我们将通过这几期的文章,重点谈谈ROC曲线的理论基础和实际应用。我们知道很多软件能够做ROC曲线,但是没有一款软件是万能的,比如SPSS和Prism GraphPad,虽然能够画图,但是不能计算ROC曲线的最优临界值,无法直接生成模型评估参数,更是无法对不同ROC曲线的效能进行统计比较。很多人为了完成一个完美的ROC曲线分析,可能要同时借助于SPSS、Excel、Prism GraphPad、MedCalc等多个软件。今天,作为数据分析终结者的科研猫工程师们,开发了又一款终极工具-“ROC分析终结者”(ROC Terminator),一键生成多模式ROC曲线+完整模型评估参数+Delong模型比较检验。当然,实际的数据分析要建立在理论基础上,本期内容:ROC曲线基础理论。赶紧学起来吧。

基本概念

ROC曲线,也称“受试者工作特征曲线”,主要是用于X对Y的预测准确率情况。最初ROC曲线是运用在军事上,现在更多应用在医学领域,判断某种因素对于某种疾病的诊断是否有诊断价值。

ROC曲线图是反映敏感性与特异性之间关系的曲线。横坐标X轴为 1 – 特异性,也称为假阳性率(误报率),X轴越接近零准确率越高;纵坐标Y轴称为敏感度,也称为真阳性率(敏感度),Y轴越大代表准确率越好。

根据曲线位置,把整个图划分成了两部分,曲线下方部分的面积被称为AUC(Area Under Curve),用来表示预测准确性,AUC值越高,也就是曲线下方面积越大,说明预测准确率越高。曲线越接近左上角(X越小,Y越大),预测准确率越高。

应用场景

ROC曲线的应用场景有很多,根据上述的定义,其最直观的应用就是能反映模型在选取不同阈值的时候其敏感性(sensitivity, FPR)和其精确性(specificity, TPR)的趋势走向。不过,相比于其他的P-R曲线(精确度和召回率),ROC曲线有一个巨大的优势就是,当正负样本的分布发生变化时,其形状能够基本保持不变,而P-R曲线的形状一般会发生剧烈的变化,因此该评估指标能降低不同测试集带来的干扰,更加客观的衡量模型本身的性能。要解释清楚这个问题的话,大家还是先回顾一下混淆矩阵。

其中比较重要的概念有:

(1) 真阳性(True Positive,TP):检测不阳性,且实际不阳性;正确肯定的匹配数目;

(2) 假阳性(False Positive,FP):检测不阳性,但实际阳性;误报,给出的匹配是不正确的;

(3) 真阴性(True Negative,TN):检测阳性,且实际阳性;正确拒绝的非匹配数目;

(4) 假阴性(False Negative,FN):检测阳性,但实际不阳性;漏报,没有正确找到的匹配的数目。

绘制原理

ROC曲线其实是多个混淆矩阵的结果组合。以疾病检测为例,这是一个有监督的二分类模型,模型对每个样本的预测结果为一个概率值,我们需要从中选取一个阈值来判断健康与否。定好一个阈值之后,超过此阈值定义为不健康,低于此阈值定义为健康,就可以得出混淆矩阵。

而如果在上述模型中我们没有定好阈值,而是将模型预测结果从高到低排序,将每次概率值依次作为阈值,那么就可以得到多个混淆矩阵。对于每个混淆矩阵,我们计算两个指标TPR和FPR,以FPR为x轴,TPR为y轴画图,就得到了ROC曲线。

AUC的概念

AUC (Area under Curve):ROC曲线下的面积,介于0.1和1之间,作为数值可以直观的评价分类器的好坏,值越大越好。

AUC值作为评价标准被定义为ROC曲线下的面积,取值范围一般在0.5和1之间。使用AUC值作为评价标准是因为很多时候ROC曲线并不能清晰的说明哪个分类器的效果更好,而作为一个数值,对应AUC更大的分类器效果更好。

AUC 的常用计算方法有:(1)梯形法则:早期由于测试样本有限,我们得到的AUC曲线呈阶梯状。曲线上的每个点向X轴做垂线,得到若干梯形,这些梯形面积之和也就是AUC;(2)Mann-Whitney统计量: 统计正负样本对中,有多少个组中的正样本的概率大于负样本的概率。这种估计随着样本规模的扩大而逐渐逼近真实值。

AUC的用途

从AUC判断分类器(预测模型)优劣的标准,AUC值越大的分类器,正确率越高。

  • AUC = 1,是完美分类器,采用这个预测模型时,存在至少一个阈值能得出完美预测。绝大多数预测的场合,不存在完美分类器。
  • 0.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。
  • AUC = 0.5,跟随机猜测一样(例:丢铜板),模型没有预测价值。
  • AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测。

不同模型的比较

总的来说,AUC值越大,模型的分类效果越好,疾病检测越准确。不过两个模型AUC值相等并不代表模型效果相同,例子如下:

下图中有三条ROC曲线,A模型比B和C都要好。

下面两幅图中两条ROC曲线相交于一点,AUC值几乎一样:当需要高Sensitivity时,模型A比B好;当需要高Speciticity时,模型B比A好;

最优临界点

所谓找到最优临界点,就是保证TPR高的同时FPR要尽量的小,建立max(TPR+(1-FPR))的模型。同样有三种方法:找到离(0,1)最近的点Youden index

1. 如果说Sn 和Sp 分别对应于sensitivity和specificity,所有ROC曲线上的点到ROC的距离可以表示为,让d最小就好啦;

2. Youden index : 最大化ROC曲线上的点到x轴的垂直距离(最大化TPR(Sn)和FPR(1-Sp)的差异);

性能比较-Delong test

我们知道ROC曲线的性能可以通过曲线下面积即AUC来得到,那么如何通过统计学的角度来比较两个ROC曲线呢,就是这里说的就是Delong test,可以得到两个曲线的P值,p<0.05可以看作两个曲线有较大差异。目前常用高的SPSS和Prism GraphPad是不能计算ROC曲线的最优临界值,更是无法对不同ROC曲线的效能进行Delong统计比较的。

作为数据分析终结者的科研猫工程师们,实力宠粉是我们的职责所在,于是继GEO终结者TCGA生存分析终结者之后,我们开发了又一款终极工具-“ROC分析终结者”(ROC Terminator),可以一键生成多模式ROC曲线+完整模型评估参数+Delong模型比较检验。工具下期公布,大家先睹为快吧:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科研猫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档