R中的百分比响应变量(两个计数的比率,但计数本身不可用)的回归

机器算法验证 r 回归 物流 广义线性模型 罗吉特
2022-03-29 06:39:29

我有一个数据集,我试图从其他一些收集的 IV 中预测学生在学校考试中的百分比分数。我想知道如何在R.

几个相关的问题:

首先,我看到了一些关于这个主题的问题(例如,在线性回归中使用百分比结果有什么问题?)通常的建议是使用逻辑回归。我对逻辑回归如何适应这一点有点困惑。我从未正式上过关于逻辑回归的课程,我的理解(来自机器学习世界)是通过逻辑函数对线性输入的评估被解释为该数据点属于多数的概率(1)班级。但是,我本身没有类,所以我对逻辑模型在这种情况下的实际工作方式感到困惑,因为我基本上有一个以 0 和 100 为界的连续变量。

我还看到在某些地方推荐泊松回归。但是,这似乎可以预测整数值,并且可能不是一个好的模型?

最后,运行它的步骤是R什么?我会将我的百分比 DV 转换为 logit,运行常规lm()函数并像正常一样解释系数(及其 p 值)吗?对显着性的解释是否与线性回归相同(即当所有其他 IV 保持不变时,IV 是 DV 百分比的重要预测指标)?

编辑:

在评论中,有人建议可以在这里找到答案:当结果是分数(两个计数的比率)时,如何在 R 中进行逻辑回归?

Greg 提出的解决方案是使用两列,一列指定比例,另一列指定权重(总分数)。这在我的情况下不起作用。

在数据集中,我只能访问最终的百分比/比例。数据来自不同的班级,我无法知道个人在考试中获得的分数,也无法知道该考试的总分数(因为不同班级的个人可能会有所不同)

Greg 帖子中的选项#1 也是不可能的,因为我没有二元/分类响应。

1个回答

以下三种解决方案之一可能对您有用。但是,我很好奇其他人会提出什么建议:

  1. 您可以使用简单的线性回归。但是,该过程可能会违反线性回归的某些假设(取决于您的实际数据)。p 值和/或置信区间等推论统计数据可能不可信。此外,您的模型可能会预测边界之外的分数,这使得解释变得困难。

  2. 您可以将百分比分数转换为对数并将它们用作线性回归的结果。这是转换公式: ln(p/(1-p)) 通过这样做,您可以将逻辑回归的链接函数调整为线性回归。这可能会解决之前的一些问题,尤其是最后一个问题,因为 logits 边界是 -infinite 和 +infinite。但是,您失去了可解释性。(编辑:关于这种方法的简短讨论以及为什么不推荐它可以在链接到第三个解决方案的源代码中找到)

  3. Beta 回归可能是您正在寻找的模型。以下小插图展示了如何使用 Cribari-Neto 和 Zeileis 的“betareg”-Package 在 R 中应用 beta 回归:ftp: //cran.r-project.org/pub/R/web/packages/betareg/vignettes/betareg.pdf

希望我的一些建议对你有帮助!