用ROC曲线解析预测模型

数据科学是一个在过去几年里真正成长的术语,似乎每个人都想加入。最具吸引力的目标之一是利用数据资产的力量来创建能够预测各种结果的机器学习模型。通过定义明确的模型,可以确定能够预测结果的最重要影响因素,为战略假设开发有价值的洞察力,甚至可以通过友好的用户界面将模型的逻辑实现到软件应用程序中。

然而,在任何这种魔法发生之前,我们需要知道模型创建的预测是否有益!例如,如果我们的电子邮件程序的垃圾邮件分类器只能检测到50%的不需要的电子邮件或请求,我们都会非常愤怒。在这篇文章中,我将讨论如何使用每个数据科学家应该熟悉的经典工具来评估预测模型:接收器操作特性(ROC)曲线

说明性实例:预测冠状动脉疾病

我在这篇文章中使用的数据集来自Bom等人对“疑似冠状动脉疾病患者冠状动脉斑块形态的靶向蛋白质组学的预测价值”。

这项研究检查了两种不同的结果,我将重点关注这篇文章的是没有冠状动脉疾病(CAD)。作者评估了蛋白质组学生物标志物在有症状患者中检测CAD缺失的预测能力。确定一组可以区分无CAD患者和需要立即干预的蛋白质的蛋白质组将提供更准确和成本有效的非侵入性诊断测试。

该数据集是测试多个数据科学主题的绝佳来源。通过少量观察,它很容易使用,但它还包含大量变量以增加复杂性。结果(使用冠状动脉计算机断层扫描血管造影术,或CCTA)的可行“黄金标准”被提供来测试预测。对于这篇文章,我将主要关注从单一模型构建ROC曲线,但可以在后面的帖子中使用此数据集深入研究更高级的主题。

预测精度测量概述

在开始创建曲线之前,了解一些评估预测准确性的常用指标非常重要。

积极类:我将正类定义为我试图检测的结果类。在这种情况下,缺少 CAD。虽然我意识到这可能会导致诊断测试领域中的“积极”和“消极”这两个术语混淆,但这种方式定义积极类更能推广到其他情况。

在这种情况下处理有症状患者的默认方法是让他们接受进一步的测试和程序。通过充分检测没有CAD的患者,我们将不再需要不必要的,更具侵入性的手术。

一般准确性:简单地说,有多少科目正确分类?

敏感性:正确识别真阳性的比例。在这种情况下,健康患者的比例由诊断工具正确识别。这有时被称为“召回”。

  • SN =真阳性/(真阳性+假阴性)
  • 逆(1灵敏度)= 假负率。未被该工具检测到的健康患者被错误地识别为患有CAD。假阴性也称为II型错误。

特异性:正确识别真阴性的比例。在这种情况下,通过诊断工具正确识别CAD患者的比例。

  • SP =真阴性/(真阴性+误报)
  • 逆(1-特异性)= 假阳性率。CAD患者被错误地识别为无CAD。误报也称为I型错误。

积极预测价值:该工具报告的阳性比例,实际上是积极的。对于诊断工具报告缺乏CAD的患者组,PPV是实际上没有患病的患者的比例。这有时被称为“精确度”。

  • PPV =真阳性/(真阳性+误报)

负面预测值:该工具报告的负面影响的比例,实际上是负面的。对于诊断工具报告存在CAD的患者组,NPV是实际上没有CAD的患者的比例。

  • NPV =真阴性/(真阴性+假阴性)

不要担心,如果你的大脑试图理清所有这些指标。这些术语很容易混淆,特别是在第一次学习它们时。我发现在2x2表中可视化内容最容易。

二进制类的混淆矩阵(正=没有CAD,负= CAD)

曲线的解剖

ROC曲线的优点在于它是一种易于理解的图形工具,可应用于您创建的任何预测模型。以下是曲线的基础知识:

轴:灵敏度和误报率

首先,我们需要为情节创造空间。通过将灵敏度与1-特异性(或假阳性率)作图来建立ROC曲线。

预测概率

现在我们需要绘制一些东西。回想一下,预测模型会将每个观察分配给最可能的类(在这种情况下,没有CAD与CAD的存在)。模型实际上在做的是计算属于特定类的概率。在0和1之间选择截止值,并且如果计算的概率超过该阈值,则将观察值分配给该类。

您可能会发现在大多数软件包中,默认截止值设置为0.5,逻辑是,在二进制类中,可以将观察值分配给最可能的类。但是,正如我们所看到的,最好在考虑灵敏度和特异性之间的权衡之后选择截止值。

通过绘制所有可能的截止值来生成ROC曲线,所述截止值是分配给每个观察的概率。选择不同的截止值将改变预测工具的灵敏度和特异性,因此,可以使用相关的灵敏度和1-特异性作为坐标在图的空间中绘制每个截止概率。最靠近左上角的点(SN = 1,FPR = 0)提供精度度量之间的最大平衡。

曲线下面积(AUC)

AUC是一个类似于二元模型的一致性或c统计量的度量。这是具有正类的观察将具有比在负类中的观察更大的预测概率的概率。

如果AUC = 1,则表示模型有完美的预测。如果AUC = 0.5,则意味着模型无法区分类。它在逻辑回归中的行为与r平方相似,因为添加更多预测因子会增加AUC。因此,在分析中包括对外部数据的交叉验证或验证非常重要。

AUC可用于评估不同的预测模型。

参考线

绘制参考线通常是个好主意,其中AOC = 0.5在ROC图上。这提供了比较曲线的基线视觉效果。

生成ROC曲线

虽然可以使用几个不同的程序来开发预测模型和ROC曲线,但我已经在R中实现了分析。

