gcrobustvar:基于VAR的稳健性Granger因果检验

发布时间:2021-04-18 阅读 5027

Stata连享会   主页 || 视频 || 推文 || 知乎

温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。

New! lianxh 命令发布了:
随时搜索推文、Stata 资源。安装命令如下:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh

课程详情 https://gitee.com/lianxh/Course

课程主页 https://gitee.com/lianxh/Course

⛳ Stata 系列推文:

作者:黄依桐 (中山大学)
邮箱huangyt2@126.com


目录


1. 引言

1.1 VAR 模型

VAR (Vector Autoregressive) 即向量自回归模型,由 Sims 在 1980 年提出,是指所有当期变量对所有变量的若干滞后项进行线性回归。在宏观经济模型的实证分析中,VAR 模型经常被用来分析变量间的动态变化关系。简单的 VAR 模型可以由单变量时间序列的 AR 过程推出,如二阶 VAR 模型:

1.2 传统的 Granger 因果检验

VAR 模型系数的一个重要假设检验问题为 Granger 因果检验 (Granger causality test)。以二阶 VAR 模型为例,给定 yt 的滞后阶数,若 xt 的滞后项在以 yt 为因变量的方程中联合统计显著,即拒绝以下假设:

则称 xt 可以 Granger 预测 yt,或 xt 为 yt 的 Granger 因。

对于任一内生变量,我们都能逐次检定所有其它内生变量是否有 Granger 预测能力。若内生变量之间彼此具 Granger 预测能力,则这些变量之间存在动态变化关系。需要注意的是,上述零假设隐含参数不随时间改变的前提,即参数随着时间变化是稳定的。

1.3 VAR 模型中的不稳定性问题

在现实的宏观经济分析中,经济变量之间的关系常常随时间改变。在计量经济模型中,上述现象表现为自变量参数随时间改变,我们将之称为不稳定性 (instability)。

Rossi (2005) 证明,在不稳定性下,传统 Granger 因果检验可能是无效的,就算 xt 是 yt 的 Granger 因, xt 参数的不稳定性也可能使参数估计值趋近于 0,导致无法拒绝零假设从而无法证明二者的 Granger 因果关系。

1.4 稳健的 Granger 因果检验

Rossi (2005) 认为,在不稳定性下,Granger 因果检验应拓展为参数是否在任意时间点都等于 0,即:

我们称之为稳健的 Granger 因果检验。

文章中还提出稳健的 Granger 因果检验对应的检验统计量,包括:指数沃氏检验 ExpW,均值沃氏检验 MeanW,Nyblom 检验 Nyblom,Quandt 似然比值检验 QLR。基于这些统计量,Rossi Barbara 和 Yiru Wang 编写了 Stata 命令 gcrobustvar

2. 命令介绍

命令安装

