Please enable JavaScript to view this site.

逻辑回归中的ROC曲线用于确定最佳阈值,以预测新观测值是“失败”(0)还是“成功”(1)。如果您对ROC曲线不熟悉,理解起来可能需要花些功夫。下图展示了一个逻辑回归的ROC曲线示例。

首先,让我们了解分类临界值的实际作用。当您选择一个分类临界值(假设您选择 0.5)时,这意味着您希望将模型预测概率等于或大于 0.5 的每个观测值归类为“成功”。请注意,无论该结果是否实际被观察为成功,只要满足此标准,您都会将其归类为成功。 感到困惑了吗?别担心,这其实比听起来要简单。逻辑回归中的观测结果只能是 0 或 1。而模型预测概率可以取 0 到 1 之间的所有可能值。因此,对于某个观察值,模型预测概率可能是 0.51(成功概率为 51%),但该观察值实际上是 0(即未成功)。 我们稍后会讨论正确或错误分类观测值的重要性。现在,让我们先回到 ROC 曲线的话题。

曲线上的每个点代表一个用于分类预测值的不同阈值。理论上您可以选择 0 到 1 之间的任意值作为阈值,但若要手动测试所有可能的有意义的阈值,将是一项极其耗时的任务。 因此,ROC曲线的作用是考察所有可能导致数据集内任意观察值分类结果发生变化的分类临界值(如果将分类临界值从0.5逐步提高到0.6并未改变观察值的分类结果,那么这一步就不值得考虑)。对于每个导致分类结果发生变化的分类临界值,图上都会标记一个点。 但该点应位于何处?要回答这个问题,让我们回到分类结果,进一步了解分类机制及其分类表。

无论选择哪个阈值,数据行中都会有一部分被正确分类(您预测了该行的正确值),也有一部分会被误分类。灵敏性和特异性是分别用于评估真阳性率和真阴性率的两个指标。换句话说,灵敏度是指使用该特定阈值时,您正确识别为1的1的数量所占的比例,即真阳性率。 反之,特异性是指您正确识别为0的0的比率,即真阴性率。

数学上,它们表示为:

灵敏度 = (正确识别为1的数量) / (观察到的1的总数)

特异性 = (正确识别为0的数量) / (观察到的0的总数)

基于这些信息,我们可以综合理解ROC曲线。首先,我们确定ROC曲线的坐标轴:Y轴即为敏感度(或真阳性率),而X轴为1-特异性。虽然需要一些额外的数学推导(和脑力),但可以证明1-特异性等同于假阳性率。

对于 ROC 曲线上的每个点(代表不同的阈值),该点的位置在 Y 轴上以该阈值下的灵敏度为坐标,在 X 轴上以该阈值下的 1 – 特异性为坐标。因此,ROC 曲线直观地展示了在试图最大化真阳性率与试图最小化假阳性率之间存在的权衡关系。 在理想情况下,所有阈值处的灵敏度和特异性都应接近100%,这意味着在所有情况下都能做出完美预测。若能达到这种状态,便无需统计分析,因为“成功”与“失败”的区分非常明确。事实上,使用逻辑回归甚至无法拟合这种模型。

最佳情况下的ROC曲线

最佳情况下的ROC曲线会呈现90度角。若获得此曲线,则可能无需统计学分析,因为区分0和1变得轻而易举。请注意,在每个点上,灵敏度和特异性均达到100%(即1-特异性为0%)。 事实上,该曲线表明存在一个阈值,在此阈值下灵敏度和特异性均为100%。换言之,即不存在假阳性,也不存在假阴性。该ROC曲线的AUC值为1。

无检验力的ROC曲线

另一方面,最差的 ROC 曲线(在 Prism 中)其预测效果仅与随机猜测相当,这在 ROC 曲线上表现为一条 45 度的直线。该拟合模型对结果的预测效果甚至不如抛硬币。  另一种理解方式是:提高真阳性率(敏感性)的唯一途径,是同时以相同幅度提高假阳性率(1 – 特异性),这绝非理想的方法。该ROC曲线的AUC值为0.5。

最坏情况下的 ROC 曲线

请注意,还存在另一种情况,即模型(理论上)的表现可能比随机概率更差。回顾一下,ROC曲线绘制的是模型的灵敏度和特异性,而这两个值都基于对受试者的分类。 您或许能设想一种模型,其中“成功”(或1)被预测为“失败”(或0)的频率,高于随机概率的预期。在这种情况下,模型虽然仍能识别出不同的结果组,但会错误地进行分类(1会被归类为0,反之亦然)。 在最极端的情况下,模型可能会将所有观测到的1都完美地预测为0,并将所有观测到的0都预测为1。与“最佳情况下的ROC曲线”相反,下图显示对于每个阈值,灵敏度和特异性(或两者)均处于0%。该ROC曲线的AUC值为0!

ROC曲线下面积

ROC曲线下面积(AUC)是一项综合指标,用于评估逻辑回归模型在所有可能阈值下对阳性与阴性结果的分类效果。其取值范围为0.5至1,数值越大越好。 虽然人们有时会将AUC用作评估模型预测性能的手段,但由于它代表了所有可能的阈值(这在实际中并不可行),因此其解释较为困难。我们建议直接解读ROC曲线,以此作为选择阈值的方法。

选择阈值

实际上,您只能为模型选择一个阈值。 如何确定使用哪个阈值?这取决于您的具体场景。如果假阴性比假阳性更严重,则选择灵敏度较高的阈值(即 ROC 曲线 Y 轴上较高的值);反之,如果假阳性更严重,则选择特异性较高的阈值(即 ROC 曲线左侧的值)。