线性回归或序数逻辑回归预测葡萄酒评级(从 0 到 10)

机器算法验证 r 回归 物流 有序的logit
2022-01-30 07:50:03

我有来自这里的葡萄酒数据,它由 11 个数字自变量组成,每个条目的相关评级与值在 0 到 10 之间。这使得使用回归模型来研究变量和相关变量之间的关系成为一个很好的数据集评分。但是,线性回归是否合适,还是使用多项/有序逻辑回归更好?

考虑到特定类别,逻辑回归似乎更好,即不是连续因变量,但(1)有 11 个类别(有点太多?)和(2)经过检查,这些类别中只有 6-7 个类别的数据,即其余5-4 个类别在数据集中没有示例。

另一方面,线性回归应该线性估计0-10之间的评级,这似乎更接近我想要找出的;然而,因变量在数据集中不是连续的。

哪种方法更好?注意:我使用 R 进行分析

编辑,解决答案中提到的一些要点:

  • 没有商业目标,因为这实际上是针对大学课程的。任务是以我认为合适的方式分析选择的数据集。
  • 评分的分布看起来很正常(直方图/qq-plot)。数据集中的实际值在 3-8 之间(即使技术上是 0-10)。
4个回答

有序 logit 模型更合适,因为您有一个因变量是一个排名,例如 7 比 4 好。所以有一个明确的顺序。

这允许您获得每个 bin 的概率。您需要考虑的假设很少。你可以看看这里

序数逻辑(和序数概率)回归的假设之一是每对结果组之间的关系是相同的。换句话说,序数逻辑回归假设描述响应变量的最低与所有更高类别之间关系的系数与描述下一个最低类别与所有更高类别等之间关系的系数相同。这称为比例优势假设或平行回归假设。

一些代码:

library("MASS")
## fit ordered logit model and store results 'm'
m <- polr(Y ~ X1 + X2 + X3, data = dat, Hess=TRUE)

## view a summary of the model
summary(m)

您可以在此处此处此处此处进行进一步的解释。

请记住,您需要将系数转换为优势比,然后转换为概率,以便对概率有一个清晰的解释。

以一种直接(和简单化的方式),您可以通过以下方式计算这些:

eXp(β一世)=ddsR一种一世

eXp(β1)eXp(β一世)=rb一种b一世l一世是的

(不想太技术化)

我想对这个问题提供另一种看法:在现实世界中,遇到这个问题的可能性较小,因为要做什么取决于业务需求

现实世界中的基本问题是得到预测后该怎么办?

  • 假设企业想要丢弃“劣质”葡萄酒。然后,我们需要一些“坏有多坏”的定义(说下面的质量2)。根据定义,应该使用二元逻辑回归,因为决策是二元的。(垃圾或保留,中间没有任何东西)。

  • 假设企业要选择一些优质葡萄酒发送到三种类型的餐厅。然后,将需要多类分类。

总而言之,我想论证的是,做什么其实还是要看得到预测后的需求,而不是只看响应变量的属性。

尽管就模型假设而言,有序 logit 模型(如 @adrian1121 详述)最合适,但我认为多元线性回归也有一些优势。

  1. 易于解释线性模型比有序 logit 模型更容易解释。
  2. 利益相关者的安慰该模型的用户可能更喜欢线性回归,因为他们更有可能知道它是什么。
  3. 更简约(更简单)。更简单的模型也可以执行,请参阅相关主题

大多数响应在 3-8 之间这一事实向我表明,线性模型可能适合您的需求。我并不是说它“更好”,但它可能是一种更实用的方法。

原则上有序的 logit模型似乎是合适的,但 10(甚至 7)个类别是相当多的。

1/最终进行一些重新编码是否有意义(例如,评级 1-4 将合并为 1 个单一模态,例如“低评级”)?

2/收视率的分布是什么?如果正态分布非常好,那么线性回归会做得很好(参见线性概率模型)。

3/否则我会选择完全不同的东西,称为“ beta 回归”——与经典的 5 分量表相比,11 分的评分量表非常详细——我认为将评分量表视为“强度”是可以接受的scale 其中 0 = Null 和 1 = Full/Perfect - 通过这样做,您基本上会假设您的比例是间隔类型(而不是序数类型),但对我来说这听起来可以接受。