可有偿投稿计量经济圈,计量相关则可ide
邮箱:econometrics666@sina.cn函数
全部计量经济圈方法论丛的do文件都放在社群里,能够直接取出使用运行,也欢迎到研究小组交流访问.学习
今天,咱们“面板数据研究小组”给计量经济圈的圈友引荐一个常常用到的方法——Vector autoregressive regression(VAR)。下一次,在这个VAR基础上,咱们会将此方法延伸到面板数据的VAR,TVP-VAR,FAVAR等前沿模型里,这样就能够用在微观面板数据和大规模宏观数据中去了。3d
在时间序列计量中,咱们已经学习了不少关于(结构)向量自回归模型(VAR),由于这是诺贝尔奖得到者Sims最为人熟知的贡献之一。Sims常常发文反对当前在微观计量中比较流行的因果识别策略,好比IV, Matching, Quasi-experiment等。他认为这些都只是一股脑地在讲单个方程,而不是构造一个联立方程组,毕竟像(S)VAR这样的模型压根不用去看哪一个变量是外生和内生。orm
咱们只须要把全部互相影响的变量都当成内生变量来构建一个联立方程组,而后根据Cholesky分解规则来施行一些限制,来保证咱们可以刚好识别出全部的待估参数。Blanchard & Quah在1990年对VAR模型进行修正,他们尝试给模型加入若干结构性约束,从而能够获得惟一的结构关系,来解决模型对信息的识别问题,从而使脉冲响应具备必定的经济意义。blog
下面这个方程就是VAR(P),里面的yt向量包含了k个变量,咱们只是用了简化的形式来展示VAR方程。Xt到Xt-s是外生变量,Ut是扰动项。所以,这就是一个有k个变量且存在P期滞后因子的通常VAR形式。他是一个reduced form(简约式VAR),即一个变量由本身的滞后项和其余变量的滞后项进行解释,而不包括当期项。这个里面的偏差项在各个方程之间极可能出现相关性。递归的VAR(Recursive VAR)能够保证每一个方程的偏差项与前一个方程的偏差项不存在相关性。递归
为了进行对比,咱们写出结构VAR(SVAR),二者明显的区别在于SVAR中有了其余变量的当期值。SVAR能够转化成简约式VAR,转换过程也比较简单。咱们把Zt方程代入Xt方程里,而后进行简单的移项和合并,就能够获得Xt的表达式,同理,咱们能够把Xt方程代入Zt的表达式,进行相同的操做从而获得Zt的表达式。而后,咱们就获得了Xt和Zt关于他们各自的滞后项和对方滞后项的函数,那就是咱们想要的简约表达式。能够具体参见一下SVAR与VAR的区别:https://blog.stata.com/2016/09/20/structural-vector-autoregression-models/get
若是这个VAR系统是稳定的,也就是说咱们的那个方程组的特征根都位于单位圆内(这个须要看咱们怎么写这个表达式),那咱们能够将上面的VAR模型转换成下面这个向量移动平均(Vector Moving Average)。如今,咱们看不到这k个变量的滞后项,里面的ΣDi表明的是转换方程,然后面的那个Σ表明的是脉冲响应函数。it
若是想要估计出来VAR系统的参数,那么咱们须要保证yt和Xt都是协方差平稳的时间序列数据(Covariance-stationary series),注:这是弱平稳。时间序列数据要协方差恒定,有一个必要条件,就是必需要有一个均值回复水平(mean reverting level),就是说这个数据无论怎么变更都会有一个向均值恢复的倾向。io
对AR(1)模型,均值回复水平=b0/(1-b1)。若是b1=1,则该AR(1)模型不存在均值回复水平,这个时间序列数据也就不知足协方差恒定。所以,作了一个AR(1)模型以后,咱们要用Dickey-Fuller检验来检验斜率系数b1是否显著不等于1 (b1等于1称为单位根)。
也就是说,在作(S)VAR模型的时候,第一前提是对里面牵涉到的变量的开展单位根检验。若是这些变量都服从I(0)过程,那咱们能够直接进行VAR建模。如若否则,咱们就须要对那些不平稳的时间序列变量进行一阶差分(通常而言,数据通过一阶差分以后都会趋向于平稳),而后再进行VAR建模。固然,还有一些伙伴想要对那些平稳的时间序列也差分,由于他们认为要差分就须要对不平稳的和平稳的时间序列都差分。尽管平稳时间序列差分以后可以再次取得平稳性,但差分以后所损失的原始信息会不少,而且增长了额外的估计和解释难度。所以,咱们并不建议对平稳时间序列再进行差分。
对因而否须要VAR系统里的各个变量都是平稳的,这个问题如今大致的倾向是,若是咱们想要作out-of-sample预测,那么咱们须要保证VAR里的变量平稳,否则存在“虚假回归”的可能。若是咱们只是想要获得各个变量间的脉冲响应函数,那么咱们能够没必要要求VAR系统的变量是平稳的。这个在Sims的文章和后面的其余相关文章中有说起到,不过仍然存在着一些争议。咱们仍是但愿圈友们可以在作VAR以前检验一下各个变量的平稳性。
若是你的VAR系统里的变量都服从I(1)过程,那咱们仍是建议你先对这些变量作一个协整检验,好比用Johansen test。其结果将会告诉你,是否咱们应当创建一个VECM模型(Vector error correction model),来把他们之间的长期和短时间的关系联动起来。那就是说,长期而言,好比两个变量有一个稳定的关系,但短时间他们之间的关系能够偏离长期关系,只是后面必须恢复到长期的稳态关系才行。因此,在咱们看来,若是你发现可以使用VECM模型,就优先使用VECM而不是VAR,由于他可以告诉咱们更多的关于两个变量之间的关系。
如今,咱们来看看具体怎么操做VAR或者SVAR模型。
1.选择相关变量,切记根据理论模型选择重要变量,如果变量过多,那会致使咱们待估计的参数过大而出现问题。
2.检查你的数据和尽可能作一些合理的调整,好比对于收入或者股票指数或GDP等这些数据,咱们尽可能取log对数值。
3.检查你的数据是否包含非平稳的部分,经常使用的单位根检验方法是ADF test,在这个检验里面包括三种类型:没有常数项和趋势项,没有常数项但有趋势项,有常数项和趋势项(注:这里咱们就不区分什么漂移项和趋势项了)。由于这三种类型对应着各自不一样的单位根显著性表格,因此根据你的散点图或者直觉看看你的数据类型符合哪一种类型。若是你想要进一步获得核实,可使用PP test再次检验数据中的单位根。
4.选择VAR系统的滞后阶数,这里面的指标包括AIC,BIC,HQ等等,输入指令后窗口会自动告诉你最优的滞后阶数。
5.检验是否存在协整关系,咱们经常使用的就是Johansen test。若是存在协整关系,那么我就选择VECM模型进行回归(实际上,VECM模型与VAR模型差很少是一家人)
6.估计模型,或者VAR或者VECM。
7.回归后的检验,好比咱们用Ljung-Box test等去检验残差是否存在自相关。
8.能够进行预测,获得脉冲响应函数IRF和方差分解函数VDF。
下面咱们来用一个具体的示例来演示VAR的操做思路和步骤。SVAR稍稍有点不一样,但也遵循着一样的步骤和方法。注: SVAR的下一期再细讲。
咱们想要研究一个国家的真实投资、真实消费和真实收入三者之间的关系,用到的数据是从1959年第一季度到2010年第三季度总共207个季度数据。
首先咱们来看看这三者的时间趋势图,从图中能够看出三者有一个Co-movement的过程,而且随着时间向上的趋势是很是明显的。咱们有了关于三者长期关系的直观印象,同时很也认为这个数据极可能是detrended平稳的。下面咱们会分别对三个数据进行单位根检验。
对lrgrossinv进行单位根检验,包括了时间趋势项,发现这个数据是非平稳的。
对lrconsump进行单位根检验,包括了时间趋势项,发现这个数据是非平稳的。
对lrgdp进行单位根检验,包括了时间趋势项,发现这个数据是非平稳的。
如今,咱们对这三个变量进行一阶差分。
对lrgrossinv进行一阶差分以后,咱们发现D.lrgrossinv数据是平稳的。
对lrconsump进行一阶差分以后,咱们发现D.lrconsump数据是平稳的。
对lrgdp进行一阶差分以后,咱们发现D.lrgdp数据是平稳的。
而后,咱们用上面这三个一阶差分后的D.lrgrossinv, D.lrconsump, D.lrgdp变量组建VAR模型,而且还包括外生的真实货币量D.lrmbase。注:这里只展现了第一个关于D.lrgrossinv的回归方程,其余二个关于D.lrconsump和D.lrgdp的方程就没有在这里展现了。从回归方程中,咱们能够看到,暂时性地选择了4阶滞后项。
经过上面的回归以后,咱们再来根据相关标准选择最优的滞后阶数。从下表中,咱们发现大部分信息准则都指向了1阶滞后项,所以咱们在下阶段回归中会用各变量的一阶滞后。
选择一阶滞后项,咱们获得了下表的结果。
咱们能够经过Log-likelihood和信息准则来比较一下选择4阶滞后和1阶滞后的优劣。明显的是下方的那个回归结果好一些,所以1阶滞后是更加好的选择。
咱们再检验一下,是否应该把外生的D.lrmbase包括在VAR系统中来,联合的系数显著性检验代表确实应该把他包括进来。
检验各个内生变量在每一个方程和整个VAR系统中的联合显著性。从下表中咱们能够看到,这里面的内生变量在咱们选择的最优1阶滞后阶数下具备联合显著性。
如今,咱们用格兰杰因果检验来确认是否在这三个变量之间有因果关系。若是根据5%的显著性水平,那咱们能够获得以下因果关系:D.lrconsump和D.lrgdp联合起来是D.lrgrossinv的缘由;D.lrgdp是D.lrconsump的缘由,以及D.lrgdp和D.lrgrossinv联合起来是D.lrconsump的缘由;最后,D.lrgrossinv, D.lrconsump是D.lrgdp的缘由。
如今,咱们能够看看这个VAR系统自身是否是稳定的,由于只有稳定的系统才可以去作预测或者脉冲响应分析。结果显示,这个VAR系统知足平稳性假定。
下面咱们须要展现的是,这三个变量之间的脉冲响应函数。在这里,咱们先集中展现当有来自其余变量的冲击时,另外一个变量随着时间步数所作出的相应反应。Table是脉冲响应函数的具体数字,而Graph是脉冲响应的直观图形。
从这个脉冲响应图形里,咱们发现实际总投资有一个向下方反应的趋势,即来自实际总消费和实际总收入的冲击,在8个季度里最终仍是恢复到平稳状态。实际总投资的调整到位了,他消化了全部来自其余方面的冲击波动,而这偏偏是一个经济系统应当有的状态。
从实际总消费和实际总收入的脉冲响应图中,咱们也获得了相似的结论。即,来自其余变量的外生冲击波对本身的影响会有一个整体上而言不断降低的过程,而且到第8个季度该变量消化吸取了全部的冲击。
接下来,咱们经过方差分解Variance decomposition来看看在这个VAR系统中,究竟是哪个变量对咱们感兴趣的变量的解释力度大(这个是经过预测均方偏差表现的)。这个方差分解表和下面的方差分解图,都很好地代表,实际总投资和总消费对本身的解释力度最大,贡献了预测均方偏差的90%以上。
从实际总收入的方差分解图,咱们能够看出实际总投资对实际总收入的预测偏差变更的贡献力度甚至超过了实际总收入自己。这足以看出实际总投资在这个国家实际总收入的重要性。
咱们实际上也能够作一些稳健性检验,好比当咱们改变Cholesky分解的顺序,那咱们的脉冲响应函数是否有明显不一样的改变呢?
下面这个脉冲相应图中有icy和icy2,其中icy表明咱们上面的那个Cholesky分解顺序,而icy2表明另一种Cholesky分解顺序。咱们发现无论使用哪一种分解顺序,都获得了相似的脉冲响应函数图,所以咱们有理由相信这个结论是可信的。
方差分解图中能够看出,在第二种Cholesky分解中,实际总投资在实际总消费的预测偏差中占的比重增大了。这足以看出Cholesky分解顺序对VAR系统的重要性,所以咱们但愿经济理论可以在VAR系统的识别中起必定的做用。
获得整个VAR系统的估计结果后,咱们能够看看这个模型到底怎么样?下面这个图就是以2006第一季度为起点作的样本内预测(后面8个季度的预测),蓝线表明预测的值,而红线表明实际观测值。从这个图中,咱们能够看出这个模型的长期预测能力还有待改进,由于总体的趋势有错位,出现了早早到达尖峰或迟迟到达峰谷的情形。咱们以为样本内预测作得比较好,那么样本外的预测out-of-sample预测就会值得信赖。
这个模型在样本内预测很差的缘由,极可能是因为这个VAR系统的残差项存在严重的1阶自相关(5%显著性水平)。这代表,我们的AIC,BIC等选择的最优滞后阶数是存在问题的。
若是咱们调整滞后阶数到3,那么这个VAR系统的残差项就不存在自相关了,预测性可能会更好(我们没有再一次去重复以前全部的结果)。
咱们如今来作VECM检验,首先选择最优的滞后阶数。注:这里的滞后阶数是2或者3,与以前选择的滞后阶数1是不一样的,由于以前的那个VAR是先经过4阶滞后阶数回归以后,咱们再作的最优滞后阶数选取的。
而后,咱们用Johansen test来检测这三个变量是否存在协整关系。不管咱们选择滞后阶数是2仍是3,结论都显示这三个变量之间不存在协整关系。
面板数据研究小组各类方法论丛的do file都放在我们的社群,能够直接到社群提取使用。
SVAR模型的示例能够参见: https://blog.stata.com/2016/09/20/structural-vector-autoregression-models/
推荐一篇文章:“Vector Autoregressions” by James H. Stock and Mark W. Watson