如何在序数回归中正确执行预测?

机器算法验证 回归 有序的logit
2022-03-28 14:47:16

这个问题是这个问题的续集

比例赔率逻辑回归预测每个级别的概率,以预测变量为条件: lx

P(y=l | x) for every lL

但在实践中,我们大多只是想预测水平本身。我认为标准方法是为选择最可能的水平。这至少似乎是R工作的默认方式。lxpredictMASS::polr

另一种方法是计算级别的期望并对其进行四舍五入: (如所写,这仅适用对于枚举为数字的级别,例如,但将其扩展到其他值是微不足道的)。

y= lLlP(y=l | x) 
0,1,...

这两种方法不同并产生不同的预测。我假设在标准统计软件中实现的第一个应该是首选,但是,至少在我上一个问题的数据集上,第二个表现更好(MAE = 0.97 vs. MAE = 1.71)并且接近性能二项式预测变量的 (MAE = 0.94)。请注意,选择最可能的级别永远不会选择级别 1 和 2:

在此处输入图像描述

那么,哪种是预测水平的“标准”方式,在什么情况下可以证明替代方案是合理的?

编辑回应评论:我隐含地假设序数尺度是潜在的、潜在的、连续变量的离散版本,正如 McCullagh (1980) 原始论文中所建议的那样。

2个回答

当 Y 是离散的时,我们真的陷入了困境:

  • 最可能的类别可能不太可能,因此使用它可能会导致任意强制选择
  • 如果 Y 不是数字并且不是近似区间缩放的,那么您不能使用平均值
  • 分位数仅适用于连续分布(当分布离散时,它们过于跳跃;您可能会发现添加单个观察值会使分位数移动整个 Y 水平)

所以我们只剩下

  • 在给定 X 的情况下估计 Y 的整个概率分布,这很好但只是嘈杂
  • 估计 P(Y=y | X) 很好,但精度较低
  • 为预先指定的 y估计 P(Y

选择最可能的类别是标准的原因是它不涉及对序数类别进行任何处理,就好像它们是按区间缩放的一样。计算期望将序数类别视为数字。MAE 做同样的事情,因此使用 MAE 作为损失时,期望得到更好的结果也就不足为奇了。如果作为损失,您只需计算错误类别的频率,最可能的类别通常会给出更好的结果(这不是定理,有时可能不成立,至少在测试或验证数据上不成立)。因此,您选择预测类别的方式与与您相关的损失有关。

可以说,MAE 和错误分类概率都不是 100% 合适的,一个隐含地将数据视为具有区间水平,另一个视为具有名义水平。文献中有专门针对序数数据的损失函数,但它们很少使用,而且定义它们的方法肯定不止一种,可能会导致模棱两可的结果。

最终,哪种损失与您相关,取决于您自己。有一个教条是,序数数据不应该被用来做区间尺度的东西,比如计算平均值、期望值或 MAE,但是在许多将类别视为区间尺度数字的应用程序中似乎是合适的,特别是如果存在一个潜在的定量尺度同样分为序数类别(只是假设有一个基础规模而不知道它是什么并没有帮助,因为这些类别可能代表不同的大值区间,在这种情况下,使用类别编号作为区间缩放会歪曲底层规模) ,或者数据来自隐含地向受访者传达数据将被评估为整数的调查问卷(例如,如果这些数字被明确给出)。如果您确实认为 MAE 与您最相关,那么没有什么可以阻止您使用期望值或任何最好的方法来优化您的验证损失,但是很可能序数回归不是开始的最佳方法第一名。如果您最终忽略了数据的序数特征,

错误分类损失是否合适取决于在您的特定应用程序中,如果预测错误,它是否与实际错误有关。再一次,如果这是您决定的,(分类)分类方法可以与序数回归竞争。

一个关键问题是,损失函数的任何定义都会以某种方式量化根据序数数据的基本思想不应该量化的内容。您可以以某种方式从数据中估计量化(查看类别的经验频率,尽管假设这些是关于类别之间“真实”定量差异的信息是有问题的),但最终,如果您想量化损失,有没有办法拥有一个。如果损失是您最关心的问题,请选择优化您的方法。