格兰杰因果检验
一、直观理解:旧信息里,谁能帮我多预测一步
格兰杰因果(Granger causality)问的是预测性问题:
在包含变量 与 的过去信息时,若去掉 的过去,对 的预测会显著变差,则称 Granger-引起 。
它不是哲学上的“真因”,也不是干预意义的因果,而是时间序列中的领先—滞后预测关系。
例子:若利率变化有助于预测未来投资,即使控制投资自身的滞后,则利率 Granger-引起投资。但这仍可能由第三变量共同驱动,或与预期有关。
二、适用场景与优缺点
| 类型 | 说明 |
|---|---|
| 适用场景 | 多变量时间序列;探索领先滞后;VAR 建模中的结构探索;排除“明显没有预测内容”的链接。 |
| 核心优点 | 操作标准化;与 VAR 一体;可双向检验;有滞后选择与稳健实现。 |
| 局限与缺点 | 非干预因果;受遗漏变量、预期、采样频率影响;需平稳或协整框架;瞬时相关不在基本定义内。 |
在建模论文中,若写“格兰杰因果”,应同时声明其预测含义,避免政策干预式措辞。
三、核心原理
对平稳序列,考虑 方程:
检验 。可用 F/Wald 检验。对称地可检验 。
在 VAR 系统中对整块系数做约束检验。滞后 用 AIC/BIC 或事前信息选。
非平稳时:
- 先差分到平稳再检验;或
- 在协整/VECM 框架讨论长期与短期格兰杰关系。
推广:条件格兰杰(控制第三变量集合)、频域格兰杰、面板格兰杰。
四、关键决策
1. 信息集
格兰杰结论相对于你放入的变量集合。漏掉共同原因会得到虚假因果。
2. 滞后阶数
太短:漏掉慢通道;太长:功效低。报告换阶稳健性。
3. 瞬时相关
同一期冲击相关时,基本格兰杰不刻画“瞬时因果”,需结构 VAR 与识别假设。
4. 措辞
推荐:“ 在格兰杰意义上有助于预测 ”,而不是“ 导致 ”。
五、MATLAB 示例
rng(25);
T = 400;
% X 是 Y 的领先者
x = zeros(T,1); y = zeros(T,1);
ex = randn(T,1); ey = randn(T,1);
for t = 3:T
x(t) = 0.5*x(t-1) + ex(t);
y(t) = 0.4*y(t-1) + 0.6*x(t-1) + ey(t);
end
% 用 lagmatrix 构造回归
p = 2;
Y = y(p+1:end);
Xlags = [];
Ylags = [];
for i = 1:p
Xlags = [Xlags, x(p+1-i:end-i)];
Ylags = [Ylags, y(p+1-i:end-i)];
end
% 无约束:Y ~ Ylags + Xlags
mdl_u = fitlm([Ylags Xlags], Y);
% 约束:Y ~ Ylags
mdl_r = fitlm(Ylags, Y);
% F 检验(似然比/多余平方和)
SSR_u = sum(mdl_u.Residuals.Raw.^2);
SSR_r = sum(mdl_r.Residuals.Raw.^2);
n = numel(Y); k_u = 1 + 2*p; q = p;
Fstat = ((SSR_r - SSR_u)/q) / (SSR_u/(n - k_u));
pval = 1 - fcdf(Fstat, q, n-k_u);
fprintf("H0: X 不 Granger 引起 Y; F=%.3f, p=%.4g\n", Fstat, pval);
% 反向
X = x(p+1:end);
mdl_u2 = fitlm([Xlags Ylags], X);
mdl_r2 = fitlm(Xlags, X);
SSR_u2 = sum(mdl_u2.Residuals.Raw.^2);
SSR_r2 = sum(mdl_r2.Residuals.Raw.^2);
F2 = ((SSR_r2-SSR_u2)/q) / (SSR_u2/(n-(1+2*p)));
p2 = 1 - fcdf(F2, q, n-(1+2*p));
fprintf("H0: Y 不 Granger 引起 X; F=%.3f, p=%.4g\n", F2, p2);
% 也可用 vgx 或 varm 工具箱做 VAR 与 gctest(若可用)
try
Mdl = varm(2, p);
Est = estimate(Mdl, [y x]);
% 某些版本提供 gctest
if exist("gctest", "file")
gctest(Est);
end
catch
disp("跳过工具箱 VAR 接口,手写检验已完成");
end
六、如何解释结果
- 序列、变换(对数/差分)与平稳性;
- 信息集变量;
- 滞后选择;
- 双向检验表;
- 明确“预测因果”含义;
- 稳健性与可能的遗漏变量。
七、常见误区
1. 当成政策干预因果
措辞过度是最常见问题。
2. 非平稳直接回归
虚假回归与错误 F。
3. 只做单向
应报告是否双向。
4. 采样过粗
季度数据可能把瞬时关系抹成滞后或反过来。
八、小结
格兰杰因果的核心是:
在给定信息集下,一个序列的过去是否有助于预测另一个序列。
它是时间序列探索与 VAR 诊断的有用工具,但不是结构因果的替代品。写作中把“预测性领先”与“可干预因果”分开,是专业性的基本标准。