为了预测结果,我使用xgboost创建了一个分类模型,其中蛋白质生物标记物作为预测因子,并使用重新取代方法来预测数据集中的结果。使用预测的概率,我可以形成上面显示的ROC曲线。

注意:该程序也设置为使用k-fold交叉验证,或者可以更新以利用外部验证,例如列车和测试集的70/30分割(尽管我想要更多数据)。

解释曲线

AUC为0.738,实际上低于作者用他们的机器学习方法所发现的(堆叠可能提高了分类器的准确性)。但是,我更关心的是选择合适的截止值并权衡工具的成本和收益。

模型的总体准确性是不错的,但是当发生假阳性结果时,会发生CAD患者而不是通过必要的程序?让我们同意这不会是一件好事。

为了安全起见,尽可能减少诊断工具的误报率可能是个好主意。在生成混淆矩阵时,很容易选择保持低误报率的概率截止值。这将作为谁被标记为无CAD的决定标准。

通过选择保持90%特异性(10%假阳性率)的概率截止值,分类工具能够检测到42%没有CAD的患者(敏感性= 0.42)。在这种情况下,这实际上是一个非常好的结果,因为现状是让所有有症状的患者接受更具侵入性的诊断程序。尽管42%的灵敏度可能听起来很低,但在这种特定情况下,这是一个很有希望的结果。

在开发用于预测有症状患者的CAD状态的分类器时,最重要的是在保持低误报率的同时实现尽可能高的灵敏度。

ROC曲线的优点在于您可以从单个图像中可视化所有这些性能指标。将曲线与竞争模型进行比较是一种快速简便的方法,可以选择合适的分类或诊断工具。

我只研究了使用ROC曲线和二进制分类工具,但它可以很容易地扩展到多类方案。在同一图形上,可以绘制与每个特定类别中的概率相对应的多条曲线。

在撰写本文时,我详细介绍了如何构建ROC曲线,目的是增加对预测精度度量的理解,以及如何评估您可能正在构建的这些数据科学分类工具。

标题:Illustrating Predictive Models with the ROC Curve

(0)

相关推荐

  • 生存模型评价常用指标总结

    生存分析:研究生存现象和响应时间数据及其统计规律的一种分析方法. 常见的生存分析方法有: 寿命表法:主要研究不同时间段内生存率的变化 单因素 Kaplan-Meier 分析:主要研究单个因素对生存率的 ...

  • ROC分析

    转自个人微信公众号[Memo_Cleon]的统计学习笔记:ROC分析. 本次笔记涉及单变量和多变量的ROC和PR曲线的绘制,AUC.最佳界值的确定以及两条ROC曲线间的比较,采用软件SPSS26. 受 ...

  • 分类模型评估指标

    对于构建好的机器学习模型,需要对模型的效果进行评估,对于机器学习中的3大类问题,分类,回归,聚类而言,各自有不同的评估指标,本文主要介绍分类模型常用的评估指标. 以二分类问题为例,考虑真实分类和模型预 ...

  • (3条消息) matlab 绘制 ROC曲线

    编程题目接收操作特征(Receiver Operating Characteristic,ROC)曲线,即通常所讲的ROC Curve,是机器学习领域中常用的分类性能评估曲线,横轴是False Pos ...

  • 技术贴 | 利用graphpad绘制多指标的ROC曲线

    本文由阿童木根据实践经验而整理,希望对大家有帮助. 原创微文,欢迎转发转载. 导读 ROC曲线(receiver operating characteristic curve,简称ROC曲线),以真阳 ...

  • R语言 ROC曲线 截断值、特异性、敏感性和曲线下面积AUC值的计算和显示

    ** R语言绘制ROC曲线在临床医学中的应用 ** #计算体脂率对诊断妊娠期糖尿病的ROC曲线.截断值 sumExcel1.2018合4_列合并症<- read.csv("C:\Use ...

  • R语言中生存分析模型的时间依赖性ROC曲线可视化

    原文链接:http://tecdat.cn/?p=20650 人们通常使用接收者操作特征曲线(ROC)进行二元结果逻辑回归.但是,流行病学研究中感兴趣的结果通常是事件发生时间.使用随时间变化的时间相关 ...

  • 如何用SPSS做ROC曲线分析?看这1篇就够了!

    一.ROC曲线的概念 受试者工作特征曲线(receiver operator characteristic curve, ROC曲线),最初用于评价雷达性能,又称为接收者操作特性曲线.ROC曲线是以真 ...

  • 为啥会出现这样的ROC曲线,怎么解决呢?

    导读 松哥统计说 我们都知道,ROC用于诊断疾病指标的阈值筛选,正常ROC都是在对角线的上方的,可是很多人在实际研究中,都会遇到不可预知的情况.     对于第一张图,到底是何种原因呢?该图做了4个指 ...

  • TCGA数据差异分析后生存分析(批量单因素cox回归/Lasso筛选,多因素cox建模,时间依赖ROC曲线及KM plot可视化)

    测序上游分析系列: mRNA-seq转录组二代测序从raw reads到表达矩阵:上中游分析pipeline miRNA-seq小RNA高通量测序pipeline:从raw reads,鉴定已知miR ...

  • Logistics回归分析 之 ROC曲线与AUC面积

    序曲 莲藕花叶图 [元代]吴师道 玉雪窍玲珑,纷披绿映红. 生生无限意,只在苦心中. [赏析] 这是一首题画诗,是诗人在一幅莲藕花叶图上题写的五言绝句.诗中借着对莲藕花叶的吟咏,写出了作者对生活的体验 ...

  • roc曲线spss怎么做

    上一篇文章,我们用SPSS软件比较了不同指标的ROC曲线下面积的大小. SPSS,简单易用是其最大的优势. 不过SPSS在比较不同指标ROC曲线下面积的时候,不能给出两两比较的假设检验结果. 如果我们 ...