在最近从技术角度讲网络研讨会,我讨论了预测外周动脉疾病(PAD)的风险,其中反应有两种可能的结果:是(患者有PAD风险)和否(患者无PAD风险)。
在那次演讲中,我指出了预测模型包含两个部分:1)模型创建的概率函数; 2)用于将数据分类为最可能是或否的临界值。 我简要提到过,ROC曲线是评估和比较模型创建的概率函数的好方法。
这篇博客文章将进一步说明ROC曲线及其解释方法。 在预测稀有事件(不平衡数据)并选择分类临界值时,我还将提供一些有关ROC曲线的想法。
ROC曲线
图1显示了外周动脉疾病(PAD)风险预测模型的ROC曲线。
图1。 PAD预测模型的ROC曲线。
ROC曲线的标准元素:
- x轴为1-Specficity,即误报率;取值范围是0到1。 也可以将其视为模型的I型错误。
- y轴是灵敏度,是真实正值的比例;取值范围是0到1。 也可以将其视为模型的功效或1-Type II错误。
- 有时,一条对角线穿过0,0和1,1,这是真实的阳性率等于错误的阳性率。 这条线代表真正的随机模型或没有预测价值的模型。
那么在ROC曲线上绘制了什么?
要了解在ROC曲线上绘制的内容,请记住类别响应的预测模型有两个部分:1)概率函数和2)临界值,用于将概率分类为最可能的类别。 对于数据集中的每个观察,将预测概率用作分类临界值。 在数据集中为每个观察结果绘制了具有该截止值的模型的结果灵敏度和1-特异性。 我将在下面详细介绍这些计算。
请注意,ROC曲线永远不会落在穿过0,0和1,1的对角线以下。
并且如何解释ROC曲线?
完美的模型穿过网格(0,1)的左上角。 x值为0表示该模型不会导致误报。 y值为1表示模型得出所有真实正值。
ROC曲线(AUC)下的区域指示模型距ROC曲线的左上角有多近。 AUC为1是理想模型,而AUC为0.5是随机模型或无预测值的模型。 由于ROC曲线永远不会落到对角线以下,因此AUC始终在0.5到1之间。
较高的AUC表示该模型距离对角线较远,对角线表示没有预测值的模型,并且接近通过网格左上角(0,1)的理想模型。
仔细研究PAD模型的ROC曲线
让我们仔细研究一下PAD风险的预测模型的ROC曲线,以及如何计算x和y值。 图2是数据集中的观测子集的图形图,并绘制在ROC曲线上。 这些点中的一些点用其对应的PAD =是的预测概率标记。
图2。 稀有事件示例的ROC曲线。
首先,请注意,数据点按预测概率的顺序排列,范围从0.02到0.53。 如果我是根据数据集构建的模型,其中的数字是“是”和“否”,则我希望范围在0到1之间,并且在曲线中心附近为0.5。 但是,此数据集是针对稀有或不平衡的数据集的,这意味着与“否”相比,“是”的出现频率要低得多。因此,所有预测的概率都落在范围的下限–均为0.53及以下。
图右上角的数据点对应于数据子集中的最低预测概率(0.02)。 在讨论用于绘制该点的计算之前,请花一点时间考虑一下该场景。 如果我们使用最低的预测概率之一作为对所有预测概率进行分类的临界点,那么分类将发生什么? 当其中许多数据确实为“否”时,几乎所有数据都将被分类为“是”。这对应于较高的误报率(1-Specificity)。 同样,任何为“是”的数据都将被归类为“是”,这是很高的真实阳性率(灵敏度)。
还要考虑图表左下角的数据点。 该点对应于数据中的最高预测概率(0.53)。如果将最高的预测概率用作临界值,则所有数据都将被分类为“否”,这意味着误报率(1-Specificity)低,实际上为零。任何为“是”的数据都将被归类为“否”,这会导致较低的真实阳性率(灵敏度),并且再次为零。
计算1特异性和灵敏度
要在ROC曲线上绘制数据,我们必须计算1-Specificity和Sensitivity。 让我们从图2右上角的数据点开始,它对应于数据子集中的最低预测概率(0.02)。 首先,将预测概率0.02作为临界值,以将整个数据集分类为是或否。将该预测条件与实际或真实条件进行比较,并将数据分为四个结果–真实阳性,真实阴性,假阴性,假阳性(图3)。 图3称为混淆矩阵,混淆矩阵中填充的数字用于计算1-Specificity和Sensitivity。
|
真实条件
|
实际正面
|
实际负数
|
预测条件
|
预测积极
|
真正(TP)
|
误报(FP)
|
预测为负
|
假阴性(FN)
|
真负(TN)
|
图3。 二进制分类模型(混淆矩阵)的结果。
1-专长
1-Specificity是错误的阳性率,是通过从中减去真实的阴性率来计算的。 真实阴性率是模型预测的真实阴性数(TN)除以实际阴性总数,其中包括真实阴性(TN)和假阳性(FP)。

