时间序列分析
VAR 向量自回归模型
把一组平稳序列同时写成彼此滞后的线性系统,用信息准则选阶,并用正交化脉冲响应看冲击如何在方程之间传递。
这篇能回答什么
VAR 回答的是:「这几条已经排好时间的定量指标,如何用彼此的过去值互相预报,以及一次冲击会沿哪条路径散开」。系统里每个变量都是内生的:右侧出现所有列的滞后,不再事先指定谁是因、谁是果。系数矩阵给出当期方程,正交化脉冲响应把冲击在未来 10 期的轨迹画出来。
适合:宏观教学表里同步的序列 A / B / C,或一组已经平稳的利率、通胀与产出偏离。不适合:还带着单位根的水平总量、只有一列的单序列预测、以及想识别政策处理效应的设计。
什么时候不该用
只有一列时用Auto ARIMA,不要硬凑 VAR。内生列未平稳,先ADF。只要成对预测增量,用格兰杰因果。关心残差波动聚集,改GARCH。
如何选择方法
目标是系统动态与脉冲用 VAR;目标是单列外推用 Auto ARIMA;目标是两列预测领先用格兰杰。选阶在本过程内部用 AIC 完成,不必先看完 ACF 再手填 p,但平稳性不能省。
VAR:2–10 条内生序列;maxlags=5 内按 AIC 选阶,输出系数矩阵与 10 期 IRF。
格兰杰因果:一对方向上的 SSR F,滞后固定 1–4。
ADF:每条内生列的前置平稳性。
Auto ARIMA:单目标 (p,d,q) 网格,不估计交叉脉冲。
输入、输出与限制
输入
内生序列至少两列,至多十列,定量或时间序列。界面以「内生序列」为主;若另有列被放进因变量角色,会与内生列合并后一起估计。按所用列删缺失,行序当作时间。
内生序列:最少 2 个,最多 10 个。
输出
系数矩阵:行是 const 与 L1.变量名(以及若选到更高阶的 L2…),列是各方程的被解释变量。单元格为系数,P<0.05 带 *。表注给最优滞后、AIC、BIC 与样本量。图为正交化脉冲响应(未来 10 期)。洞察复述内生名单与选中的阶。
产品限制
搜索上限 maxlags=5,信息准则固定 AIC(BIC 只报告、不负责选阶)。
有效行数必须不少于 15(约 3×最大滞后);本例 80 行足够。
AIC 若选出滞后 0,过程会停止:认为没有可估计的自回归结构。
脉冲响应为正交化 IRF,步长 10;表中不另附方差分解数字。
完全共线或某列为零方差会导致拟合失败。
案例
研究问题。 宏观教学表示例要在三条同步序列上估计一个小型 VAR:看各列主要跟自己的过去走,还是存在可报告的交叉滞后,并用脉冲响应看冲击是否收回零轴。
教学示例来自时间序列表,工作表为「macro」,有效期数 80(期数、序列A、序列B、序列C)。内生序列勾选三列定量。AIC 选出滞后 1,AIC=−1.37,BIC=−1.01。对角线上 L1.序列A→序列A 为 0.8793*,L1.序列B→序列B 为 0.9173*,L1.序列C→序列C 为 0.78*;交叉项里显著的是 L1.序列C→序列B(0.22*)。下载后按同样三列复现。
在 StatsX 中操作
步骤 1 · 上传表格
打开工作台,将 Excel / CSV / JSON 拖入上传区。本案例使用时间序列 xlsx,确认工作表为「macro」。单文件不超过 20 MB。
步骤 2 · 查看画像与质量
三列定量、80 期对齐。「期数」只用来核对顺序,不要放进内生序列。先对各列做 ADF。
步骤 3 · 选择「VAR 向量自回归模型」
在算法目录搜索「VAR」或「向量自回归」,点选该方法。不要和单方程线性回归的多因变量搞混。
步骤 4 · 指定变量并运行
内生序列勾选序列A、序列B、序列C(2–10 列)。点运行。不要把期数或事件 0/1 塞进来。
步骤 5 · 阅读结果
先读表注里的最优滞后与 AIC,再读对角系数是否带星,最后看 IRF 是否回到零。交叉星号再对照格兰杰方向。




如何阅读输出
下表由 macro 三列(80 期)拟合得到。AIC 在 1–5 阶网格里选定 滞后 1。const 行三个截距都带 *。自身一阶滞后都大且带 *,系统接近「各自 AR(1)」;跨方程里只有 L1.序列C 进入序列B 的方程时带 *(0.22*),L1.序列A 对 B、C 都不显著。这与「序列A 不是序列B 的格兰杰原因」那张四行表一致。
| 滞后项/变量 | 序列A | 序列B | 序列C |
|---|---|---|---|
| const | 0.6471* | 0.6694* | 0.7691* |
| L1.序列A | 0.8793* | -0.0073 | -0.1158 |
| L1.序列B | 0.0355 | 0.9173* | 0.0404 |
| L1.序列C | 0.1499 | 0.22* | 0.78* |
左右滑动可查看完整表格
最优滞后阶数=1,AIC=-1.37,BIC=-1.01,样本量=80。带 * 表示 P<0.05。单元格为回归系数(Coef)。


【VAR向量自回归】内生变量=序列A、序列B、序列C,最优滞后阶=1。
【VAR·动态冲击】某一变量受一单位正向冲击时,可通过脉冲响应观察其他变量在未来各期的响应方向与收敛性;响应长期位于零轴上方表示正向溢出,逐渐回归零轴表示冲击收敛。
解读顺序:每列是否平稳 → N 与变量个数是否撑得住 5 阶搜索 → AIC 选中的 p(本例 1)→ 对角系数 → 交叉星号 → IRF 是否收敛。BIC=−1.01 高于 AIC=−1.37(代数上更大),但选阶权杖在 AIC。不要因为教材常写「先估到 4 阶」就否定本表的滞后 1。
理论与公式
记 Y_t 为 k 维内生向量。滞后 p 的约化 VAR 为:
StatsX 在 p=1…5 上拟合,取 AIC 最小者。本例 k=3、p=1,每个方程 1 个截距加 3 个滞后系数。选阶公式与报告中的 AIC 一致:
正交化脉冲响应用 Cholesky 因子把同期相关三角化,得到未来 10 期的 orth IRF。变量排列顺序会影响「谁先被冲击」的路径,写论文时应说明内生列在表中的左右顺序。系数表里的 * 是单系数 t 检验,和系统级 AIC 选阶不是同一件事。
注意事项
AIC 偏爱更长滞后,BIC 更狠;本产品只让 AIC 选阶,BIC 仅供对照。
未平稳的水平 VAR 会让脉冲持久不回零,先 ADF。
星号是单系数显著性:对角很大、交叉不显著,系统仍可能被 AIC 接受。
IRF 的 10 期截断不等于冲击在第 10 期「结束」。
Cholesky 顺序依赖列序,调换序列 A/B/C 的勾选顺序会改变交叉脉冲形状。
k 接近 10 且 p 被拉到 5 时,参数个数膨胀,80 期会不够,应减列或接受更短滞后。
常见问题
参考文献
Sims, C. A. Macroeconomics and Reality[J]. Econometrica, 1980, 48(1): 1–48.
Lütkepohl, H. New Introduction to Multiple Time Series Analysis[M]. Springer.
Hamilton, J. D. Time Series Analysis[M]. Princeton University Press.
王燕. 应用时间序列分析[M]. 中国人民大学出版社.