SPSSAI

SPSS 多重共线性怎么解决:VIF 超过 10 的四种处理

更新于

多重共线性怎么解决:先看 VIF 判断严不严重,大于 10 时有四种处理,剔除冗余变量、合并为综合指标、改用岭回归或 Lasso 回归,以预测为目的时也可以不处理。以下结果来自本站演示数据(模拟生成,不代表真实研究结论):102 位员工的三个量表得分。本例没有变量需要处理,只演示怎么判断。

多重共线性怎么解决:先查 VIF,看严不严重

自变量之间高度相关时,回归系数变得极不稳定,换一批相似的数据,系数可能大幅变化甚至变号。三个得分放进「分析变量(定量)」区,一行一位员工,共 102 行,没有缺失,各区的要求见VIF共线性诊断帮助文章。

主结果表给出每个变量的 VIF 和 95% 置信区间,三个变量全部判读为良好。经验分档是:VIF 小于 5 良好,5 到 10 中度,大于 10 严重,条件指数大于 30 且同一行有两个及以上变量的方差分解比例大于 0.5 也算严重。下图把 VIF、区间和系数标准误被放大的倍数放在一起。

判断是否严重时,看区间上限而不是只看点估计:情绪耗竭得分的上限 2.563 离 5 还有一段距离,连估计误差都算进去,也谈不上严重。

原因:VIF 是怎么算的

VIF 等于 1 除以 1 减辅助回归 R²:以该变量为因变量、其余变量为自变量做回归,R² 越大,说明它越能被其余变量线性解释。本例情绪耗竭得分的辅助回归 R² 是 0.484,约 48.4% 的方差可由其余两个变量解释。 三个变量的 VIF、95% 置信区间与标准误放大倍数

报告里每个变量还有一行辅助回归 F 检验,原假设是该变量与其余变量线性无关,几乎总会被拒绝:本例三个变量的 p 都小于 0.001,而 VIF 都小于 2。所以共线性严不严重只看 VIF 和条件指数,不看这个 p。

解决步骤

  1. 先看 VIF 和它的置信区间,再看第四张卡的条件指数,确认严不严重。
  2. 严重时按研究目的选一种处理,见下表。
  3. 处理后重新跑一遍,用下一节的三个判据确认。
处理方式 做法 代价
剔除冗余变量 删掉含义重叠的变量中的一个 少一个变量,解释范围随之变窄
合并为综合指标 先用「主成分分析(PCA)」压成综合维度再进模型 系数不再对应原来的变量
改用正则化 用「岭回归(Ridge)」或「Lasso回归」稳住系数 系数被收缩,不再是无偏估计
不处理 目的是预测,保留原模型 单个系数的区间仍然很宽

怎么确认已经解决

三个判据:所有变量的 VIF 都小于 5;条件指数里没有同一行大于 30 且有两个及以上变量方差比例大于 0.5 的主成分;处理后关心的那个系数的置信区间不再宽得无法解读。三条都过关,才算解决。

条件指数要结合方差分解比例读。本例第一个主成分的条件指数是 20.36,两个变量的比例都超过 0.5,但条件指数没到 30,所以不算严重;满足两个条件的主成分有 0 个,报告的总体判断是无明显多重共线性。

条件指数与方差分解比例表:前三个主成分

下图是变量之间的零阶相关热力图,红色为正,蓝色为负,颜色越深相关越强。相关最高的一对是工作压力与情绪耗竭,r=0.648,没有一对 |r| 达到 0.8。

三个变量零阶 Pearson 相关系数的热力图

两两相关都不高,并不等于没有共线性:一个变量可能近似等于其余若干变量的线性组合,所以还要看 VIF 和条件指数。下图是第三张卡的各变量 VIF 柱状图。

VIF 共线性诊断报告输出结果三卡片截图:各变量 VIF 柱状图

多重共线性常见错误

  • 看到条件数 20.36 就判严重共线:报告把它判为弱到中度,满足条件指数与方差分解判据的主成分有 0 个。
  • 把天然共线的变量当成问题去处理:哑变量组内部、主效应与它的交互项之间天然相关,VIF 偏高是结构造成的,先弄清是不是这种情形再决定。
  • 只看两两相关:本例最大的相关 r=0.648,没有一对达到 0.8,仍要看 VIF 与条件指数。
  • 一看到 VIF 偏高就删变量:预测为目的时较高的 VIF 常常可以不处理,要先看研究目的和样本量。

把结果带进论文:导出与会员

VIF 诊断表、条件指数表和热力图导出后可以放进论文附录。分析和查看结果不用登录;开通会员后可导出 Word / PDF 报告、使用 AI 解读。

延伸阅读

常见问题

多重共线性怎么解决?
先判断是否真的严重:VIF 大于 10,或条件指数大于 30 且同一行有两个及以上变量的方差分解比例大于 0.5。严重时可以剔除冗余变量、把含义相近的变量合并成综合指标、改用岭回归或 Lasso 回归;以预测为目的时,较高的 VIF 常常可以不处理。
VIF 大于 10 一定要处理吗?
不一定。10 只是常用的经验阈值,没有分布理论支撑。要同时看研究目的是预测还是解释、样本量有多大、以及关心的系数置信区间宽到什么程度。共线性不影响整体 R² 与整体 F 检验,伤的是单个系数。
VIF 和容忍度是什么关系?
容忍度是 VIF 的倒数,等于 1 减去该变量被其余变量解释的方差占比。本例情绪耗竭得分的容忍度是 0.516,辅助回归 R² 是 0.484。