灵敏度
灵敏度是真实阳性率,是模型预测的真实阳性率(TP)除以实际阳性总数,包括真实阳性率(TP)和假阴性(FN)。

对整个数据集应用0.02的分类截止值,我们得到的结果显示在下面的图4中。
|
真实条件
|
实际正面
|
实际负数
|
预测条件
|
预测积极
|
TP = 277
|
FP = 3394
|
预测为负
|
FN = 0
|
TN = 312
|
图4。 PAD预测模型的结果,分类截止值为0.02。
从这些结果,我们可以计算分别对应于ROC曲线上绘制的x和y值的1-Specificity和Sensitivity。


总而言之,ROC曲线是用于创建概率函数的数据集中每个数据点的图。 当将预测概率用作分类临界值时,通过使用混淆矩阵中的结果为每个数据点计算1特异性和敏感性。
通过对ROC曲线进行这些计算,我们还可以得出结论,使用概率函数和0.02分类的预测模型不是很好的模型。 首先,由于该点接近代表真正随机模型的对角线,因此,我们比简单地为患者随机分配PAD风险要好得多。 从计算中我们还可以看到,我们的真实阴性率(特异性)为0.08,真实阳性率(敏感性)为1,差异很大。 换句话说,虽然对100%的真实PAD病例进行了分类,但假阳性率为92%。 我们将要选择一种分类截止值,以平衡特异性和敏感性,并且离对角线更远,更靠近图的左上角。
选择分类截止
默认情况下,临界值0.5用于根据概率函数对数据进行分类, JMP使用此临界值创建预测公式。 临界值为0.5可能适用于实际正负数相等的数据。 但是,当实际的阳性率较低(例如,罕见事件或数据不平衡)时,0.5的临界值可能不是最佳的。
问题就变成了,对于稀有事件,可以使用哪种方法选择分类截止? ROC曲线确实为我们提供了一些线索。 图表的左上角是最大的真实阴性率(特异性)和真实阳性率(敏感性)。 查看图2,其中标记了预测概率,我们可以看到,如果我们的目标是平衡特异性和敏感性,则对于此预测模型,约0.07的临界值将是最佳选择。但是,ROC曲线通常没有用其预测概率标记。
可以使用Youden的J统计量来找到与ROC曲线上特异性和敏感性最大化的点相对应的预测概率。

Youden的J统计量介于0到1之间,其中0对应于相等的真阳性和假阳性比率,而1对应于具有所有真阳性和没有假阳性的模型。 也可以将其视为ROC曲线上与代表随机模型的对角线最远的点。
如果在Fit Model Platform中使用标称逻辑,则选择ROC曲线时,还将获得相应的ROC表。 表格中的一列是Youden的J统计量,并标记为Sens-(1-Spec)。 可以按Sens-(1-Spec)降序对ROC表进行排序,以识别出具有最大Sen-(1-spec)的预测概率(Prob),在该概率中,真阴性率(特异性)和真阳性率(灵敏度) )都最大化。 您会看到JMP在Sens-(1-Spec)的最大值旁边放置一个星号。

在PAD示例中,从3,983名患者的数据集中仅发现了277名PAD患者。 0.07的分类截止值抵消了真实的正负率。 确定分类截止值后,可以在保存到数据表的预测公式中对其进行更改。 我将注意到,选择临界值取决于预测模型的目标以及与结果相关的风险。 如果研究人员希望防止例如误报或误报,研究人员可能会选择其他截止值。