精华内容
下载资源
问答
  • 建模以检查脉冲响应函数的 MATLAB 代码 主要代码称为 TEMPLATE。 其他文件是在主代码中调用的函数。 代码是为 Matlab 编写的,应该很容易转换为 Python(使用 python 包进行协整) 第 1 部分使用 txt 文件设置数据。...
  • Stata:VAR 中的脉冲响应分析 (IRF)

    万次阅读 2019-04-26 09:22:12
      Source: Rizaudin Sahlan → Impulse Response Function with Stata (time series) 编译:许梦洁 (中山大学) ...Stata 连享会: 知乎 | 简书 | ...Stata: VAR (向量自回归) 模型简介 Stata: 单位根检验就这...

    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[a11a21a12a22]i[e1tie2ti](2)

    方程 (2) 使用 { e 1 t e_{ 1 t } e1t} 和 { e 2 t e_{ 2 t } e2t} 序列表示了 y t y_t yt z t z_t zt 。根据 Enders(2014, p286),{ e 1 t e_{ 1 t } e1t} 和 { e 2 t e_{ 2 t } e2t} 可以写成:

    (3) [ e 1 t e 2 t ] = 1 1 − b 12 b 21 [ 1 − b 12 − b 21 1 ] [ ε y t ε z t ] \left[ \begin{array} { c } { e _ { 1 t } } \\ { e _ { 2 t } } \end{array} \right] = \frac{1}{ 1 - b _ { 12 } b _ { 21 }} \left[ \begin{array} { c c } { 1 } & { - b _ { 12 } } \\ { - b _ { 21 } } & { 1 } \end{array} \right] \left[ \begin{array} { c } { \varepsilon _ { y t } } \\ { \varepsilon _ { zt } } \end{array} \right]\tag{3} [e1te2t]=1b12b211[1b21b121][εytεzt](3)

    将 (3) 式代入 (2) 式中可得:

    ( 4 ) [ y t z t ] = [ y ‾ z ‾ ] + 1 1 − b 12 b 21 ∑ i = 0 ∞ [ a 11 a 12 a 21 a 22 ] i [ 1 − b 12 − b 21 1 ] [ ε y t ε z t ] \left[ \begin{array} { c } { y _ { t } } \\ { z _ { t } } \end{array} \right] = \left[ \begin{array} { c } { \overline { y } } \\ { \overline { z } } \end{array} \right]+ \frac{1}{ 1 - b _ { 12 } b _ { 21 }} \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 c } { 1 } & { - b _ { 12 } } \\ { - b _ { 21 } } & { 1 } \end{array} \right] \left[ \begin{array} { c } { \varepsilon _ { y t } } \\ { \varepsilon _ { z t } } \end{array} \right] \tag { 4 } [ytzt]=[yz]+1b12b211i=0[a11a21a12a22]i[1b21b121][εytεzt]( 4 )

    由于 (4) 式不太简洁,我们可以通过定义一个 2 × 2 2\times2 2×2 的矩阵 ϕ i \phi_i ϕi 来简化它:

    (5) ϕ i = A 1 i 1 − b 12 b 21 [ 1 − b 12 − b 21 1 ] \phi _ { i } = \frac{A _ { 1 } ^ { i } }{ 1 - b _ { 12 } b _ { 21 } } \left[ \begin{array} { c c } { 1 } & { - b _ { 12 } } \\ { - b _ { 21 } } & { 1 } \end{array} \right]\tag{5} ϕi=1b12b21A1i[1b21b121](5)

    将 (5) 式代入 (4) 式可得:

    (6) [ y t z t ] = [ y ‾ z ‾ ] + ∑ i = 0 ∞ [ ϕ 11 ( i ) ϕ 12 ( i ) ϕ 21 ( i ) ϕ 22 ( i ) ] i [ ε y t − i ε z t − i ] \left[ \begin{array} { l } { 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 } { \phi _ { 11 } ( i ) } & { \phi _ { 12 } ( i ) } \\ { \phi _ { 21 } ( i ) } & { \phi _ { 22 } ( i ) } \end{array} \right] ^ { i } \left[ \begin{array} { c } { \varepsilon _ { y t - i } } \\ { \varepsilon _ { zt - i } } \end{array} \right]\tag{6} [ytzt]=[yz]+i=0[ϕ11(i)ϕ21(i)ϕ12(i)ϕ22(i)]i[εytiεzti](6)

    显然 (6) 式可以写成更简洁的形式:

    (7) x t = μ + ∑ i = 0 ∞ ϕ i ε t − i x _ { t } = \mu + \sum _ { i = 0 } ^ { \infty } \phi _ { i } \varepsilon _ { t - i }\tag{7} xt=μ+i=0ϕiεti(7)

    以上 VMA 形式的表出对于我们理解 y t y_t yt z t z_t zt 构成的VAR 系统格外有帮助。其中系数矩阵 ϕ i \phi_i ϕi 即为来自 ε y t \varepsilon_{yt} εyt ε z t \varepsilon_{zt} εzt 的冲击对 y t y_t yt z t z_t zt 序列的影响。

    很显然 ϕ j k ( 0 ) \phi_{jk} (0) ϕjk(0) 是冲击的即时影响。比如, ϕ 12 ( 0 ) \phi_{12} (0) ϕ12(0) 表示 1 个单位 ε z t \varepsilon_{zt} εzt 的冲击会使当期的 y t y_t yt 变化多少个单位。类似地, ϕ 11 ( 1 ) \phi_{11} (1) ϕ11(1) ϕ 12 ( 1 ) \phi_{12} (1) ϕ12(1) 则分别表示来自一个单位 ε y t − 1 \varepsilon_{yt-1} εyt1 和一个单位 ε z t − 1 \varepsilon_{zt-1} εzt1 的冲击对 y t y_t yt 产生的影响。

    ϕ 11 ( 1 ) \phi_{11} (1) ϕ11(1) ϕ 12 ( 1 ) \phi_{12} (1) ϕ12(1) 也可以表示来自一个单位 ε y t \varepsilon_{yt} εyt ε z t \varepsilon_{zt} εzt 的冲击对 y t + 1 y_{t+1} yt+1 产生的影响。以此类推,来自一个单位 ε y t \varepsilon_{yt} εyt ε z t \varepsilon_{zt} εzt 的冲击对后续各期的 y t y_t yt z t z_t zt 产生的影响可以通过对脉冲响应函数进行适当的汇总得到。比如来自一个单位 ε z t \varepsilon_{zt} εzt 的冲击对 { y t y_{t} yt} 序列在后续第 n n n 期产生的影响即为 ϕ 12 ( n ) \phi_{12} (n) ϕ12(n) ,则在此 ε z t \varepsilon_{zt} εzt 冲击对 y t y_{t} yt 序列在冲击发生后的 n n n 期内产生的总影响为:

    ∑ i = 0 n ϕ 12 ( n ) \sum _ { i = 0 } ^ { n } \phi _ { 12 } ( n ) i=0nϕ12(n)

    n n n 趋于无穷,可以得到冲击对 y t y_t yt z t z_t zt 产生的长期影响。由于 { y t y_{t} yt} 和 { z t z_{t} zt} 被假定为平稳的,易得对于任意 j j j k k k

    ∑ i = 0 ∞ ϕ j k 2 ( i )  在  i → ∞  时收敛 \sum _ { i = 0 } ^ { \infty } \phi _ { j k } ^ { 2 } ( i )\text{ 在 $i\rightarrow \infty$ 时收敛} i=0ϕjk2(i)  i∞ 时收敛

    四个系数集 ϕ 11 ( i ) \phi_ { 11 } ( i ) ϕ11(i) ϕ 12 ( i ) \phi _ { 12 } ( i ) ϕ12(i) ϕ 21 ( i ) \phi _ { 21 } ( i ) ϕ21(i) ϕ 22 ( i ) \phi _ { 22 } ( i ) ϕ22(i) 被称为脉冲响应函数。绘制脉冲响应函数的图形是观察冲击 ε y t \varepsilon_{yt} εyt ε z t \varepsilon_{zt} εzt 对系统内变量 y t y_t yt z t z_t zt 影响的实用手段,也是观察来自 ε y t \varepsilon_{yt} εyt ε z t \varepsilon_{zt} εzt 冲击造成的时变影响的有力工具。

    使用 Stata 估计脉冲响应函数

    Stata 中, 我们可以使用 irf create 命令得到脉冲响应函数,这个命令可以估计五种脉冲响应函数(IRFs):简单脉冲响应函数(simple IRFs)、正交脉冲响应函数(orthogonalized IRFs)、累积脉冲响应函数(cumulative IRFs)、累积正交脉冲响应函数(cumulative orthogonalized IRFs)以及结构脉冲响应函数(structural IRFs)。

    具体的操作思路为:首先拟合 VAR 模型,然后使用 irf create 命令估计脉冲响应函数并将其存储到文件中,最后使用 irf graph 或其他的 irf 分析命令检验结果。

    本篇推文使用的数据集为 Data09.dta,可以点击这里下载。

    我们想估计的 VAR 模型中包含的变量有:对数固定资本形成总额 (lrgrossinv) ,对数实际家庭消费支出额 (lrconsump) 以及对数 GDP (lrgdp)。

    在估计脉冲响应函数之前,我们首先需要知道该 VAR 模型的最优滞后阶数:

     varsoc lrgrossinv lrconsump lrgdp, max (12)
    
       Selection-order criteria
       Sample:  1962q1 - 2010q3                     Number of obs      =       195
      +---------------------------------------------------------------------------+
      |lag |    LL      LR      df    p      FPE       AIC      HQIC      SBIC    |
      |----+----------------------------------------------------------------------|
      |  0 |  721.692                      1.3e-07   -7.3712  -7.35081  -7.32085  |
      |  1 |  1979.02  2514.7    9  0.000  3.5e-13  -20.1746   -20.093  -19.9731  |
      |  2 |  2022.28  86.525    9  0.000  2.4e-13   -20.526  -20.3833* -20.1735* |
      |  3 |  2030.07  15.571    9  0.076  2.5e-13  -20.5135  -20.3096    -20.01  |
      |  4 |  2036.31  12.492    9  0.187  2.5e-13  -20.4853  -20.2202  -19.8307  |
      |  5 |  2044.65  16.669    9  0.054  2.6e-13  -20.4784  -20.1522  -19.6728  |
      |  6 |  2056.46  23.622    9  0.005  2.5e-13  -20.5073  -20.1199  -19.5505  |
      |  7 |  2070.89  28.858*   9  0.001  2.4e-13*  -20.563* -20.1144  -19.4552  |
      |  8 |  2074.97  8.1629    9  0.518  2.5e-13  -20.5125  -20.0028  -19.2537  |
      |  9 |  2078.94  7.9406    9  0.540  2.6e-13  -20.4609  -19.8901   -19.051  |
      | 10 |  2083.77  9.6582    9  0.379  2.7e-13  -20.4181  -19.7861  -18.8572  |
      | 11 |  2088.52  9.5076    9  0.392  2.9e-13  -20.3746  -19.6814  -18.6626  |
      | 12 |     2094  10.959    9  0.279  3.0e-13  -20.3385  -19.5841  -18.4754  |
      +---------------------------------------------------------------------------+
       Endogenous:  lrgrossinv lrconsump lrgdp
        Exogenous:  _cons
    

    以上结果显示,根据 AIC 准则,模型的最优滞后结束为 7 阶。使用 7 阶滞后重新估计 VAR 模型:

    quietly var lrgrossinv lrconsump lrgdp,lags(1/7)dfk small
    

    并基于估计结果估计脉冲响应函数:

     irf create order1, step(10) set(myirf1) replace
    (file myirf1.irf created)
    (file myirf1.irf now active)
    irfname order1 not found in myirf1.irf
    (file myirf1.irf updated)
    

    Stata 中,多个脉冲响应的结果可以被存储在同一个文件中,并被标记为不同的名字。上述命令表示,此次脉冲响应估计的结果被存储在 myirf1 文件中,其名字被标记为 order1order1 中存储了前面提到的该 VAR 模型的全部五种脉冲响应函数的估计结果。

    得到了脉冲响应函数的估计结果后,我么就可以使用 irf graph 命令来绘制秒冲响应图形了:

    irf graph oirf, impulse(lrgrossinv lrconsump lrgdp) response(lrgrossinv lrconsump lrgdp)  yline (0,lcolor(black)) byopts(yrescale)
    

    脉冲响应函数

    脉冲响应图形中,每一行为同种冲击对不同变量造成的影响,每一列为不同冲击对同一变量造成的影响。

    横坐标的刻度单位为 VAR 模型估计的单位时间(在这个案例中为每一季度)。这张图形中显示的是冲击在 10 个季度内造成的影响。纵坐标以每个变量自己的单位来衡量,由于我们估计的模型所有变量的单位均为百分比,因此纵坐标表示百分比的变化。

    第一行展示了家庭消费 (lrconsump) 受到一个单位标准差的冲击对 VAR 系统造成的影响:家庭消费 (lrconsump) 会瞬间全部吸收冲击,并增加相应单位的百分比,此影响甚至到 10 个季度之后都没有消退。GDP (lrgdp) 受到该冲击的影响会在4个季度内有所上升,在第四个季度达到峰值,随后该影响慢慢衰退。固定资本形成额 (lrconsump) 与 GDP 呈现相似的变化。

    第二行展示了GDP (lrgdp) 受到一个单位标准差的冲击对 VAR 系统造成的影响:家庭消费 (lrconsump) 和固定资本形成额 (lrconsump) 都在前 5 个季度轻微下降,之后回升。

    第三行展示了固定资本形成额 (lrconsump) 受到一个标准差的冲击对 VAR 系统造成的影响:家庭消费 (lrconsump) 和 GDP (lrgdp) 都出现了高度持续的下降。

    关于我们

    • Stata 连享会(公众号:StataChina)】由中山大学连玉君老师团队创办,旨在定期与大家分享 Stata 应用的各种经验和技巧。
    • 公众号推文同步发布于 CSDN-Stata连享会简书-Stata连享会知乎-连玉君Stata专栏。可以在上述网站中搜索关键词StataStata连享会后关注我们。
    • 点击推文底部【阅读原文】可以查看推文中的链接并下载相关资料。
    • Stata连享会 精品专题 || 精彩推文

    联系我们

    • 欢迎赐稿: 欢迎将您的文章或笔记投稿至Stata连享会(公众号: StataChina),我们会保留您的署名;录用稿件达五篇以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。
    • 意见和资料: 欢迎您的宝贵意见,您也可以来信索取推文中提及的程序和数据。
    • 招募英才: 欢迎加入我们的团队,一起学习 Stata。合作编辑或撰写稿件五篇以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。
    • 联系邮件: StataChina@163.com

    往期精彩推文


    欢迎加入Stata连享会(公众号: StataChina)

    展开全文
  • 第八章 VAR模型与脉冲响应

    万次阅读 多人点赞 2018-11-24 07:17:39
    首先提一下辛士波老师反复讲到的问题:即VARVaRVar三者的区别,切记千万不要混淆哈哈 VAR Vector Autoregression,向量自回归 VaR Value at Risk,称为风险价值模型,也称受险价值方法、在险价值方法,...

    NOTION:

    首先提一下辛士波老师反复讲到的问题:即VAR、VaR、Var三者的区别,切记千万不要混淆哈哈

    VARVector Autoregression,向量自回归
    VaRValue at Risk,称为风险价值模型,也称受险价值方法、在险价值方法,常用于金融机构的风险管理。
    VarVariance,统计量上的方差

    第一节 VAR模型

    探讨实际有效汇率(REER)与中国对美国出口的(X)的关系问题,假设两个变量相互影响,则可建立如下的VAR模型:

     (上述比较复杂的式子就是构建的VAR模型,式子比较复杂就用图片代替了,接着我们试着用数据通过Eviews算出那些待估参数。)

    Eviews操作:新建Eviews文档,“Workfile structure type”选择时间序列,“Date specification”输入月度数据。这里数据的来源是http://cliometrics.gdufs.edu.cn/info/1007/1127.htm,名称是“数据表.docx”。

    图1-1 月度数据的输入

     Eviews操作:导入数据后,点击主页面的"Quick"——选择“Estimate VAR...”——单击该项——出现对话框——在"Endogenous Variables"(内生变量)输入你需要研究的变量“reer x”——把“Lag Intervals for Endogenous”(滞后期间)输入“1 1”。(中间空格)。

    图1-2 VBA模型图

      Eviews操作:点击窗口的"Estimate”——把“Lag Intervals for Endogenous”(滞后期间)改成“1 2”。(中间空格)。观察两次的AIC和SC(如图1-3),并且把它们的值输入值表格1-1

     滞后一期滞后二期
    AIC12.0643112.07172
    SC12.1711512.25047

     最终,用上述两个准则确定最优滞后期的一个标准是,最有滞后期应使两个准则的数值最小。我们选择滞后一期,并且由于常数项不显著,我们将其剔除掉,于是可得图1-3的结果,将图1-3的结果转换成数学表达式,如下:

    第二节 脉冲响应

    为了了解变量间的相互影响关系和影响程度如何,一个解决办法就是做脉冲响应与方差分解。

    图1-3

    随后默认选择后确定,得出

    图1-4 可以只看Response of X to REER及REER to X

    选择个别的脉冲分析,比如Response of REER to X:

    图1-5
    图1-6

    图1-6 Response of REER to X表明的是,即X的变化引起的REER的反应或者回复,(单调判断)刚开始的变量X的变化对REER的冲击影响为0,随后随着X的增大,其对REER的作用力持续上升。(峰值判断)并且在第十期仍然没有到达冲击的峰值,说明X对REER的冲击具有持久性并且作用力持续增加。脉冲响应的结果表明(追本溯源:X代表的是中国对美国的出口,REER代表的是实际有效汇率),如果没有贸易逆差的压力,贸易问题对汇率的冲击影响将为0;如果存在贸易逆差,则随着贸易逆差变大,对汇率的冲击影响将越来越大。但逆差扩大引起汇率的具体变化有待考究。

    ——Written in 6353, miss you.

    展开全文
  • 目录 模型与数据 估算值 预测误差脉冲响应 ...脉冲响应分析是采用向量自回归模型的计量经济学分析中的重要一步。它们的主要目的是描述模型变量对一个或多...这篇文章介绍了VAR文献中常用的脉冲响应函数的概念和解...

    原文链接:http://tecdat.cn/?p=9384

    原文出处:拓端数据部落公众号


    目录

    模型与数据

    估算值

    预测误差脉冲响应

    识别问题

    正交脉冲响应

    结构脉冲反应

    广义脉冲响应

    参考文献


    脉冲响应分析是采用向量自回归模型的计量经济学分析中的重要一步。它们的主要目的是描述模型变量对一个或多个变量的冲击的演化。因此使它们成为评估经济时非常有用的工具。这篇文章介绍了VAR文献中常用的脉冲响应函数的概念和解释。

    模型与数据

    为了说明脉冲响应函数的概念,使用了Lütkepohl(2007)的示例。可以从教科书的网站上下载所需的数据集。它包含从1960年1季度到1982年4季度按季度和季节性调整的时间序列,这些序列是西德的固定投资,可支配收入和数十亿德国马克的消费支出。

    # 下载数据
    data <- read.table("e1.dat", skip = 6, header = TRUE)
    
    # 仅使用前76个观测值,因此有73个观测值
    # 取一阶差分后,留给估计的VAR(2)模型。
    data <- data[1:76, ]
    
    # 转换为时间序列对象
    data <- ts(data, start = c(1960, 1), frequency = 4)
    
    # 取对数和差值
    data <- diff(log(data))
    
    # 绘图数据
    plot(data,  main = "Dataset E1 from Lütkepohl (2007)")

    此数据用于估计具有常数项的VAR(2)模型。

    估算值

    可以使用vars软件包估算VAR模型:

    
    # 查看摘要统计信息
    summary(model)

    代码的结果应与Lütkepohl(2007)的3.2.3节中的结果相同。

    预测误差脉冲响应

    由于VAR模型中的所有变量都相互依赖,因此单独的系数估计仅提供有关反应的有限信息。为了更好地了解模型的动态行为,使用了脉冲响应(IR)。线性VAR模型的每个脉冲响应函数的出发点都是其移动平均值(MA)表示,这也是预测误差脉冲响应(FEIR)函数。

    在R 中,程序包可用于获取预测误差脉冲响应。

    识别问题

    从上图可以看出,在第一期间FEIR为零。对于使用的数据集,估计为

    ##              invest       income         cons
    ## invest 2.129629e-03 7.161667e-05 1.232404e-04
    ## income 7.161667e-05 1.373377e-04 6.145867e-05
    ## cons   1.232404e-04 6.145867e-05 8.920351e-05

    由于估计方差-协方差矩阵的非对角线元素不为零,因此我们可以假设VAR模型中的变量之间存在同期相关性。这由与Σ相对应的相关矩阵确认:

    ##           invest    income      cons
    ## invest 1.0000000 0.1324242 0.2827548
    ## income 0.1324242 1.0000000 0.5552611
    ## cons   0.2827548 0.5552611 1.0000000

    但是,这些矩阵仅描述了误差之间的相关性,但不清楚因果关系的方向。识别这些因果关系是任何VAR分析的主要挑战之一。

    正交脉冲响应

    识别VAR模型的冲击的常用方法是使用正交脉冲响应(OIR)。基本思想是分解方差-协方差矩阵,使∑ = PP− 1,其中P是带有正对角线元素的下三角矩阵,通常通过Choleski分解获得。给定估计方差-协方差矩阵PP,可以通过以下方法获得分解

    
    ##             invest      income        cons
    ## invest 0.046147903 0.000000000 0.000000000
    ## income 0.001551894 0.011615909 0.000000000
    ## cons   0.002670552 0.004934117 0.007597773
    

    从这个矩阵可以看出,收入冲击对消费具有同时性的影响,反之则不然。

    在R 中,vars可以通过设置参数来使用包的功能来获得OIR:

    
    plot(oir)

    请注意,Choleski分解的输出是一个较低的三角矩阵,因此第一行中的变量永远不会对任何其他变量的同时冲击敏感,而系统中的最后一个变量将对所有其他变量的冲击敏感。因此,OIR的结果可能对变量的顺序很敏感,建议用不同的顺序估计上述VAR模型,以查看所产生的OIR受此影响的程度。

    结构脉冲反应

    在VAR模型的估计过程中,结构脉冲响应(SIR)已经考虑了识别问题。

    广义脉冲响应

    正交和结构响应都可以通过找到变量的正确顺序或通过识别估计的结构参数来约束。Koop等(1998)提出了一种不同类型的响应函数,即所谓的广义脉冲响应(GIR)。它们独立于变量顺序,因为它们将其他冲击的影响整合到响应之外。

    对于难以识别结构关系的大型系统,GIR非常有用。

    展开全文
  • 脉冲响应函数分析结果表明,IFDI对中国西部地区的出口贸易呈负效应,而对中国西部地区进口贸易呈正向效应,且对西部地区进口贸易的长期正向效应呈逐期递减趋势。在以上分析基础上,提出相应政策建议。
  • 这篇文章介绍了VAR分析的基本概念,并指导了简单模型的估算过程。 单变量自回归 VAR代表向量自回归。为了理解这意味着什么,让我们首先来看一个简单的单变量(即仅一个因变量或内生变量)自回归(AR)模型,其...

    原文链接:http://tecdat.cn/?p=9368

    原文出处:拓端数据部落公众号


    自从Sims(1980)发表开创性的论文以来,向量自回归模型已经成为宏观经济研究中的关键工具。这篇文章介绍了VAR分析的基本概念,并指导了简单模型的估算过程。 

    单变量自回归

    VAR代表向量自回归。为了理解这意味着什么,让我们首先来看一个简单的单变量(即仅一个因变量或内生变量)自回归(AR)模型,其形式为yt=a1yt−1+et。 

    平稳性

    在估算此类模型之前,应始终检查所分析的时间序列是否稳定,即它们的均值和方差随时间变化是恒定的,并且不显示任何趋势行为。 

    有一系列统计检验,例如Dickey-Fuller,KPSS或Phillips-Perron检验,以检验序列是否稳定。另一种非常常见的做法是绘制序列并检查其是否围绕恒定的平均值(即水平线)移动。如果是这种情况,它很可能是稳定的。 

    自回归滞后模型

    像AR(p)模型一样,仅凭其自身的滞后对宏观经济变量进行回归可能是一种限制性很大的方法。通常,更合适的假设是还有其他因素。通过包含因变量的滞后值以及其他(即,外生)变量的同期和滞后值的模型来实现这种想法。同样,这些外生变量应该是稳定的。对于内生变量yt和外生变量xt例如自回归分布滞后或ADL,模型可以写成

    yt=a1yt−1+b0xt+b1xt−1+et.

    这种ADL模型的预测性能可能会比简单的AR模型更好。但是,如果外生变量也依赖于内生变量的滞后值怎么办?这意味着xt也是内生的,还有进一步的空间可以改善我们的预测。

    向量自回归模型

     因此,如上所述,VAR模型可以重写为一系列单独的ADL模型。实际上,可以通过分别估计每个方程来估计VAR模型。

    标准VAR模型的协方差矩阵是对称的,即,对角线右上角的元素(“上三角”)将对角线左下角的元素(“下三角”)镜像。这反映了这样一种想法,即内生变量之间的关系仅反映相关性,并且不允许做出因果关系的陈述,因为在每个方向上的影响都是相同的。 

    在所谓的结构化 VAR(SVAR)模型的背景下分析了同时因果关系,或更确切地说,是变量之间的结构关系,该模型对协方差矩阵施加了限制 。 

    在本文中,我考虑VAR(2)过程。 

    此示例的人工样本是在R中生成的

    set.seed(123) # 由于可复制性的考虑,重置随机数发生器
    
    # 生成样本
    t <- 200 # 时间序列观察数
    k <- 2 # 内生变量数
    p <- 2 # 滞后阶数
    
    # 生成系数矩阵
    A.1 <- matrix(c(-.3, .6, -.4, .5), k) # 滞后系数矩阵1
    A.2 <- matrix(c(-.1, -.2, .1, .05), k) # 滞后系数2
    A <- cbind(A.1, A.2) # 系数矩阵
    
    # 生成序列
    
    series <- matrix(0, k, t + 2*p) # 带有0的原始序列
    for (i in (p + 1):(t + 2*p)){ # 生成e ~ N(0,0.5)的序列
      series[, i] <- A.1%*%series[, i-1] + A.2%*%series[, i-2] + rnorm(k, 0, .5)
    }
    
    series <- ts(t(series[, -(1:p)])) # 转换为时间序列格式
    names <- c("V1", "V2") # 重命名变量
    
    plot.ts(series) # 绘制序列

    估算值

    简单VAR模型的参数和协方差矩阵的估计很简单。

    为了估计VAR模型,加载并指定数据(y)和 模型。 

     比较

    VAR分析中的一个中心问题是找到滞后的阶数,以产生最佳结果。模型比较通常基于信息标准,例如AIC,BIC或HQ。通常,由于是小样本预测,AIC优于其他标准。但是,BIC和HQ在大型样本中效果很好 。

    可以计算标准信息标准以找到最佳模型。在此示例中,我们使用AIC:

     通过查看,summary我们可以看到AIC建议使用2的阶数。

    summary(var.aic)
    
    ## 
    ## VAR Estimation Results:
    ## ========================= 
    ## Endogenous variables: Series.1, Series.2 
    ## Deterministic variables: none 
    ## Sample size: 200 
    ## Log Likelihood: -266.065 
    ## Roots of the characteristic polynomial:
    ## 0.6611 0.6611 0.4473 0.03778
    ## Call:
    ## VAR(y = series, type = "none", lag.max = 5, ic = "AIC")
    ## 
    ## 
    ## Estimation results for equation Series.1: 
    ## ========================================= 
    ## Series.1 = Series.1.l1 + Series.2.l1 + Series.1.l2 + Series.2.l2 
    ## 
    ##             Estimate Std. Error t value Pr(>|t|)    
    ## Series.1.l1 -0.19750    0.06894  -2.865  0.00463 ** 
    ## Series.2.l1 -0.32015    0.06601  -4.850 2.51e-06 ***
    ## Series.1.l2 -0.23210    0.07586  -3.060  0.00252 ** 
    ## Series.2.l2  0.04687    0.06478   0.724  0.47018    
    ## ---
    ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    ## 
    ## 
    ## Residual standard error: 0.4638 on 196 degrees of freedom
    ## Multiple R-Squared: 0.2791,  Adjusted R-squared: 0.2644 
    ## F-statistic: 18.97 on 4 and 196 DF,  p-value: 3.351e-13 
    ## 
    ## 
    ## Estimation results for equation Series.2: 
    ## ========================================= 
    ## Series.2 = Series.1.l1 + Series.2.l1 + Series.1.l2 + Series.2.l2 
    ## 
    ##             Estimate Std. Error t value Pr(>|t|)    
    ## Series.1.l1  0.67381    0.07314   9.213  < 2e-16 ***
    ## Series.2.l1  0.34136    0.07004   4.874 2.25e-06 ***
    ## Series.1.l2 -0.18430    0.08048  -2.290   0.0231 *  
    ## Series.2.l2  0.06903    0.06873   1.004   0.3164    
    ## ---
    ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    ## 
    ## 
    ## Residual standard error: 0.4921 on 196 degrees of freedom
    ## Multiple R-Squared: 0.3574,  Adjusted R-squared: 0.3443 
    ## F-statistic: 27.26 on 4 and 196 DF,  p-value: < 2.2e-16 
    ## 
    ## 
    ## 
    ## Covariance matrix of residuals:
    ##          Series.1 Series.2
    ## Series.1  0.21417 -0.03116
    ## Series.2 -0.03116  0.24154
    ## 
    ## Correlation matrix of residuals:
    ##          Series.1 Series.2
    ## Series.1    1.000   -0.137
    ## Series.2   -0.137    1.000

    仔细观察结果,我们可以将真实值 与模型的参数估计值进行比较:

    # 真实值
    A
    ##      [,1] [,2] [,3] [,4]
    ## [1,] -0.3 -0.4 -0.1 0.10
    ## [2,]  0.6  0.5 -0.2 0.05
    # Extract coefficients, standard errors etc. from the object
    # produced by the VAR function
    est_coefs <- coef(var.aic)
    
    # 仅提取两个因变量的系数,并将它们组合为一个矩阵
    
    # 输出四舍五入的估计值
    round(est_coefs, 2)
    ##      Series.1.l1 Series.2.l1 Series.1.l2 Series.2.l2
    ## [1,]       -0.20       -0.32       -0.23        0.05
    ## [2,]        0.67        0.34       -0.18        0.07

    所有估计值都有正确的符号,并且相对接近其真实值。 

    脉冲响应

    一旦我们确定了最终的VAR模型,就必须解释其估计的参数值。由于VAR模型中的所有变量都相互依赖,因此单个参数值仅提供 有限信息。为了更好地了解模型的动态行为,使用了脉冲响应(IR)。可以绘制响应变量的轨迹,产生在许多宏观论文中都可以找到的那些波浪曲线。

    在下面的示例中,我们想知道受到冲击后序列2的行为。指定了我们想要脉冲响应的模型和变量后,我们将时间范围设置n.ahead为20。该图给出了序列2的响应。 

    # 计算脉冲响应
    
    # 绘制脉冲响应
    plot(ir.1)

    请注意,正交选项很重要,因为它说明了变量之间的关系。在我们的示例中,我们已经知道不存在这样的关系,因为真正的方差-协方差矩阵(或简称协方差矩阵)在非对角元素中是对角为零的对角线。但是,由于具有200个观测值的有限时间序列数据限制了参数估计的精度,因此协方差矩阵的非对角元素具有正值,这意味着 非零同时效应。为了在IR中排除这种情况,我们设置了ortho = FALSE。结果是,脉冲响应在周期0中从零开始。 也可以尝试另一种方法并进行设置ortho = TRUE,那么绘图从零开始。 

     要了解这一点,还可以计算并绘制累积脉冲响应函数,以了解 总体长期影响:

    # 计算脉冲响应
    
    # 绘图
    plot(ir.2)

    我们看到,尽管序列2对序列1中的 反应在某些时期是负面的,但总体效果却是显着正面。


    最受欢迎的见解

    1.在python中使用lstm和pytorch进行时间序列预测

    2.python中利用长短期记忆模型lstm进行时间序列预测分析

    3.使用r语言进行时间序列(arima,指数平滑)分析

    4.r语言多元copula-garch-模型时间序列预测

    5.r语言copulas和金融时间序列案例

    6.使用r语言随机波动模型sv处理时间序列中的随机波动

    7.r语言时间序列tar阈值自回归模型

    8.r语言k-shape时间序列聚类方法对股票价格时间序列聚类

    9.python3用arima模型进行时间序列预测

    展开全文
  • 使用Stata做脉冲响应分析

    万次阅读 多人点赞 2019-04-25 21:20:42
    在这篇推文中,我们讨论 VAR 模型中的脉冲响应函数(IRFs)。 脉冲响应函数反映了当 VAR 模型某个变量受到"外生冲击"时,模型中其他变量受到的动态影响。我们会根据这些变量受到此冲击后的一段时间内的动态变化画出...
  • 利用脉冲响应函数和方差分解的实证方法对数据进行处理并加以分析,得出技术进步各因素对经济增长的具体影响机制。脉冲结果分析表明,人力资本短期内会对经济增长带来负面影响,但长期会促进经济增长,同时经济增长对人力...
  • R语言有很强大的绘图和构建计量模型的功能,比一些软件如Eviews或者SPSS...本人比较喜欢用R语言分析,但在进行脉冲响应分析的时候遇到了一个问题:如何利用R将脉冲响应图整齐地排列起来?起初,我也认为这是一件很简...
  • Source:Rizaudin Sahlan→Impulse Response Function with Stata (time series) Stata连享会时间序列专题: ... Stata:VAR-中的脉冲响应分析-(IRF) Stata: 单位根检验就这么轻松 Stata: 协整...
  • ????2021年寒假Stata研讨班:高级计量经济学及Stata应用...它允许用户估计面板向量自回归和产生方差分解和脉冲响应函数。Love’s 的程序被Love and Ziccino (2006)等论文采用。 关于各种var模型,阅读如下资源:1...
  • 本文通过建立VAR模型,通过脉冲响应函数与方差分解的方法,研究了GDP与居民可支配收入变化冲击对房地产价格的动态影响.实证结论表明:GDP变化所带来的冲击会给房地产价格带来一个长期的正向影响,短期内房地产价格...
  • 利用相关分析法辨识脉冲响应

    千次阅读 多人点赞 2019-06-05 17:42:02
    legend('脉冲响应理论值','脉冲响应估计值'); %加入噪声前后的输出序列比较 % subplot(1,2,2) figure(2) t=linspace(0,(N-1),N); plot(t,y,'-b','LineWidth',1.5); hold on plot(t,z,'--r','LineWidth',1.5); title...
  • 案例:对两种药物(A药和B药)治疗焦虑性失眠的疗效做meta分析,结局指标是恢复正常睡眠所需要的天数。在这里假定A是实验组,B是对照组。于是我们开始我们的探索。1.先在Excel 将数据整理好(数据是自己模拟的)2. ...
  • 一般来说,时间序列进行分析之前应该先检验是否存在单位根,如是,则需要进行差分转换,否则可以直接进行var(vector autoregression),这里不讨论arma(Autoregressive moving average model,自回归滑动平均模型...
  • 工业化进程导致的工业废水排放量与工业用水技术效率有关,为了量化研究工业产值、工业废水排放量与工业用水技术效率三者之间的关系,对数据检验之后,建立VAR模型,运用脉冲响应函数和方差分解方法进行分析.结果表明:...
  • } 10 9 8 7 6 5 4 3 2 1 0 1.2 核心思路 为了能在图片中显示上述数字,我们可以使用 Stata 的绘图命令 twoway function,假装绘制一幅函数图 y = x,然后将图形的颜色设定为白色,同时把图片的背景、外框等都设定为...
  • 基于内蒙古1995-2015年的统计数据,建立工业化和能源强度间的向量自回归模型(VAR模型),进行协整分析之后,运用脉冲响应函数和动态方差分解法,对工业化和能源强度这两组变量的交互动态响应关系进行分析和预测,从而探索...
  • 以1978—2018年陕西省能源消费总量和生产总值的实际数据为样本,应用简单散点图、Pearson相关系数法、向量自回归(VAR)模型,利用单位根检验、协整检验、Granger因果检验和脉冲响应函数等进行实证分析。研究结果...
  • VAR:用于VAR估计,识别,脉冲响应函数计算,FEVD,HD的代码。 统计:用于计算摘要统计信息,移动相关性,成对相关性等的代码。 实用程序:如果使用“工具箱”,则可使代码平稳运行。 辅助代码:我从其他公共渠道借...
  • 文章选取了1995—2015年上海市经济增长,产业结构和空气污染的相关数据,建立VAR模型,运用脉冲响应函数和方差分解的方法,对上海市经济增长,产业结构和空气污染之间的相互影响机制和动态关系进行了研究。研究表明,上海...
  • 基于VAR模型的中国能源消费与经济增长关系的实证分析,李迎成,,通过对我国1978-2008年能源消费和经济增长数据建立向量自回归模型(VAR),运用协整分析脉冲响应函数和方差分解分析对能源消费与经
  • R语言实现PVAR(面板向量自回归模型)

    万次阅读 多人点赞 2019-06-05 20:16:00
    这次研究了一个问题,要用PVAR(面板向量自回归模型),在网上找的教程基本上都是Stata或者Eviews的教程,而鲜有R实现PVAR的教程,这里总结分享一下我摸索的PVAR用R实现的整个过程。 ...
  • R语言编程学习之函数与模型:VAR与SVAR和爬虫(图) SVAR模型与VAR模型在模型设定形式上的区别是,VAR模型只包含变量的滞后项,而SVAR模型还包含了变量的当期项。SVAR模型还可以避免联立方程模型可能产生的偏倚问题...
  • 以2006年~2014年行业的相关数据为基础,构建VAR模型,通过Johansen协整分析、脉冲响应函数分析、方差分解分析的方法对煤炭行业投资效率和去产能过程中涉及的主要因素进行实证研究,结果表明,以提高产能利用率、增加资源...
  • Python实现向量自回归(VAR)模型——完整步骤

    万次阅读 多人点赞 2019-02-01 15:20:14
    废话不多说,先开始分享: 1. 首先啥是VAR模型,我这里简略通俗的说一下,...但是VAR模型除了分析自身滞后项的影响外,还分析其他相关因素的滞后项对未来值产生的影响,模型的形式为: 其中就是其他因子的滞后项...
  • 此例程将向量自回归 (VAR) 的参数估计映射到相应移动平均 (MA) 模型的参数估计中。 此函数的输出可用于构建 VAR 模型的结构脉冲响应函数
  • 采用主成分分析法、格兰杰因果检验以及基于VAR脉冲响应函数对青岛市的经济发展与环境污染二者间关系进行分析,结果发现由于环境承载力的存在,经济增长造成环境污染在很大程度上受到时滞的影响,经济增长引发环境...
  • 采用2003—2013年7月的月度数据,运用VAR模型及脉冲响应函数分析了煤炭价格波动对相关产业产品价格的影响。结果表明:煤炭价格波动会对下游行业造成冲击,且持续较长时间;煤炭价格波动对有色金属冶炼及压延加工业的影响...
  • 【R语言】实现VAR、SVAR

    万次阅读 多人点赞 2019-02-01 11:15:50
    最近在写一篇小论文,主要用的就是VAR(向量自回归模型)和SVAR(结构向量自回归...5.脉冲响应 6.方差分解 (Johansen协整检验,如果需要的话) 整个过程用到的R语言的扩展包有: library(zoo) library(vars) libr...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 511
精华内容 204
关键字:

var脉冲响应函数分析