如何发现和消除异方差?
【一】什么是异方差?
定义:
在回归分析中,异方差性(Heteroscedasticity) 是指回归模型中的误差项(残差)在不同观测值之间,方差不恒定,而是随着某个解释变量或拟合值的变化而变化。
换句话说,异方差并不是在回归之前就能直接看到的,而是需要先拟合回归模型,得到残差后,再对残差进行检验来判断。
(道理似乎很简单,但还是有很多同学不是很清楚,记住:异方差是对模型残差的检验!!!)
为什么麻烦?
- 异方差不会导致回归系数有偏,但会让标准误估计不准确 → t检验和 F 检验失效 → 结论不可靠。
举个简单例子:
假设你要研究居民收入对消费支出的影响,你收集了从低收入群体到高收入群体的样本,把他们放在同一个回归方程里,用收入(X)来解释消费支出(Y)。
在这个回归里:
- 低收入人群的消费支出波动一般比较小,差不多都用于刚性支出(吃住行)。
- 高收入人群的消费支出差异就大了,有的人买奢侈品,有的人存起来,消费弹性高 → 残差波动大。
结果就是:收入越高,对应的残差(预测值和实际值的差)越大,残差的方差随着 X 增大而增大,形成了典型的“漏斗型”分布。
所以在这里,因为没有把高收入和低收入人群分组进行回归分析,而是把他们放在同一个回归里,导致观测值的残差波动性不同,违反了经典 OLS 假设中的“同方差性”。
✅ 小结一句:异方差就是在同一个回归里,不同样本点的残差波动随着解释变量水平系统性变化,不是分组比较。
【二】怎么判断是否存在异方差?
✅ 1️⃣ 画残差散点图
- 横轴:拟合值(Ŷ)
- 纵轴:残差(e)
- 若呈漏斗形、扇形,或随着 X 变大而扩散,就是异方差。
✅ 2️⃣ 做异方差检验
- Breusch-Pagan(BP)检验:最经典
- White检验:更一般化,能检测非线性异方差
- SPSS/EViews/Stata 都有现成菜单。
📌 常见判断:
- 检验 p 值 < 0.05 → 拒绝同方差假设 → 存在异方差。
【三】如何消除或修正异方差?
异方差不可怕,关键是怎么处理👇
✅ 1️⃣ 用稳健标准误(Robust SE)
- 最简单、最常用:不改变系数,只调整标准误。
- EViews、Stata:勾选“White heteroskedasticity-consistent standard errors”。
- SPSS:可用“加权最小二乘”间接实现。
✅ 2️⃣ 加权最小二乘法(WLS)
- 给每个观测值加权,权重 = 方差的倒数。
- 适合当异方差模式已知(例如某类收入分组)。
✅ 3️⃣ 对数变换
- 对因变量或自变量做对数化,很多收入、价格、规模变量异方差可明显减弱。
- 例如把“收入”换成“ln(收入)”。
✅ 4️⃣ 分组回归
- 如果是分组数据引起的(如省份、行业),可对不同组单独跑回归或加虚拟变量。
【四】论文里怎么写?
可以在论文“模型诊断”里写一句👇
“本文采用BP检验和White检验检测残差异方差性,并对异方差问题使用White稳健标准误进行修正,以提高回归系数显著性检验的有效性。”
🔑 一句话原则
异方差≠系数有错,但若不修正,显著性全是“虚的”!
所以:画图 + 检验 + 修正,一步都不能省。