Page QiView

多变量时间序列:VAR、SVAR 与脉冲响应分析

多变量时间序列:VAR、SVAR 与脉冲响应分析

1. 什么时候用 VAR

当多个变量彼此同时影响(如利率、通胀、产出)时,单方程回归容易遗漏系统反馈。
VAR 把每个变量都视为内生变量,用滞后项描述联动结构。

2. VAR 与 SVAR 数学形式

VAR$(p)$:

$$ y_t = c + A_1y_{t-1}+\cdots+A_p y_{t-p}+u_t $$

其中 $u_t$ 允许当期相关,因此“相关冲击”不等于“结构冲击”。

SVAR 通过识别约束恢复结构冲击:

$$ B_0 y_t = c + B_1y_{t-1}+\cdots+B_p y_{t-p}+\varepsilon_t $$

识别关键在 $B_0$ 的约束(短期、长期或符号约束)。

3. 脉冲响应(IRF)怎么读

IRF 回答的是:给系统一个单位结构冲击,未来各期变量如何动态响应。
但 IRF 的经济解释依赖识别假设,不可脱离约束单独解读。

4. Python 实操(VAR + IRF)

from statsmodels.tsa.api import VAR

# df: 包含多变量时间序列,已对齐频率并处理缺失
model = VAR(df)
res = model.fit(maxlags=8, ic="aic")

# 稳定性检查
print(res.is_stable(verbose=True))

# 脉冲响应 12 期
irf = res.irf(12)
irf.plot(orth=True)

# 方差分解
fevd = res.fevd(12)
print(fevd.summary())

5. 常见陷阱

  1. 非平稳序列直接进 VAR,导致伪回归。
  2. 默认 Cholesky 排序却不解释排序依据。
  3. 用 reduced-form 结果直接做政策因果结论。
  4. 样本期跨制度变迁却假设参数恒定。

6. 实务建议

  1. 先做经济学识别设计,再做统计估计。
  2. 对同一问题至少报告两种识别方案的 IRF 稳健性。
  3. 与局部投影(Local Projections)做对照,避免单模型依赖。

VAR 是系统描述工具,SVAR 才是结构解释工具;两者不能混用概念。