在多元回归模型中具有相关预测变量有什么影响?

机器算法验证 回归 多重回归 p 值 线性模型 多重共线性
2022-01-24 03:57:07

我在我的线性模型课程中了解到,如果两个预测变量是相关的并且都包含在一个模型中,那么其中一个将是微不足道的。例如,假设房子的大小和卧室的数量是相关的。在使用这两个预测器预测房屋成本时,可以删除其中一个,因为它们都提供了许多相同的信息。直观地说,这是有道理的,但我还有一些技术性问题:

  1. 当模型中仅包含一个预测变量或同时包含两个预测变量时,这种效应如何在回归系数的 p 值中体现出来?
  2. 在模型中包含两个预测变量或仅包含一个预测变量如何影响回归系数的方差?
  3. 我怎么知道模型会选择哪个预测变量不那么重要?
  4. 仅包含一个或两个预测变量如何改变我的预测成本的值/方差?
3个回答

您要问的主题是多重共线性您可能想阅读分类在 CV 下的一些主题标签。上面链接的@whuber 的答案特别值得您花时间。


断言“如果两个预测变量相关并且都包含在模型中,则一个将是微不足道的”的断言是不正确的。如果变量有实际影响,则变量显着的概率是多个因素的函数,例如影响的大小、误差方差的大小、变量本身的方差、数据量你有,以及模型中其他变量的数量。变量是否相关也是相关的,但它不会覆盖这些事实。考虑以下简单的演示R

library(MASS)    # allows you to generate correlated data
set.seed(4314)   # makes this example exactly replicable

# generate sets of 2 correlated variables w/ means=0 & SDs=1
X0 = mvrnorm(n=20,   mu=c(0,0), Sigma=rbind(c(1.00, 0.70),    # r=.70
                                            c(0.70, 1.00)) )
X1 = mvrnorm(n=100,  mu=c(0,0), Sigma=rbind(c(1.00, 0.87),    # r=.87
                                            c(0.87, 1.00)) )
X2 = mvrnorm(n=1000, mu=c(0,0), Sigma=rbind(c(1.00, 0.95),    # r=.95
                                            c(0.95, 1.00)) )
y0 = 5 + 0.6*X0[,1] + 0.4*X0[,2] + rnorm(20)    # y is a function of both
y1 = 5 + 0.6*X1[,1] + 0.4*X1[,2] + rnorm(100)   #  but is more strongly
y2 = 5 + 0.6*X2[,1] + 0.4*X2[,2] + rnorm(1000)  #  related to the 1st

# results of fitted models (skipping a lot of output, including the intercepts)
summary(lm(y0~X0[,1]+X0[,2]))
#             Estimate Std. Error t value Pr(>|t|)    
# X0[, 1]       0.6614     0.3612   1.831   0.0847 .     # neither variable
# X0[, 2]       0.4215     0.3217   1.310   0.2075       #  is significant
summary(lm(y1~X1[,1]+X1[,2]))
#             Estimate Std. Error t value Pr(>|t|)    
# X1[, 1]      0.57987    0.21074   2.752  0.00708 **    # only 1 variable
# X1[, 2]      0.25081    0.19806   1.266  0.20841       #  is significant
summary(lm(y2~X2[,1]+X2[,2]))
#             Estimate Std. Error t value Pr(>|t|)    
# X2[, 1]      0.60783    0.09841   6.177 9.52e-10 ***   # both variables
# X2[, 2]      0.39632    0.09781   4.052 5.47e-05 ***   #  are significant

两个变量之间的相关性在第一个示例中最低,在第三个示例中最高,但在第一个示例中两个变量都不显着,在最后一个示例中两者都显着。在所有三种情况下,影响的大小是相同的,并且变量的方差和误差应该是相似的(它们是随机的,但来自具有相同方差的总体)。我们在这里看到的模式主要是由于我为每种情况操纵了 s。 N


解决您的问题需要理解的关键概念是方差膨胀因子(VIF)。VIF 是回归系数的方差比变量与模型中的所有其他变量完全不相关时的方差大多少。请注意,VIF 是一个乘法因子,如果所讨论的变量不相关,则 VIF=1。对 VIF 的简单理解如下:您可以拟合一个模型,从模型中的所有其他变量(例如 ) ,并获得多个的 VIF 为1假设的 VIF为X1X2R2X11/(1R2)X110的回归系数的抽样分布的方差将比与模型中的所有其他变量完全不相关时 的方差X110×X1

考虑一下如果同时包含两个相关变量与仅包含一个相关变量会发生什么是相似的,但比上面讨论的方法稍微复杂一些。这是因为不包括变量意味着模型使用较少的自由度,这会改变残差方差和由此计算的所有内容(包括回归系数的方差)。此外,如果未包含的变量确实与响应相关联,则由于该变量导致的响应方差将包含在残差方差中,使其大于其他情况。因此,有几件事同时发生变化(变量是否与另一个变量相关,以及残差方差),删除/包含另一个变量的精确效果将取决于这些变量的权衡方式。


