对多重共线性后果的直觉

机器算法验证 自习 多重回归 多重共线性 直觉
2022-03-21 06:39:54

所以我们有一个回归方程,其中包含一个解释变量和 10 个解释变量。

到目前为止我读过的内容:

  1. 多重共线性不影响整个模型的回归。

  2. 但是,如果我们开始查看单个预测变量 Xs 对解释变量的影响,那么我们将得到不准确的估计。

我试图开始直观地思考它,如下所示:

  • 高多重共线性意味着在一个矩阵中,两个或更多行/列彼此线性相关。换句话说,在 3 维空间中,有 2 个向量(几乎)具有相同的方向,只是大小不同(对吗?)

如果有人能解释这如何转化为“多重共线性不影响整体回归,而只影响单个变量的系数估计”,我将不胜感激。

另外,有人可以用粗体解释该声明吗?我无法理解它:

要记住的另一件事是,对各个系数的测试均假设所有其他预测变量都在模型中。换句话说,只要所有其他预测变量都在模型中,每个预测变量都不重要。两个或多个预测变量之间必须存在某种相互作用或相互依赖。

这是对这个问题的回答:回归如何显着但所有预测变量都不显着?

2个回答

让我们首先区分完美多重共线性(模型矩阵不是满秩,因此通常的矩阵求逆失败。通常是由于预测变量的错误指定)和非完美多重共线性(一些预测变量相关而不导致计算问题)。这个答案是关于第二种类型的,它几乎出现在任何多变量线性模型中,因为预测变量没有理由不相关。

一个具有强多重共线性的简单示例是二次回归。所以唯一的预测变量是X1=XX2=X2

set.seed(60)

X1 <- abs(rnorm(60))
X2 <- X1^2
cor(X1,X2)   # Result: 0.967

此示例说明了您的问题/主张:

1.多重共线性不影响模型整体的回归。

让我们看一个示例模型:

Y <- 0.5*X1 + X2 + rnorm(60)
fit <- lm(Y~X1+X2)
summary(fit)

#Result
[...]

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept)  -0.3439     0.3214  -1.070    0.289
X1            1.3235     0.8323   1.590    0.117
X2            0.5861     0.3931   1.491    0.141

Residual standard error: 1.014 on 57 degrees of freedom
Multiple R-squared:  0.7147,    Adjusted R-squared:  0.7047 
F-statistic: 71.39 on 2 and 57 DF,  p-value: 2.996e-16

关于模型的全局声明很好:

  • R-Squared:约 71% 的变异性XY
  • 之间确实存在关联XY
  • 预测:对于 X 值为 2 的人值的最佳猜测XY
    0.3439+1.32352+0.586122=4.6475

2. 但是,如果我们开始查看单个变量 Xs 对解释变量的影响,那么我们将得到不准确的估计。

估计是准确的,这不是问题。孤立效应的标准解释的问题在于,我们将所有其他预测变量固定,如果与其他预测变量有很强的相关性,这很奇怪。在我们的示例中,甚至错误地说“增加1 并保持值增加 1.3235 ,因为YX1X2X2=X12. 由于我们无法描述性地解释孤立效应,因此所有关于它们的归纳陈述都没有用:查看输出中的 t 检验。两者都高于 5% 的水平,尽管全球关联测试给我们的 p 值低于 5%。这种 t 检验的原假设是“预测变量的影响为零”,或者换句话说,“包含该预测变量不会增加总体中的真实 R 平方”。因为几乎完全相关,所以如果我们去掉两个变量之一,模型的 R 平方几乎相同:X1X2

summary(lm(Y~X1))

# Gives

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  -0.7033     0.2148  -3.274  0.00179 ** 
X1            2.5232     0.2151  11.733  < 2e-16 ***

Residual standard error: 1.025 on 58 degrees of freedom
Multiple R-squared:  0.7036,    Adjusted R-squared:  0.6985 
F-statistic: 137.7 on 1 and 58 DF,  p-value: < 2.2e-16

这已经说明了语句的第一部分:

要记住的另一件事是,对各个系数的测试均假设所有其他预测变量都在模型中。换句话说,只要所有其他预测变量都在模型中,每个预测变量都不重要。两个或多个预测变量之间必须存在某种相互作用或相互依赖。

这里的最后一个陈述显然是错误的。

除了@Michael 给出的那些问题之外,另一个问题是,当存在强近似共线性时,输入数据的微小变化会导致输出的巨大变化。

我编造了一些数据(对成年人腿和躯干的平均长度(以英寸为单位)和体重(以磅为单位)进行疯狂猜测)。

set.seed(1230101)
lengthleg <- rnorm(100, 30, 5)
lengthtorso <- lengthleg + rnorm(100, 0, 1)
weight <- 1.2*lengthleg + 1.8*lengthtorso + rnorm(100, 0, 10)

m1 <- lm(weight~lengthleg + lengthtorso)
coef(m1)

第一次通过时,我得到了 -5.93、0.43 和 2.73 的系数。重新运行所有内容,除了set.seed给我 -9.91、1.12 和 2.18。