回归模型中控制变量的多重共线性问题

2024-05-19  本文已影响0人  韦子谦

1、什么是多重共线性

多重共线性(multicollinearity, 简称collinearity)意味着预测变量之间高相关,这会影响我们在回归模型中观察某个预测变量对结果变量的单独影响。

例如我们想看x1和x2对y的影响,但是x1和x2高相关,这时x1对y的作用会受到x2影响。

这里可以借用调节效应来理解。在做中介调节模型前,我们一般会做一个相关矩阵,来看看哪些变量之间是高相关的,毕竟只有彼此高相关的变量才有做调节效应的价值。当然调节效应的研究假设和回归分析不一样,不可理解为同一回事,这里只是从数据的层面类比了相关性的情况。

上述x1、x2、y的例子考虑的是数据中的多重共线性(data-based multicollinearity)。此外还有结构多重共线性(structrual multicollinearity),例如,将x1、x1的平方作为预测变量,很显然x1和x1的平方是高相关的。关于这一情况,请看references。

关于共线性的原理,Rawlings et al. (1998) 书里有详细的描述。

2、为什么会出现多重共线性?

根据Rawlings et al. (1998, pp. 433-434),有四种可能:

1、变量的数学特性。例如对x1取平方,然后预测x1、x1的平方对y的影响。很显然此时x1、x1的平方是高相关的;
2、变量在某一个系统中的属性。例如某两个变量在心理学中就是高相关的;
3、糟糕的取样;
4、糟糕的实验设计。

1和2对应了上述的data-based and structrual collinearity。

3、通过计算VIF来判断多重共线性

判断多重共线性的方法是计算每个预测变量的VIF(variance inflation factor)。

VIF指的是某个变量的引入对模型的系数的变异(variance)的膨胀程度(inflation)。

一个变量和越多其它变量高相关,则VIF越高。

计算方法是去掉第i个变量后,将模型的R方代入公式:VIF_i = 1/(1 - Rsqaure_i)

可以跑一下模型然后按照上述公式手算,这样能更好理解。

4、引入控制变量时,共线性问题的两种情况

继续用上述x1、x2、y的例子。假设我们还有控制变量z1、z2、z3。其中,z1的VIF高,此时可能意味着两种情况:

(1)z1的高VIF值是因为z1和z2、z3高相关,则问题不大(也就是控制变量之间的高相关);

(2)如果z1不仅和z2、z3高相关,还和x1、x2高相关,则会直接影响到x1、x2的系数的预测,问题比较大。

上述提到的(1)问题不大,只是相对于(2)而言。但是(1)依然会影响模型中各种系数的标准误,包括x1、x2的系数的标准误(或者说,使slopes的confidence intervals不再狭窄、精确),从而间接影响x1、x2对y的效应的显著性。

5、解决方法

收集更多数据。

考虑合并变量(例如z1、z2、z3是父母教育情况、父母工资、父母社会地位,则可以考虑用PCA合并成单独的变量,叫家庭社会经济地位)。

考虑删除部分VIF高的控制变量,并在文章中进行说明。

如果只出现情况(1),且模型显著,那么应该也可以接受(篇幅允许的话,可以在文章中进行说明,例如讨论共线性问题对于结果揭示的可能影响)。

6、补充说明

以上的解决方法是我根据网络上搜索的资料得到的。不过Rawlings et al. (1998, p. 457) 给出了更为宽松的策略:只要共线性反映的是变量本身的关系(但不能是取样导致的),就无所谓。

仔细想想,似乎也合理?如果人为地去处理共线性的问题,反倒可能影响了分析过程的客观性。

References

----------2024.05.24更新----------
根据Applied Regression Analysis: A Research Tool (2rd edition)一书调整了内容

上一篇 下一篇

猜你喜欢

热点阅读