Stata:VAR 中的脉冲响应分析 (IRF)

Source: Rizaudin SahlanImpulse Response Function with Stata (time series)

编译:许梦洁 (中山大学)

Stata 连享会: 知乎 | 简书 | 码云

Stata连享会时间序列专题:

2019暑期“实证研究方法与经典论文”专题班-连玉君-江艇主讲

在这篇推文中,我们讨论 VAR 模型中的脉冲响应函数 (IRFs)。

模型推导

脉冲响应函数反映了当 VAR 模型某个变量受到"外生冲击"时,模型中其他变量受到的动态影响。我们会根据这些变量受到此冲击后的一段时间内的动态变化画出脉冲响应图形。

脉冲响应函数是一种条件预测,更确切地说,是一种点估计,只不过我们会估计冲击发生后不同时点的值。

类似于 AR 模型有 MA 表达形式,VAR 模型也有 VMA 表达形式。 VMA 表达形式有助于我们探求在 VAR 系统中变量收到冲击后的随时间变化的路径。考虑一个由 y t y_t yt z t z_t zt 构成的VAR 系统:

(1) [ y t z t ] = [ a 10 a 20 ] + [ a 11 a 12 a 21 a 22 ] [ y t − 1 z t − 1 ] + [ e 1 t e 2 t ] \left[ \begin{array} { c } { y _ { t } } \\ { z _ { t } } \end{array} \right] = \left[ \begin{array} { c } { a _ { 10 } } \\ { a _ { 20 } } \end{array} \right] + \left[ \begin{array} { c c } { a _ { 11 } } & { a _ { 12 } } \\ { a _ { 21 } } & { a _ { 22 } } \end{array} \right] \left[ \begin{array} { c } { y _ { t - 1 } } \\ { z _ { t - 1 } } \end{array} \right] + \left[ \begin{array} { c } { e _ { 1 t } } \\ { e _ { 2 t } } \end{array} \right]\tag{1} [ytzt]=[a10a20]+[a11a21a12a22][yt1zt1]+[e1te2t](1)

该模型也可以写成如下形式:

(2) [ y t z t ] = [ y ‾ z ‾ ] + ∑ i = 0 ∞ [ a 11 a 12 a 21 a 22 ] i [ e 1 t − i e 2 t − i ] \left[ \begin{array} { c } { y _ { t } } \\ { z _ { t } } \end{array} \right] = \left[ \begin{array} { c } { \overline { y } } \\ { \overline { z } } \end{array} \right] + \sum _ { i = 0 } ^ { \infty } \left[ \begin{array} { c c } { a _ { 11 } } & { a _ { 12 } } \\ { a _ { 21 } } & { a _ { 22 } } \end{array} \right] ^ { i } \left[ \begin{array} { c } { e _ { 1 t - i } } \\ { e _ { 2 t - i } } \end{array} \right] \quad \tag{2} [ytzt]=[yz]+i=0[a11a21a12

### 计算VAR模型的脉冲响应数值 在Stata中,可以利用`var`命令建立向量自回归(VAR)模型,并通过`irf create`和`irf graph`等命令来创建并分析脉冲响应函数。下面展示了一个具体的例子说明如何实现这一过程。 #### 数据准备与模型构建 假设已经拥有一组时间序列数据集,在执行任何VAR分析之前,应该先加载这些数据到工作环境中: ```stata use "your_dataset.dta", clear ``` 接着定义要纳入VAR中的变量列表,并设定合适的滞后长度。如果按照给定的信息,默认采用两阶滞后来估计模型系数[^1]: ```stata var CHINAM2 CHINAR CHINAER IP IFR IR REER INDEX EX, lags(1/2) ``` 此命令会基于指定的时间范围内的观测值拟合一个具有两个滞后项的标准VAR模型。 #### 创建IRF对象 一旦建立了VAR模型,则可进一步生成相应的脉冲响应函数(IRFs),这可以通过调用`irf create`完成: ```stata irf set myirfs // 设置存储位置为myirfs目录下 irf create irf1, step(20) replace // 保存名为irf1的结果,设置冲击步数为20期 ``` 这里指定了影响持续时间为20个周期;当然也可以根据实际情况调整这个参数。 #### 获取脉冲响应数值 为了得到具体的脉冲响应数值而不是图形表示形式,可以使用`matrix list`配合特定选项提取所需信息: ```stata matrix list e(irf_irf1_response_CHINAM2_to_SHOCKS) // 列出CHINAM2对于各个结构化扰动的影响路径矩阵 ``` 上述代码片段展示了怎样访问由`irf create`所生产的内部结果之一——即某个内生变量对其他因素突然变动后的反应轨迹表单。请注意替换其中的具体变量名以匹配个人的研究场景需求。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值