为什么这个模型中的残差如此线性偏斜?

机器算法验证 r 回归
2022-04-08 06:04:56

我正在拟合一个带有 4 个预测变量的简单线性回归模型:

lm(Outcome ~ Predictor1 + Predictor2 + Predictor3 + Predictor4, data=dat.s)

我发现模型预测始终处于关闭状态,如下图所示: 预测和残差的散点图

该模型显然高估了低值并低估了高值,但错误估计是非常线性的——看起来模型应该能够调整斜率并更好地拟合数据。为什么这没有发生?如果有帮助,这里是针对四个预测变量中的每一个的结果的散点图: 在此处输入图像描述

使用caroutlierTest函数没有发现任何异常值。

2个回答

您不应该根据预测值绘制残差,因为它们是相关的,而是我们根据拟合值绘制,即要看到这一点,请考虑这个简单的数据集:Y^

x = runif(20)
y = rnorm(20)

显然是不相关的。现在,我们拟合了一个简单的线性回归模型xy

m = lm(y ~ x)

并根据结果拟合值绘制残差

plot(y, residuals(m))
plot(fitted.values(m), residuals(m))

要得到:

在此处输入图像描述

请注意针对结果的绘图,并没有提供任何见解。因此,尚不清楚您的模型是否有问题,因为我们不希望出现随机散射。y

您所看到的被称为“向均值回归”并且完全可以预期。任何时候数据中存在可变性(并且您的数据看起来像是一堆),那么预测值平均将介于总体平均值和观察值之间。您创建的结果与预测值的图并不常见,由于您所看到的原因,它往往会让人感到困惑而不是启发。更常见的是根据残差绘制预测值,因为如果模型合理,该图将显示更多随机性。

编辑以解决下面的评论

csgillespie 的示例因在原始问题包含 4 个预测变量时仅包含 1 个预测变量而受到批评。下面是一些快速 R 代码,可以运行以显示具有 4 个预测变量的相同模式:

# simulated data, no relationship
df1 <- data.frame(y=rnorm(100), x1=rnorm(100), x2=rnorm(100),
        x3=rnorm(100), x4=rnorm(100))

fit1 <- lm( y ~ ., data=df1 )
#plot(df1$y, fitted(fit1), asp=1)
    scatter.smooth(df1$y, fitted(fit1), asp=1)
abline(0,1)
abline(h=mean(fitted(fit1)), col='lightgrey')
plot(df1$y, resid(fit1))
abline(h=0)

plot(fitted(fit1), resid(fit1))
abline(h=0)

# simulated data, relationship
library(MASS)
df2 <- as.data.frame( mvrnorm(100, mu=1:5, Sigma= matrix(.7,5,5)+diag(rep(.3,5))))
names(df2) <- c('y','x1','x2','x3','x4')

fit2 <- lm( y ~ ., data=df2 )
#plot(df2$y, fitted(fit2), asp=1)
    scatter.smooth(df2$y, fitted(fit2), asp=1)
abline(0,1)
abline(h=mean(fitted(fit2)), col='lightgrey')
plot(df2$y, resid(fit2))
abline(h=0)

plot(fitted(fit2), resid(fit2))
abline(h=0)


# real data
fit3 <- lm( Murder~Population+Income+Illiteracy+Frost, data=as.data.frame(state.x77))

scatter.smooth( state.x77[,'Murder'], fitted(fit3), asp=1)
abline(0,1)
abline(h=mean(fitted(fit3)), col='lightgrey')
plot(state.x77[,'Murder'], resid(fit3))
abline(h=0)

plot(fitted(fit3), resid(fit3))
abline(h=0)

请注意,这些图看起来与原始问题中的图非常相似。

另请注意,在原始结果与拟合值的图中,点(以及它们的趋势)倾向于落在线和平均线之间。这是回归平均值的想法,最初由 Galton See Here描述。这些点并不像原始海报假设的那样随机散布在线上,如果没有回归均值会发生什么,而是它们沿着代表y=xy=xy=x线和整体平均线,正如高尔顿所预测的那样。术语回归均值(和变体)有时用于其他概念(一些与原始概念的关系比其他概念更接近),如上一篇文章所示,这可能是一些混淆的来源。