当使用线性回归分析来获得结果的拟合值时,为什么更极端的值往往被预测得更接近均值?

机器算法验证 r 回归 预测模型
2022-03-19 00:12:53

我正在做一个项目,在该项目中,我使用几个自变量来“预测”使用线性回归的结果值。

在 R 中,这很简单,因为

model  <- lm(outcome ~ predictor1 + predictor2 + predictor3)
fitted <- model$fitted.values

我对预测值和实际值之间的差异感兴趣- 即预测变量的准确性。

residuals <- model$residuals

residuals我的问题与和之间的关系有关outcome

具有较低值的样本outcome往往具有负值,对于具有较高residuals的​​样本,反之亦然。outcome

将这些值相互绘制是查看这一点的最简单方法:

各种地块

R2对于原始 LM(结果 ~ 预测变量)为 0.42,则R2residuals之间outcome为 0.58,并且R2fitted之间outcome为 0.39。

什么可以解释这种现象?为什么高样本的outcome预测值往往低于实际值,反之亦然outcome或者实际上,我在这里是否在概念上遗漏了一些东西?

非常感谢您的意见


编辑(13.08.20)以包括更新的图和术语(现在使用“残差”而不是“差异”) - 但本质上问题保持不变。到目前为止,感谢所有人的投入。

4个回答
  • 通常的约定

通常的常规名称和定义是

残差 = 结果装的

类似地,通常的常规图是残差(y 轴)与拟合(x 轴)。

在 R 中,给定类似的东西

mymodel = lm(outcome ~ predictor1 + predictor2 + predictor3)

然后

plot(mymodel) 

将该图作为投资组合之一。这通常是一个更容易考虑你的情节的情节。您还可以绘制outcomefitted. 第一个是关键的,暴露模型的弱点,第二个是积极的,关注模型的优势。

  • 你最初所做的

通常的设置是观察到的y, 拟合y^, 和残差e通过链接

y=y^+e

有了这个设置,一个情节y相对e总斜率为+1. 该整体斜率存在可变性,但总体上与残差无关。您的原始difference变量包含否定残差,因此整体斜率变为1.

  • 注意事项R2

在您的情况下,请注意这两个值R2加1,即0.42+0.58=1,这是因为模型“解释”的方差比例和“未解释”的方差比例相互排斥。(残差和拟合之间的相关性为零,因此协方差项为零。)

  • 概括

您的原始情节(现已删除)的精神是正确的,但最好只绘制残差与拟合。事实上,你所做的事情让一些人感到困惑或困惑,因为他们误读了一个不符合标准的程序。您的情节模式是有道理的,并且没有错误或异常。

基本上,这是因为回归并不完美。

假设您有纯随机数据 - 因变量和自变量之间没有关系。那么对每个受试者的 DV 的最佳预测将是 DV 的平均值。

假设你们有一段完美的关系;那么你就可以准确预测DV了。

实际上,它总是介于两者之间,并且预测值介于平均值和实际值之间。

该图表明您似乎缺少一个重要变量。

因为残差有明显的趋势,即包含重要信息。

如果您对数据没有更多变量,也许您可​​以尝试交互。

这个概念并不新鲜,被称为回归均值或回归均值,请参阅此处了解历史和详细信息。事实上,这就是回归分析(线性模型、最小二乘等)最终被称为“回归”的方式。