了解 VIF 后,以下是您问题的答案:

  1. 因为如果回归系数的抽样分布的方差与模型中的其他变量相关,它的方差会更大(VIF 的一个因子),所以 p 值将高于(即,不显着),否则.
  2. 如前所述,回归系数的方差会更大。
  3. 一般来说,如果不求解模型,这很难知道。通常,如果两个中只有一个是显着的,那么它将是与具有更强二元相关性的那个。 Y
  4. 预测值及其方差如何变化是相当复杂的。这取决于变量的相关程度以及它们与数据中的响应变量相关联的方式。关于这个问题,它可能会帮助您在这里阅读我的答案:多元回归中“控制”和“忽略”其他变量之间有区别吗?

这是更多的评论,但我想包括一个图表和一些代码。

如果您的意思是“只有一个”,我认为“如果两个预测变量相关并且都包含在模型中,则一个将微不足道”的说法是错误的。二元统计显着性不能用于变量选择。

这是我的反例,使用大腿周长、皮褶厚度*和手臂中部周长的体脂百分比回归:

. webuse bodyfat, clear
(Body Fat)

. reg bodyfat thigh triceps midarm

      Source |       SS       df       MS              Number of obs =      20
-------------+------------------------------           F(  3,    16) =   21.52
       Model |  396.984607     3  132.328202           Prob > F      =  0.0000
    Residual |  98.4049068    16  6.15030667           R-squared     =  0.8014
-------------+------------------------------           Adj R-squared =  0.7641
       Total |  495.389513    19  26.0731323           Root MSE      =    2.48

------------------------------------------------------------------------------
     bodyfat |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
       thigh |  -2.856842   2.582015    -1.11   0.285    -8.330468    2.616785
     triceps |   4.334085   3.015511     1.44   0.170    -2.058512    10.72668
      midarm |  -2.186056   1.595499    -1.37   0.190    -5.568362     1.19625
       _cons |   117.0844   99.78238     1.17   0.258    -94.44474    328.6136
------------------------------------------------------------------------------

. corr bodyfat thigh triceps midarm 
(obs=20)

             |  bodyfat    thigh  triceps   midarm
-------------+------------------------------------
     bodyfat |   1.0000
       thigh |   0.8781   1.0000
     triceps |   0.8433   0.9238   1.0000
      midarm |   0.1424   0.0847   0.4578   1.0000


. ellip thigh triceps, coefs plot( (scatteri `=_b[thigh]' `=_b[triceps]'), yline(0, lcolor(gray)) xline(0, lcolor(gray)) legend(off))

在此处输入图像描述

正如您从回归表中看到的那样,一切都是微不足道的,尽管 p 值确实有所不同。

最后一个 Stata 命令绘制了 2 个回归系数(熟悉的置信区间的二维模拟)的置信区域以及点估计(红点)。皮褶厚度和大腿围系数的置信椭圆长而窄且倾斜,反映了回归变量的共线性。估计系数之间存在很高的负协方差。椭圆覆盖了部分纵轴和横轴,这意味着我们不能拒绝个别假设βs 为零,尽管我们可以拒绝两者的联合空值,因为椭圆不覆盖原点。换句话说,无论是大腿还是肱三头肌都与体脂有关,但你无法确定哪一个是罪魁祸首。

那么,我们如何知道哪些预测变量不那么重要呢?回归量的变化可以分为两种类型:

  1. 每个回归器独有的变化
  2. 回归变量共享的变化

在估计每个回归器的系数时,只使用第一个。常见变异被忽略,因为它不能被分配,尽管它被用于预测和计算R2. 当唯一信息很少时,置信度会很低,系数方差会很高。多重共线性越高,唯一变异越小,方差越大。


*皮肤褶皱是三头肌上皮肤褶皱的宽度,使用卡尺测量。

正如@whuber 所说,这是一个复杂的问题。但是,您帖子的第一句话是一个巨大的简化。通常情况下,两个(或更多)变量将相关并且都与因变量相关。它们是否显着取决于效应大小和像元大小。

在您的示例中,假设对于给定大小的房屋,人们更喜欢更少的房间(至少在纽约市,这并非不合理 - 它表明建筑物较旧,墙壁更坚固等,并且可能是邻里的标志)。那么两者都可能很重要,方向相反!

或者,假设这两个变量是房屋大小和街区——这些肯定会与更好街区的更大房屋相关——但它们仍然可能都很重要,而且肯定都与房价有关。

此外,仅使用“相关”掩码的复杂性。变量可以强相关而不相关。