121 2

[宏观经济指标] statsmodels VAR VECM 文档(向量自回归与误差修正):宏观时间序列示例与拟合预测入口 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

学前班

0%

还不是VIP/贵宾

-

威望
0 级
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
10 点
帖子
0
精华
0
在线时间
0 小时
注册时间
2026-10-29
最后登录
2026-10-29

楼主
商旅管理78065 发表于 昨天 15:46 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

资料名称: statsmodels 的向量自回归(VAR)与向量误差修正模型(VECM)文档(statsmodels.tsa.vector_ar 模块,stable 版本文档)

 

帖内资料: VAR 的导入、拟合、滞后阶选择、预测、脉冲响应、Granger 因果与正态性/白噪声检验;VECM 的构造、协整秩选择(Johansen 检验)、拟合与预测;官方 macrodata 宏观示例(realgdp/realcons/realinv 对数差分)

 

时间覆盖: 文档对应 statsmodels 0.15.0(stable 版);示例数据集为 statsmodels 内置 macrodata(美国宏观季度数据)

 

许可与引用: statsmodels 采用 BSD 3-Clause 许可;文档与示例引用请注明 statsmodels 及版本;本次未逐字取得页面许可条款

 

适用任务: 用 statsmodels 做多变量时间序列的 VAR/VECM 建模、选滞后阶、预测、脉冲响应与协整分析;找官方文档入口与最小可运行示例

 

statsmodels 的 statsmodels.tsa.vector_ar 模块把向量自回归(VAR)和向量误差修正模型(VECM)放在同一个文档里,是做多变量时间序列的官方入口。下面按"VAR 怎么用 → VECM 怎么用 → 官方宏观示例"的顺序,把文档里的接口和最小示例说清楚,并给出文档与数据集入口。

 

statsmodels VAR/VECM 文档:从入口到最小示例

 

statsmodels.tsa.vector_ar 同时覆盖 VAR 与 VECM 两类模型:VAR 用于平稳的多变量序列,VECM 用于存在协整关系(单位根+长期均衡)的序列。文档给出的类都可以通过 statsmodels.tsa.api 访问。

 

statsmodels.tsa.vector_ar 模块里的 VAR 接口

 

文档的 VAR 部分从官方示例出发,导入、建模型、拟合一条线走完:

 

  1. import numpy as np
  2. import pandas
  3. import statsmodels.api as sm
  4. from statsmodels.tsa.api import VAR
  5. mdata = sm.datasets.macrodata.load_pandas().data
  6. mdata = mdata[['realgdp', 'realcons', 'realinv']]
  7. data = np.log(mdata).diff().dropna()
  8. model = VAR(data)
复制代码

 

文档特别提醒:VAR 类假设输入的各时间序列已经平稳,非平稳或带趋势的数据通常要先做差分(示例里就是对宏观变量取对数再差分)。直接用非平稳序列套一个普通 VAR(p) 并不合适。

 

VAR:拟合、选阶、预测与脉冲响应

 

拟合与滞后阶选择

 

  • results = model.fit
    (2)
    :直接指定滞后阶为 2。
  • results = model.fit(maxlags=15, ic='aic'):给定最大滞后阶,按信息准则(ic 支持 aic/bic/hqic/fpe)自动选阶。
  • model.select_order
    (15)
    :独立做阶数选择,返回 LagOrderResults;results.summary() 里会同时给出 AIC、BIC、HQIC、FPE 四个准则值。

 

预测

 

  • lag_order = results.k_ar 取出实际采用的滞后阶。
  • results.forecast(data.values[-lag_order:],
    5)
    :需要提供最近 k_ar 个观测作为初值,给出未来 5 期预测。
  • results.forecast_interval(...) 会带上渐近标准误;results.plot_forecast
    (10)
    直接画出预测区间。

 

脉冲响应

 

  • irf = results.irf
    (10)
    :做 10 期脉冲响应,返回 IRAnalysis 对象。
  • irf.plot(orth=False) 画非正交化响应;irf.plot(impulse='realgdp') 只看某个冲击变量;irf.plot_cum_effects(orth=False) 画累计效应。文档注明正交化用误差协方差矩阵的 Cholesky 分解,所以结果会随变量排序变化。

 

诊断检验

 

  • results.test_causality('realgdp', ['realinv', 'realcons'], kind='f'):Granger 因果(支持 Wald 或 F 检验)。
  • results.test_whiteness():残差白噪声(Portmanteau)检验;results.test_normality():误差正态性(Jarque-Bera 型)检验。
  • results.plot() 与 results.plot_acorr() 做输入序列和自相关的可视化。

 

VECM:协整秩、构造与预测

 

VECM 用来刻画多个存在长期随机趋势(单位根)的序列之间的短期偏离,形式为 Δy_t = Π y_{t-1} + Γ1 Δy_{t-1} + … + u_t,其中 Π = αβ′。

 

协整秩与滞后阶选择

 

  • coint_johansen(endog, det_order, k_ar_diff):Johansen 协整秩检验。
  • select_coint_rank(endog, det_order, k_ar_diff):计算协整秩。
  • select_order(data, maxlags, ...):基于信息准则选滞后阶(与 VAR 同名函数对应 VECM 用法)。

 

构造与拟合

 

  • VECM(endog, k_ar_diff=..., coint_rank=..., deterministic=...):deterministic 用 "n"/"co"/"ci"/"lo"/"li" 及组合(如 "colo"、"cili")表示协整关系内/外是否含常数与线性趋势,对应文档列出的五种情形 I–V。
  • .fit() 得到 VECMResults。

 

结果与预测

 

  • results.predict(steps=
    10)
    :计算未来值,还可传入 alpha、exog_fc、exog_coint_fc。
  • results.irf(periods=
    10)
    :脉冲响应;results.plot_forecast(steps)、results.summary()、results.test_granger_causality(...)、results.test_whiteness()、results.test_normality() 与 VAR Results 一一对应。

 

官方宏观示例:macrodata

 

文档的 VAR 示例直接用 statsmodels 内置的 macrodata 数据集(美国实际 GDP、消费、投资等季度数据),选取 realgdp、realcons、realinv 三个变量,做对数差分后拟合 VAR
(2)。这个数据集是跑通 VAR/VECM 流程最省事的内置样本,不需要自己下载外部文件,适合照着改自己的数据。

 

按需求选哪个

 

第一次上手多变量时间序列、序列已经平稳 → 直接上 VAR;要看预测或脉冲响应 → 用 forecast/irf;关心变量间谁影响谁 → test_causality;序列之间存在长期均衡(协整)→ 改用 VECM,先用 coint_johansen/select_coint_rank 定秩再 fit。文档入口与 macrodata 数据集入口都放在回复里。

 

────────────────

下面把 VAR/VECM 模块文档、VECMResults 与 VARResults 文档、macrodata 数据集说明、以及 statsmodels 时间序列用户指南的入口放在回复里,照着点就能找到上面每个接口。


游客,如果您要查看本帖隐藏内容请回复
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝


沙发
jngod 发表于 昨天 16:40

藤椅
wenO6ZTcp8ct6 发表于 昨天 17:14
谢谢楼主,先蹲一个

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
扫码
拉您进交流群
GMT+8, 2026-10-30 03:38