本节摘要:Ljung-Box Q 检验残差在滞后 1 到 m 上是否联合为零相关。原假设是白噪声。对已拟合的 ARIMA,Q 近似服从自由度为 m-p-q 的卡方,且必须 m>p+q。它是联合检验:通过了不代表每一根柱子都干净,仍要对照残差 ACF。
阅读完本节,你应当能够:
残差 ACF 靠眼睛:带外算显著,带内算无事。样本量一变,带的宽度变,主观性跟着变。Ljung-Box 把前 m 个样本自相关的平方加起来,问:这么多柱子合在一起,还像从白噪声里抽出来的吗?
原假设 H0:在 1 到 m 阶,自相关全为零(残差像白噪声)。备择:至少一阶不为零。显著性常用 0.05。p 值小于 0.05 则拒绝白噪声,诊断失败。原文把这个检验明确放在模型诊断,不是可选项。
Q 的形式:
Q = n(n+2) Σ_{k=1}^{m} r̂_k² / (n-k)
n 是残差长度。分母 n-k 让较大的 k 权重稍大,修正了早期 Box-Pierce 统计量在有限样本里偏小的问题。m 常试 10、20,或 min(20, n/2) 附近;原文也提到可看到 40,但 m 接近 n/2 时不可靠。对季节序列,m 应覆盖至少一个季节周期,否则漏掉滞后 12 的峰。
若对原始观测做白噪声检验(还没有拟合 ARMA),Q 在 H0 下近似 χ²(m)。一旦这些残差来自已估的 ARIMA(p,d,q)(在差分后的 ARMA(p,q) 上),p 个 AR 和 q 个 MA 已经吸收了一部分相关,自由度改为 m-p-q,前提 m>p+q。m≤p+q 时检验不适用或需另修正。d 不进这个减法,因为差分不是用似然「吃掉」的自相关阶数,它改变的是序列定义。
⚠️ 常见坑:软件若按 χ²(m) 报 p 值,你却拟合了 ARMA(2,2),检验会过于宽松,容易「通过」。看清文档自由度是否已减 p+q。
示意:n=80 的残差,m=10,p=1,q=1,算得 Q=12.4。自由度 8 的卡方,0.05 临界大约在 15.5 附近(不必记死,看 p 值)。12.4 对应的 p 值高于 0.05,这一档 m 不拒绝。若换 m=12 时 Q 突然跳到 28,打开残差 ACF,多半滞后 12 有柱——联合检验在 m 覆盖到季节后才喊痛。这正是要扫多个 m 的原因。
| m 选得 | 风险 | 实务 |
|---|---|---|
| 过小,如只 3 | 看不到季节峰 | 至少覆盖短阶,季节数据覆盖 m 周期 |
| 适中,10~20 | 多数日/周序列够用 | 主报告区间 |
| 过大,接近 n/2 | 功效下降、近似变差 | 不作为主结论 |
💡 关键直觉:Q 是「一篮子柱子」的体检。篮子通过,仍可能有一根季节柱又细又毒;篮子不通过,先看是哪几根把篮子撑破,再决定拧 p、q 还是 D。
联合显著可能来自很多小柱子同向累积,图上每根都擦边;也可能来自一根巨柱。修复完全不同:前者可能是整体欠拟合,后者常是漏季节或某个脉冲异常没处理。所以 Q 拒绝之后的下一步不是自动 p+=1,而是回到残差 ACF。
多个 m 的决策:我要求常用的几个 m 都过,才宣布诊断通过。若 m=10 过、m=20 不过,检查 11~20 里是否有季节倍数。若只有某一个很怪的 m 不过、ACF 又干净,记一笔,结合滚动误差决定,不必为单次 p=0.049 推翻一切——检验本身也有 5% 误拒。反过来,p=0.8 但滞后 1 的 ACF 明显出带,以图为准:联合检验有时会被其他近零的柱子稀释。
概念计算:
# acf_res[k] 为残差滞后 k 的样本自相关,k 从 1 到 m Q = n * (n + 2) * sum(acf_res[k]**2 / (n - k) for k in range(1, m+1)) df = m - p - q # p 值来自卡方 df;df 必须为正
原文还提醒:即使 Q 通过,也不能保证每一个滞后都无显著自相关。这句话应写进你的检查单。Ljung-Box 替代不了图,图替代不了 Q;一个防主观漏看整篮,一个防联合稀释后的单根毒柱。
对 SARIMA,减法里通常还要算上季节 P 和 Q(软件实现请核对)。m 必须大于非季节阶加季节阶之和。周季节用 m=14、21 比只用 m=7 更能看到第二周是否还有泄漏。
早期 Box-Pierce 统计量是 n Σ r_k²,有限样本里偏小,容易该拒绝时不拒绝。Ljung-Box 用 n(n+2)/(n-k) 加权后,小样本表现更好,所以实务默认它。你若在老文献里看到 Q 的另一种写法,不要和软件输出的 LB 混比临界值。
功效:真实残差有微弱相关时,n 小、m 大,检验可能仍通过。所以「不拒绝」不是「证明是白噪声」,只是「在这套 m 和 n 下没找到足够证据」。这和单位根检验「不拒绝不等于没有单位根」是同一类口吻。样本短时,更要靠残差图,不要把 p=0.3 说成「已经白了」。
季节:篮子 m 必须至少覆盖一个周期,最好两个。周季节只用 m=7,第二周的泄漏看不见;月季节只用 m=10,滞后 12 根本没进篮子。这是现场「Q 通过但图上 12 有柱」的第一原因——不是检验和眼睛矛盾,是篮子太浅。对 SARIMA,软件若把季节阶也计入 model_df,自由度减得更多,m 更要大,否则 df 为负,检验直接无效。
多个 m 的报告方式:列一张小表,m=10、15、20、24 的 p 值并排。全部高于 0.05 才写「联合通过」。只有某一个略低于 0.05、对应 ACF 又干净,可在笔记里标「擦边」,结合滚动误差决定,不必为一次 5% 误拒推翻模型。反过来,p 值都很大但滞后 1 明显出带,以图为准,查软件是否忘了减 p+q,或是否用了标准化之前的残差。
不要对多步预测误差做 Ljung-Box 来否决模型。多步误差因累积,理论上就会相关。诊断对象永远是一步拟合残差。把这一点写进与业务的口径:他们关心的周总量误差,不是 Q 检验的输入。
列 m=10、15、20,季节数据加上 12、24。自由度 m-p-q 必须为正。全部 p 值高于 0.05 且残差 ACF 无稳定季节柱,才写联合通过。m=10 过、m=24 不过,打开 12 附近的柱。单次 p=0.049 且图干净,标擦边,结合滚动误差,不必神化。
拟合了 ARMA 却不减 p+q,检验过松。看清文档的 model_df。
不能。多步因累积会相关,诊断只用一步残差。
n=80、p=1、q=1、m=10,自由度 8。Q 若 12 左右,这一档不拒绝;换 m=12 突然跳到 28,打开残差 ACF 看滞后 12。周季节篮子至少覆盖 14 或 21,月季节必须把 12、24 放进表。m≤p+q 时检验无效。软件若按卡方 m 报 p 值,拟合后会过松,核对是否减了阶。不拒绝不是证明白噪声,只是这套 n 和 m 下证据不足,短样本更靠图。不要对多步误差做 Q,累积相关是机制。多个 m 并排,全部过且图无稳定季节柱才写联合通过。擦边 p 值结合滚动,不必为一次 5% 误拒推翻一切。Box-Pierce 偏小,实务用 Ljung-Box,不要混比临界值。
口令:Q=n(n+2)Σr_k²/(n-k),拟合后自由度 m-p-q,m 必须更大。篮子要覆盖季节周期,否则 12 的柱进不了联合检验。不拒绝不是证明白,只是证据不足。图与 Q 互为补:联合过仍可能有毒柱,联合不过先看哪根撑破篮子。不要对多步误差做 Q。多个 m 并排报告。软件未减阶会过松。Box-Pierce 有限样本偏小,用 Ljung-Box。df 为负说明 m 选小了或阶太大。擦边 p 值结合滚动,不必神化单次 0.049。
原文把 Ljung-Box 放在诊断中心:Q=n(n+2)Σ r̂_k²/(n-k),H0 为指定滞后内自相关全零。应用于 ARIMA 残差时自由度改为 m-p-q 且 m>p+q,d 不进减法。判别:p 值小于显著性水平则残差不是白噪声,需调整阶或考虑季节与非线性。即使 Q 通过也不能保证每一滞后都无显著相关,必须结合残差 ACF。m 过小漏季节,过大功效下降,通常在 min(20,n/2) 附近,季节数据覆盖周期。Box-Pierce 是早期形式,有限样本偏小。多个 m 都要通过才宣布诊断通过。原文流程图从拟合到计算 Q 到分支「是否白噪声」,失败出口是模型不充分需要调整,不是改预测步长。
| 设定 | 正确做法 | 错法 |
|---|---|---|
| 自由度 | m 减 p 减 q | 仍用卡方 m |
| m 与阶 | m 必须大于 p 加 q | m=3 去检 ARMA(2,2) |
| 季节 | 篮子覆盖 12 与 24 | 只用 m=10 宣布通过 |
| 多个 m | 并排报告 | 只挑一个好看的 p 值 |
| 图与 Q | 都看 | 联合通过就不管单根柱 |
| 多步误差 | 不做 Q | 用周误差否决模型 |
| Box-Pierce | 知道它偏小 | 和 Ljung-Box 混比临界值 |
| 擦边 0.049 | 结合图与滚动 | 一票推翻 |
| df 为负 | 加大 m 或减阶 | 强行输出 p 值 |
| 失败出口 | 回识别 | 改预测步长 |
设残差长度 80、p=1、q=1、m=10,自由度 8。把前 10 个样本自相关平方,按 n(n+2)/(n-k) 加权求和得 Q。若 Q=12.4,对照自由度为 8 的卡方,0.05 临界大约在 15 附近,这一档不拒绝。换 m=12 后 Q 跳到 28,打开图看滞后 12 的柱,多半是季节泄漏,篮子在 m=10 时根本没装进年周期。软件若没减 p+q,同样的 Q 会用自由度 10,p 值更大,检验过松。不要对未来七天的总量误差做 Q,那是持出指标,不是一步残差。把「多个 m 并排、图与 Q 一起看、失败回识别」写成三行,现场就不会只盯一个 p 值。季节模型还要把 P 与 Q 计入自由度减法,m 更要大,否则 df 为负检验无效。周季节只用 m=7 会看不见第二周泄漏,应看到 14 或 21。联合通过但滞后 1 明显出带,以图为准并核对软件是否忘了减阶。不拒绝从来不是「证明已经白」,短样本更要靠残差图,把这句话写在 Q 表表头。功效在 n 小、m 大时会下降,真实微弱相关也可能通过,所以「不拒绝」要写成「这套 n 与 m 下没找到足够证据」。对 SARIMA,m 必须大于非季节阶加季节阶之和。选择 m 的经验范围在二十左右或样本量一半的较小者,接近一半时近似变差,不作为主结论。把这些限制和公式写在同一张卡片上,Q 检验才不会被当成万能开关。原文流程图从计算残差到绘制 ACF/PACF 再到执行 Q 检验,失败出口明确是模型不充分需要调整阶或季节。把出口贴在软件输出旁边,避免看见小 p 值却去改预测步长。多个 m 的表建议固定为十、十五、二十,季节数据加上十二与二十四,不要每次心情不同另选一列好看的。这张固定表也便于跨周交接,下一班能直接续写 p 值而不是重选滞后。
下一节在通过诊断的短名单里用 AIC、BIC 做取舍,并说清它们为什么不能代替持出样本。