时间序列分析
格兰杰因果检验
在已经平稳的一对序列上,检验把原因列的滞后加入结果列的自回归之后,预测误差会不会显著变小。
这篇能回答什么
格兰杰检验问的不是「X 在现实世界里制造了 Y」,而是「在预测 Y 时,X 的过去值有没有超出 Y 自己过去值的增量信息」。原假设写在表头:原因序列不是结果序列的格兰杰原因。拒绝它,只说明领先—滞后的预测关系在该滞后阶上站得住;接受它,说明多带上 X 的历史也省不下多少残差平方和。
适合:两条已平稳的定量序列,例如宏观教学表里的序列 A 与序列 B,或已经差分过的利率与通胀偏离。一次运行只检一个方向。要看反向,把角色对调再跑。它不能代替工具变量、双重差分或断点设计。
什么时候不该用
水平值还带着单位根时不要直接检——先做ADF 单位根检验或差分。三条及以上的系统互动,主模型应是VAR,本过程只做成对预测检验。要识别政策效应,用双重差分。单序列外推用Auto ARIMA。
如何选择方法
先问研究目标是预测增量还是因果识别。只要「A 的历史能不能帮上 B 的预报」,用本过程;要估计处理效应,离开格兰杰。多变量脉冲响应走 VAR。还没确认平稳,先 ADF。
格兰杰因果检验:1 个原因序列 + 1 个结果序列;对滞后 1–4 各给一个 SSR F。
VAR:2–10 条内生列,AIC 选阶并给脉冲响应。
ADF:单列平稳性,是本检验的前置。
双重差分 / 工具变量:回答的是识别,不是预测领先。
输入、输出与限制
输入
原因序列与结果序列必须各恰好一列,类型为定量或时间序列。两列同时有值的行才进入检验;顺序按当前表序,请先按期数排好。
原因序列:最少 1 个,最多 1 个。
结果序列:最少 1 个,最多 1 个。
输出
结果表四行(滞后 1 期到滞后 4 期):F 统计量、P 值、显著性结论。结论按 α=0.05 写成接受或拒绝「不存在格兰杰因果」。图是各滞后 F 的柱形。洞察复述方向,并在全部不显著时给出最小 P。
产品限制
最大滞后固定为 4,不在界面手改。
成对有效行数必须不少于 12(约 3×最大滞后)。
任一列方差为 0(一条直线)会拒绝计算。
统计量是 SSR 形式的 F 检验,不是 χ² 形式的 Wald。
单次只检 X→Y;Y→X 需要互换角色后再运行。
案例
研究问题。 宏观教学表里有三条同步序列。先问:序列 A 的过去值有没有提高对序列 B 的预测精度。这是预报问题,不是「A 在经济机制上导致了 B」。
教学示例来自时间序列表,工作表为「macro」,三列各 80 期(期数、序列A、序列B、序列C)。本页原因序列=序列A,结果序列=序列B。滞后 1–4 的 F 分别为 0.7113、0.2407、0.1444、0.187,P 均大于 0.05。下载后按同样角色复现四行。
在 StatsX 中操作
步骤 1 · 上传表格
打开工作台,将 Excel / CSV / JSON 拖入上传区。本案例使用时间序列 xlsx,确认工作表为「macro」。单文件不超过 20 MB。
步骤 2 · 查看画像与质量
确认序列 A、序列 B 为定量、按期数对齐。先对两列分别做 ADF;若水平非平稳,先差分再把差分列送入本过程。
步骤 3 · 选择「格兰杰因果检验」
在算法目录搜索「格兰杰」或「因果」,点选格兰杰因果检验。不要和定价里的 Gabor-Granger 问卷法搞混。
步骤 4 · 指定变量并运行
原因序列勾选「序列A」,结果序列勾选「序列B」。点运行。检反向时对调这两格,不要同时勾第三列。
步骤 5 · 阅读结果
四行是四个滞后设定,不是逐步筛选。任一行 P<0.05 才谈得上该阶的预测领先;本例四行都接受原假设。




如何阅读输出
下表由 macro 表中序列 A → 序列 B 在 StatsX 中运行得到,成对有效期 80。滞后 1 期 F=0.7113,P=0.402,结论为接受原假设 (不存在格兰杰因果)。其后三阶 F 更小、P 更大。最小 P 出现在 1 阶,仍远高于 0.05。表注把「显著」解释为历史信息有助于预测,这是领先—滞后语言,不是结构因果。
| 滞后阶数 (Lag) | F 统计量 | P值 | 显著性结论 |
|---|---|---|---|
| 滞后 1 期 | 0.7113 | 0.402 | 接受原假设 (不存在格兰杰因果) |
| 滞后 2 期 | 0.2407 | 0.787 | 接受原假设 (不存在格兰杰因果) |
| 滞后 3 期 | 0.1444 | 0.933 | 接受原假设 (不存在格兰杰因果) |
| 滞后 4 期 | 0.187 | 0.944 | 接受原假设 (不存在格兰杰因果) |
左右滑动可查看完整表格
若 P值 < 0.05,则拒绝原假设,表明前者的历史数据包含了预测后者的有用信息,构成了统计学意义上的『领先-滞后』因果关系。


【格兰杰因果检验】原因序列=序列A,目标序列=序列B,检验前者历史信息是否有助于预测后者。
【因果结论】统计不显著(p=0.402, α=0.05),不能证明 序列A 是 序列B 的格兰杰原因。
解读顺序:两列是否已平稳 → 成对 N 是否满 12 → 表头方向有没有写反 → 四行 P 是否有一行越过 0.05 → 若要写「没有预测领先」,同时报告反向结果。本例不能证明序列 A 是序列 B 的格兰杰原因。若改走 VAR,AIC 在同一张表上选了滞后 1,与本页 1 阶结论一致:连 1 阶增量都不显著。
理论与公式
在结果序列的自回归上再放入原因序列的同期滞后,p 阶设定为:
原假设是全部 b_i=0。StatsX 取 statsmodels 的 SSR F:比较「只有 Y 的滞后」与「Y 与 X 的滞后都在」两套残差平方和。
本产品对 p=1,2,3,4 各算一次,而不是先用 AIC 选一个 p 再只报一行。列顺序在内部排成「结果在前、原因在后」,与界面角色一致。序列必须方差非零、长度够撑起最大滞后。
注意事项
预测领先不是识别:遗漏共同因子、测量时点错位,都会制造假的格兰杰关系。
非平稳水平值上的 F 不可信,先 ADF 或差分。
四行没有多重比较校正;不要因为「总有一阶碰巧小于 0.05」就宣称发现。
Gabor-Granger 是定价问卷,和本过程无关。
显著之后仍要看 VAR 里对应系数与脉冲响应,避免只靠一行 P 值讲故事。
缺期、乱序会把「过去」算错,必须先按期数排序。
常见问题
参考文献
Granger, C. W. J. Investigating Causal Relations by Econometric Models and Cross-spectral Methods[J]. Econometrica, 1969, 37(3): 424–438.
Hamilton, J. D. Time Series Analysis[M]. Princeton University Press.
王燕. 应用时间序列分析[M]. 中国人民大学出版社.
Lütkepohl, H. New Introduction to Multiple Time Series Analysis[M]. Springer.