*运用 gcrobustvar 命令前应先安装 matsqrt 命令
net install matsqrt.pkg, from(http://www.stata.com/users/jpitblado) replace
ssc install gcrobustvar, replace

命令语法

gcrobustvar depvarlist, pos(#, #) [nocons horizon(#) lags(numlist) trimming(level)]
  • depvarlist:被解释变量列表,即 VAR 模型内所有变量;
  • pos:包含两个整数的数列,分别代表被检验的被解释变量和解释变量在 depvarlist 中位置。如 pos(1,2) 表明检验 depvarlist 中第二个变量是否能 Granger 预测第一个变量;
  • nocons:表明模型无常数项,默认模型有常数项;
  • horizon:预测期数,默认为 horizon(0) ,即为缩减型 VAR 模型;
  • lags:滞后期数的数列。需要注意此处为数列而非最大滞后期数,如 lags(2) 表明模型中只包含滞后2期的滞后项,而 lags(1 2) 才表明模型中包含 1 期滞后与 2 期滞后。Stata 中数列的简便表达形式也适用,如 lags(1/3) = lags(1 2 3 4)。默认为 lags(1 2)
  • trimming:修整参数,限定参数不稳定性发生的时间范围。如 trimming(s) 表明参数的不稳定性发生在 [sT,(1s)T] 时间段中。默认为 trimming(0.15)

3. Stata 实例

3.1 实例说明

本文使用的数据是 Rossi 和 Wang (2019) 提供的「gcdata.xlsx」。该数据的样本期为 1959—2000 年,具体变量如下:

  • pdate 表示时间,如 1959 的四个季度按顺序分别表示为1959,1959.25,1959.5,1959.75;
  • pi 为季度通胀率,其算法为 πt=400×ln(Pt/Pt1)Pt 为链式加权的 GDP 价格指数;
  • u 为季度失业率,其算法为季度内 3 个月份失业率的算术平均;
  • R 为季度利率,其算法为季度内 3 个月份利率的算术平均。
. *查看程序和数据
. net describe st0581, from(http://www.stata-journal.com/software/sj19-4) //查看程序和数据下载页面

INSTALLATION FILES                               (type net install st0581)
      st0581/gcrobustvar.ado
      st0581/chowgmmstar3.ado
      st0581/nyblomstar3.ado
      st0581/pvcalc.ado
      st0581/gcrobustvar.sthlp

ANCILLARY FILES                                  (type net get st0581)
      st0581/main_implement.do
      st0581/gcdata.xlsx
      st0581/pvtable.mmat
. *获取数据
. net get st0581, from(http://www.stata-journal.com/software/sj19-4)
checking st0581 consistency and verifying not already installed...
all files already exist and are up to date.
. *导入数据
. import excel gcdata.xlsx, sheet(SW2001) firstrow clear
(4 vars, 168 obs)

. *时间变量处理与设定
. generate year = int(pdate) //获得年份
. generate quater = (pdate - int(pdate))*4 + 1 //获得季度数
. generate tq = yq(year, quater) //以1960第一季度为0,为每一季度找到对应的编号。
. format tq %tq //将时间编号转化为以季度划分的时间变量
. tsset tq      //指定时间变量
        time variable:  tq, 1959q1 to 2000q4
                delta:  1 quarter

3.2 稳健的 Granger 因果检验

Rossi 和 Wang (2019) 的模型为缩减型 VAR 模型:

其中,

我们感兴趣的是 u 是否能 Granger 预测 pi,并且想要检验这一关系在不稳定性下是否稳健,对应的零假设为:

需要注意的是,为获取检验统计量对应的 p 值表,在运用 gcrobustvar 命令前应先导入「pvtable.mmat」文件。

. *导入检验统计量对应的p值表
. mata // 进入Mata
------------------------- mata (type end to exit) ------------------------
: mata clear
: mata matuse pvtable,replace // 导入pvtable.mmat
(loading pvap0opt[34,21], pvapiopt[34,21], pvnybopt[34,21], pvqlropt[34,21])
: st_matrix("r(pvap0opt)",pvap0opt)
: st_matrix("r(pvapiopt)",pvapiopt)
: st_matrix("r(pvnybopt)",pvnybopt)
: st_matrix("r(pvqlropt)",pvqlropt)
: end
------------------------------------------------------------------------------
. matrix pvap0opt = r(pvap0opt)
. matrix pvapiopt = r(pvapiopt)
. matrix pvnybopt = r(pvnybopt)
. matrix pvqlropt = r(pvqlropt)
. *不稳定性下基于VAR模型的Granger因果检验
. gcrobustvar pi u R, pos(1,2) lags(1/4)
Running the Granger Causality Robust Test...
Setting: 
 Variables in VAR: pi u R 
 Lags in VAR:1 2 3 4 
 h is 0 (reduced-form VAR).
 Trimming parameter is .15 
 Constant is included.
 Assuming homoskedasticity in idiosyncratic shocks. 

统计量及其 p 值结果如下:

Results of Granger Causality Robust Test: Lags of u Granger cause pi 
ExpW*,MeanW*,Nyblom*,QLR* -- and their p-values below

                       ExpW      MeanW     Nyblom      SupLR
statistics(pi:u)  9.1974592  17.047538  4.6890489  23.187923
   p-value(pi:u)  .07383773  .05866136  .07939046  .07069996

从 ExpWMeanWNyblomQLR 这 4 个统计量的 p 值可以看出,在 10% 的显著性水平下能够拒绝原假设,故 u 可以 Granger 预测 pi

此外,gcrobustvar 命令还会返回沃氏统计量随时间的变化图,并命名为 gcrobustvar_{被解释变量}_{解释变量},具体如下:

. graph save gcrobustvar_pi_u, replace

3.3 传统与稳健 Granger 因果检验对比

分别以通胀率、失业率、利率作为被解释变量进行传统 Granger 因果检验:

. varsoc pi u R, maxlag(4)
. qui var pi u R, lags(1/4) dfk small
. vargranger

   Granger causality Wald tests
  +--------------------------------------------------------+
  |  Equation   Excluded |     F      df    df_r  Prob > F |
  |----------------------+---------------------------------|
  |        pi          u |  3.1036     4     151   0.0173  |
  |        pi          R |  1.3174     4     151   0.2661  |
  |        pi        ALL |  4.1533     8     151   0.0002  |
  |----------------------+---------------------------------|
  |         u         pi |  1.2337     4     151   0.2990  |
  |         u          R |    3.65     4     151   0.0072  |
  |         u        ALL |  4.5282     8     151   0.0001  |
  |----------------------+---------------------------------|
  |         R         pi |  5.7553     4     151   0.0002  |
  |         R          u |  7.7562     4     151   0.0000  |
  |         R        ALL |   5.298     8     151   0.0000  |
  +--------------------------------------------------------+

传统 Granger 因果检验显示,在 5% 的显著性水平下,pi 可以 Granger 预测 Ru 可以 Granger 预测 RpiR 可以 Granger 预测 u

分别以通胀率、失业率、利率作为被解释变量进行稳健 Granger 因果检验,得到各统计量的 p 值情况整理成表如下:

变量 ExpW MeanW Nyblom QLR
πu 0.07 0.06 0.08 0.07
πR 0.01 0.20 0.03 0.00
uπ 0.20 0.44 0.22 0.08
uR 0.00 0.01 0.02 0.00
Rπ 0.00 0.00 0.00 0.00
Ru 0.00 0.00 0.00 0.00

稳健 Granger 因果检验显示,在 5% 的显著性水平下,R 可以 Granger 预测 pi,但这一点在传统的 Granger 因果检验中无法得出。查看以 R 为被解释变量、pi 为被解释变量时稳健 Granger 因果检验对应的沃氏统计量随时间的变化图:

由图形可知,实际上沃氏统计量在 1980 年第一季度左右超过了 5% 的显著性水平对应的值,因此可以拒绝参数的零假设,证明在 5% 的显著性水平下,R 可以 Granger 预测 pi。但是,传统的 Granger 因果检验无法证明这点。

4. 结语

在实证研究中,常常存在经济变量之间的关系随时间发生改变的现象,即不稳定性。在不稳定性下,传统基于 VAR 模型的 Granger 因果检验可能无效,而采用稳健的 Granger 因果检验可以较有效地解决这一问题。

5. 参考资料

  • Rossi B. Optimal tests for nested model selection with underlying parameter instability[J]. Econometric theory, 2005: 962-990. -PDF-
  • Rossi B, Wang Y. Vector autoregressive-based Granger causality test in the presence of instabilities[J]. The Stata Journal, 2019, 19(4): 883-899. -PDF-
  • Sims C A. Macroeconomics and reality[J]. Econometrica: journal of the Econometric Society, 1980: 1-48. -PDF-

6. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh var granger 因果, m
安装最新版 lianxh 命令:
ssc install lianxh, replace

相关课程

免费公开课

最新课程-直播课

专题 嘉宾 直播/回看视频
最新专题 文本分析、机器学习、效率专题、生存分析等
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
面板模型 连玉君 直击面板数据模型 [免费公开课,2小时]
  • Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。

课程主页

课程主页

关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 连享会-主页知乎专栏,400+ 推文,实证分析不再抓狂。直播间 有很多视频课程,可以随时观看。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法

连享会小程序:扫一扫,看推文,看视频……

扫码加入连享会微信群,提问交流更方便

✏ 连享会-常见问题解答:
https://gitee.com/lianxh/Course/wikis

New! lianxh 命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh