深色模式
第七章 模型诊断
残差是模型充分性的唯一判据。本章讲残差三性、Ljung-Box 的自由度陷阱、正态性与 ARCH 效应,以及诊断不通过时的处理路径。
7.1 残差要满足的三个条件
模型充分性的最终判据是残差的行为。理想的残差应当满足:
- 零均值:E(eₜ) = 0;
- 无自相关:Cov(eₜ, eₜ₊ₖ) = 0,k ≠ 0;
- 同方差:Var(eₜ) = σ²,常数。
若还要做区间预测和显著性检验,再加一条:
- 正态性:eₜ ~ N(0, σ²)。
★ 残差不是误差。 真实误差 εₜ 不可观测;残差 eₜ 是"观测值减去模型拟合值",它同时包含了真实误差和模型误设的部分。因此残差检验只能发现"模型没有解释掉的结构",不能证明模型就是真的。
标准化残差:ẽₜ = eₜ / σ̂ₜ。当存在异方差时,用条件标准差标准化后的残差才可比较。
7.2 图形诊断
跑检验之前,四张图必须看:
- 残差时序图:看有无趋势、有无水平跳变、有无波动聚集、有无异常点。
- 残差 ACF:看有无残留自相关。若有,说明阶数不足。
- 正态 Q-Q 图:点是否沿 45° 线分布。两端偏离说明厚尾,单侧偏离说明偏斜。
- 残差对拟合值散点图:看是否呈喇叭形(异方差)。
图形能发现检验发现不了的问题——例如单个异常点可能让 Ljung-Box 通过,但在时序图上一目了然。
7.3 Ljung-Box 检验
检验残差前 m 阶是否联合为零自相关。统计量为
Q = n(n + 2) Σₖ₌₁^m ρ̂ₖ² / (n − k)
在原假设"前 m 阶自相关全为零"下,渐近服从
χ²(m − k*)
其中 k 是模型中已估计的参数个数*。
滞后阶数 m 的选择:常用 m = 12 或 24(月度数据);一般规则是 m ≈ min(10, n/5),或取季节周期的 2 倍。m 太小会漏掉高阶自相关,太大会稀释检验功效(把不显著的远距离滞后也纳入平均)。
★ 自由度必须扣除已估计的参数,这是最容易出错的地方。
- ARIMA(p, d, q):扣 p + q;
- 若模型含常数项或漂移项:再扣 1;
- 若还含季节项:扣 P + Q。
举例:ARIMA(0,1,1) 加漂移,参数是 ma1 和 drift 共 2 个。滞后 12 阶时自由度应为 12 − 2 = 10,而不是 11。自由度算多了,p 值会偏大,导致本该拒绝的模型被误判为通过。
★ 解读的三条边界:
- 拒绝 = 有自相关,说明模型不充分,应升阶或换模型。
- 不拒绝 ≠ 独立。它只说明"没有足够证据反对无自相关",尤其在样本短、m 大时,功效很低。
- m 的选择会影响结论。报告时应写明用了哪些 m,以及是否都对结论一致。
Box-Pierce 检验是 Ljung-Box 的前身,统计量为 Q = n Σρ̂ₖ²,小样本下表现较差,已被 Ljung-Box 取代。
7.4 正态性检验
Jarque-Bera 检验:
JB = (n/6) [ S² + (K − 3)² / 4 ] ~ χ²(2)
其中 S 是样本偏度(正态为 0),K 是样本峰度(正态为 3)。它同时检验偏度和超额峰度。
Q-Q 图更直观:若点沿 45° 线分布则近似正态;两端向上翘(右尾厚)、向下沉(左尾厚)说明厚尾;整体弯曲说明偏斜。
★ 非正态的后果分轻重:
- 点预测基本不受影响。高斯拟似然估计(把正态似然当工具用)在非正态下仍是一致的,点预测仍可用。
- 区间预测和显著性检验受影响。正态区间会失真,z 检验的实际水平偏离名义水平。
- 厚尾的典型后果:区间过窄,覆盖率低于名义值;极端值出现频率被低估。
7.5 异方差与 ARCH 效应
波动聚集(volatility clustering)指大幅波动倾向于聚集在一起,小幅波动也聚集在一起。图形上表现为"平静期"与"剧烈期"交替。
ARCH LM 检验:把残差平方对自身滞后回归
eₜ² = α₀ + α₁eₜ₋₁² + … + α_qeₜ₋q² + vₜ
检验统计量
LM = n R² ~ χ²(q)
原假设是"无 ARCH 效应"(即 α₁ = … = α_q = 0)。拒绝则说明存在条件异方差。
★ ARCH 效应存在时,常方差模型的两个后果:
- 参数标准误被低估,t 值虚高,可能把不显著的系数判为显著;
- 预测区间不随时期变化,在波动剧烈期过窄、在平静期过宽,覆盖率失真。
处理办法:GARCH(p, q)、EGARCH(捕捉杠杆效应)、TGARCH;或者用 bootstrap 重抽样构造经验区间;或者至少把区间明确标注为"常方差近似区间",限制其解释。
7.6 结构稳定性检验
Chow 检验:把样本按某时点分成两段,比较分段估计与全样本估计的残差平方和,检验参数是否相同。需要事先知道断点位置。
Bai-Perron 检验:允许未知断点,同时估计断点位置与个数。
递归残差 / CUSUM 检验:逐个增加样本重新估计,看递归残差是否超出置信带,用于发现参数漂移。
7.7 诊断不通过时的处理路径
按问题类型分:
| 诊断结果 | 含义 | 处理 |
|---|---|---|
| Ljung-Box 拒绝 | 残留自相关 | 升阶;加季节项;考虑非线性 |
| 残差 ACF 在 s 处尖峰 | 遗漏季节性 | 加 SARIMA 项 |
| 残差 ACF 在滞后 1 大幅负值 | 过度差分 | 减少 d |
| JB 拒绝正态 | 厚尾或偏斜 | 对数变换;t 分布拟似然;bootstrap 区间;说明局限 |
| ARCH LM 拒绝 | 条件异方差 | GARCH 族;稳健标准误;bootstrap |
| 残差时序图有跳变 | 结构突变 | 虚拟变量;分段建模 |
| 递归残差越界 | 参数漂移 | 滚动窗口估计;时变参数模型 |
★ 一个重要原则:诊断的目的不是"让检验通过",而是"知道模型在哪里不成立,并把结论限制在成立的范围内"。 把所有诊断都调到 p > 0.05 而不管模型是否合理,是另一种形式的数据操纵。
要点
- 残差三性:零均值、无自相关、同方差;做区间还要加正态。
- Ljung-Box 的 Q = n(n+2)Σρ̂ₖ²/(n−k),自由度 = m − 已估参数个数(含常数/漂移)。
- 自由度算多了 p 值偏大,会把不充分的模型误判为通过。
- 不拒绝 ≠ 独立;非正态影响区间和检验,不影响点预测的一致性。
- ARCH 效应会使标准误低估、区间失真,应改条件异方差模型或 bootstrap。
- 诊断的目的是界定模型适用范围,不是让所有 p 值都变大。
自测 3 问
Q1:好模型的残差要满足哪几条?要做预测区间还要加什么?
点开看答案
残差三性:零均值、无自相关、同方差。
要做区间预测,还要加上正态。
Q2:Ljung-Box 检验的自由度怎么算?算多了会怎样?
点开看答案
自由度 = m − 已估参数个数(m 是检验用的滞后数;参数个数要把常数项/漂移项算进去)。
自由度算多了 → p 值偏大 → 把不充分的模型误判为通过。
Q3:残差有 ARCH 效应会带来什么问题?怎么处理?
点开看答案
ARCH 效应(方差随时间聚集)会让标准误被低估、预测区间失真。
处理:改用条件异方差模型,或用 bootstrap 构造区间。