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

异方差 Heteroskedasticity

2026-09-05 更新

定义#

异方差指回归误差项的方差不恒定,会随条件变化。线性回归的标准假设之一是同方差:不管自变量取什么值,误差的散布程度都一样。现实里这条经常不成立,比如市场平静期个股偏离拟合线很少,动荡期一下子偏离很多。

异方差的后果很具体:系数估计本身仍然是无偏的,也就是平均而言没有系统性偏差;但估计不再是最有效的,更麻烦的是标准误算错了。标准误一错,t 值、p 值、置信区间跟着错,你会对一个其实不可靠的系数信心十足。

公式#

同方差假设写作 var(ϵi)=σ2\operatorname{var}(\epsilon_i) = \sigma^2 对所有 ii 成立;异方差就是 var(ϵi)=σi2\operatorname{var}(\epsilon_i) = \sigma_i^2 随观测而变。

常用的诊断是 Breusch-Pagan 检验,做法是:先用 OLS 估计原模型得到残差,再用残差的平方对自变量做回归,然后计算 LM 统计量

LM=12ESSχ2(k)LM = \tfrac{1}{2}\,ESS \sim \chi^2(k)

其中 ESSESS 是第二个回归的解释平方和,kk 是自变量个数。原假设是「同方差」,p 值小于 0.05 就拒绝它,认定存在异方差。

算一笔账#

假设把某只股票的收益对市场收益回归,得到 10 期残差。前 5 期市场平静,残差是 −0.5、+0.5、−0.5、+0.5、−0.5;后 5 期市场动荡,残差是 −2、+2、−2、+2、−2(单位:%)。

前半段残差平方的均值 =(0.25×5)/5=0.25= (0.25 \times 5)/5 = 0.25;后半段 =(4×5)/5=4= (4 \times 5)/5 = 4

两段的残差方差相差 16 倍。如果直接用全样本的普通标准误,等于把两种截然不同的不确定性平均成一个数——对平静期高估了误差,对动荡期严重低估了误差,而后者恰恰是你最需要判断准确的时候。

常见问题#

有了异方差,回归结果还能用吗?#

系数本身还能用,它仍然是无偏的。不能直接用的是显著性结论:p 值和置信区间建立在标准误上,标准误错了它们就都不可信。最省事的补救是改用稳健标准误(例如 HC3),系数不变,只把误差估计换成对异方差稳健的版本。

怎么知道自己的模型有没有异方差?#

先看残差图:残差随预测值变大而呈喇叭口散开,就是典型信号。再做 Breusch-Pagan 检验确认,p 值小于 0.05 说明存在异方差;p 值大只是无法拒绝同方差,不等于证明了同方差。

除了稳健标准误,还有别的办法吗?#

有。对正数数据做对数变换常能压平方差;分布偏离正态时可以试 Box-Cox 变换,但要注意 λ 需要优化选择,而且系数解释要做逆变换;时间序列数据可以考虑差分,代价是改变了数据的含义和长度。

相关术语

出自