逻辑回归中始终为负的 Efron 伪 r2 可能吗?

机器算法验证 物流 模型评估
2022-03-21 22:57:41

我正在进行逻辑回归,并希望与 AIC 和 BIC 一起计算伪 R2 值以进行模型评估。我选择了 Efron 的伪 R2,因为它计算简单,并且与适当的 R2 值相似。当我运行一系列逻辑回归时,它会产生一个负值。但是,通常说伪 R2 值介于 0 和 1 之间(此处为示例)。我计算错了什么,或者这个 0 到 1 的范围对于 Efron 的伪 R2 是错误的吗?

我用于 Efron 的伪 R2 的方程是:R2=1(yiπi)2(yiy¯)2

在哪里:

  • y是一个由 1 和 0 组成的数组,表示数据中的真实结果标签
  • π是一个由 1 和 0 组成的数组,表示作为逻辑回归结果的预测结果标签
  • y¯是 y 的算术平均值计算为并等价于或 1 结果的概率yyinp

这似乎是网上一贯给出的定义。 (我无权访问基础期刊文章。)

从等式来看,这似乎是由于三个原因发生的:(1)因为样本量大(n = 4,000),(2)逻辑回归的相对不准确,以及(3)p的值(均值 y = ) 接近 0.5。大样本量加上频繁的错误会炸毁分子,并且 p 接近 0.5 会缩小分母。事实上,当我计算我的数据子集(大约前 100 行)的值时,我收到一个正的伪 R2。

但是,再次讨论伪 R2 始终在 0 和 1 之间。似乎有两种可能性:(1)这个范围是一个简化,并且坏模型可能是负数(就像传统的 R2 ) 或 (2) 我的理解有问题。

有关实现的更多信息,尽管我相信我的实现正确地反映了上面的等式:我正在使用python sklearn实现,它的推理指标有限,所以我正在编写函数来计算伪 R2 值。我根据上面的公式编写了函数,并确认该站点的另一个函数返回相同的值,这使我相信这是度量的特征,而不是方程式的错误实现。

2个回答

你的问题在这里:

π1 和 0 的数组,表示作为逻辑回归结果的预测结果标签。

这是不正确的。值应该是逻辑回归返回的类成员的预测概率。请参阅您引用的UCLA 网页上表格中的公式说明。π

逻辑回归不返回类成员分配。基于建模后分类的 p = 0.5 的隐藏假设,它有时似乎是这样。但即使需要严格的分配,这也不一定是最好的截止选择。

您的公式与分类的准确性有关(在选择的概率截止处),这不是评估任何类型的分类模型的好选择。该公式中第二项的分子(将值正确地视为概率)是Brier score的基础,即观察值和预测概率之间的均方误差。这是一个严格正确的评分规则,您可以考虑单独使用它。Frank Harrell课程笔记的第 8 章介绍了几种评估逻辑回归模型质量的方法。π

我认为记住什么很重要R2表示在线性情况下。

R2=1(yiy^i)2(yiy¯)2

如果我们想通过我们拥有的平方损失的低来衡量我们预测条件均值的能力,那么我们最好使用比猜测的幼稚模型更低的平方损失y¯每次!

这正是伪中正在发生的事情R2. 如果您在预测条件概率(不是标签)方面做得比总是预测总体流行率的幼稚模型做得更差,那么分子大于分母,导致伪R2<0. 在概率模型的情况下,平方损失称为 Brier 分数,而不是通常的损失函数。然而,Brier 分数是一个严格正确的评分规则,这意味着,有点松散地说,它寻找真正的条件概率值。

逻辑回归中的典型损失函数是对数损失,它对应于系数的最大似然估计。以类似的方式比较对数损失值是有意义的。这是麦克法登的R2.

事实上,我说将您的模型在感兴趣的损失函数上的表现与某些基线模型进行比较总是有意义的。在 OLS 线性回归中,对“解释的方差比例”有一个方便的解释,但即使我们缺乏这样的解释,将我们的性能与基线模型的性能进行比较也能让我们了解我们的模型是否提供了价值。

加州大学洛杉矶分校有一个很好的网页关于R2概率模型的风格指标,如逻辑回归

Vanderbilt 的 Frank Harrell 对如何衡量模型的附加值有一些想法。