跳到主内容
@wquguru
术语统计基础

多重共线性 Multicollinearity

2026-09-05 更新

定义#

多重共线性指回归模型的多个自变量之间高度相关。比如同时把标普 500 和纳斯达克指数放进一个模型解释某只股票,两个指数几乎同涨同跌,模型就分不清哪一份影响该记在谁头上。

后果是系数不稳定:整体拟合可能很好,R² 很高,但单个系数的标准误被大幅推高,符号和大小会随样本的一点点变动而剧烈摇摆,显著性检验也常常全都不显著。也就是说,模型还能预测,却没法用来解释「哪个变量在起作用」。

公式#

常用的诊断指标是方差膨胀因子(VIF):

VIFj=11Rj2VIF_j = \frac{1}{1 - R_j^2}

其中 Rj2R_j^2 是把第 jj 个自变量对其余所有自变量做回归得到的决定系数。Rj2R_j^2 越接近 1,说明这个变量的信息越能被别的变量替代,VIF 越大。它的含义正是「该系数的方差被共线性放大了多少倍」,所以系数标准误的放大倍数是 VIFj\sqrt{VIF_j}

算一笔账#

假设模型里有两个高度相关的指数变量。把其中一个对另一个回归,得到 Rj2=0.9R_j^2 = 0.9

那么 VIFj=1/(10.9)=10VIF_j = 1/(1 - 0.9) = 10,系数的方差被放大 10 倍,标准误被放大 103.16\sqrt{10} \approx 3.16 倍。

作为对照,如果换成一个只有 Rj2=0.5R_j^2 = 0.5 的变量,VIF=1/(10.5)=2VIF = 1/(1-0.5) = 2,标准误只放大 21.41\sqrt{2} \approx 1.41 倍。

同样的系数点估计,在前一种情况下 t 值会比后一种小到只有大约 1.41/3.160.451.41/3.16 \approx 0.45 倍——本来能通过显著性检验的变量,就这么被共线性淹没了。

常见问题#

VIF 多大算高?#

没有绝对红线,但 VIF 接近 10(对应 Rj2=0.9R_j^2 = 0.9)通常被当作需要处理的信号,5 以上就值得警惕。更重要的是结合目的判断:如果你只关心预测,共线性的危害有限;如果你要解释每个变量的贡献,它就是硬伤。

发现共线性该怎么处理?#

课程给了三条路:剔除高度相关的变量之一(比如保留标普 500、去掉纳斯达克),用主成分分析把相关变量压缩成几个互不相关的成分,或者增大样本量。前两条改变模型结构,第三条只是稀释问题。

系数都不显著但 R² 很高,是不是就是共线性?#

这是共线性的经典症状之一。整体解释力靠的是这组变量共同的那部分信息,而单个系数因为标准误被放大而各自不显著。这时不要逐个删掉「不显著」的变量,先算 VIF 看清结构再决定。

相关术语

出自