自己造轮子————向量自回归模型VAR_基于Stata
还是更喜欢任务导向式地学语言,系统性从头到尾真记不住,正巧来干一下VAR
对VAR模型的粗浅理解
这里看了一位csdn博主的解释,感觉豁然开朗
他以黄金现货的价格为例,传统的时间序列模型,比如 ARIMA、ARIMA-GARCH 等关注的是价格自身的变化,模型里都是价格自身的滞后项,而 VAR 模型除了分析自身滞后项的影响外,还分析其他相关因素的滞后项对未来值产生的影响
设置时间序列
1 |
|
数据的平稳性
时间系列数据很重要的一点是一定要平稳,不然容易出现伪回归现象, VAR 更是要求所有的变量要同阶协整,如果某变量的数据不平稳,就要全体做差分,一直到平稳为止
1 |
|
命令会返回一个p-value,即p值,如果检验的p值小于某个显著性水平(如0.05),则可以拒绝存在单位根的原假设,认为序列是平稳的。如果p值较大,则不能拒绝存在单位根的原假设,序列可能是非平稳的。
差分
不平稳的状况下就需要进行差分
1 |
|
注意,对一个变量差分n阶之后平稳,那么其他变量也要差分n阶之后再进行平稳性检验
接下来,因为数据进行差分之后才平稳,所以要进行协整检验(如果原始数据就平稳,那就不需要差分,也不需要协整检验,直接格兰杰检验即可)
协整检验
这里使用的是 Engle-Granger 两步法:
首先,对每个时间序列进行单位根检验,确认它们是非平稳的。
然后,对这些非平稳的时间序列进行回归分析,得到残差序列。
最后,对残差序列进行单位根检验。如果残差序列是平稳的,则表明原时间序列之间存在协整关系。
1 |
|
协整检验的结果会返回一个 Test Statist 的值以及 1% 5% 10% 的 Critical Value
Test Statist 小于 5% 对应的 Critical Value 则拒绝原假设,认为是通过检验,可以进行后续的模型分析
确定最优滞后阶数
1 |
|
此命令会返回一个表格,表格中*最多的那一行对应的阶数,就是最优滞后阶数
注意,样本量少的时候滞后阶数不能太大,滞后阶数大会导致不足以估计模型
建立VAR模型
1 |
|
单位元检验
1 |
|
此命令会画一个图,点都在单位元里面,则说明变量是稳定的,可以进行后续的脉冲响应和方差分解
格兰杰检验
格兰杰检验只说明统计上是否存在因果关系
1 |
|
返回的表格中, Prob 小于0.05,则拒绝原假设(不存在格兰杰因果关系),所以,找 Prob<0.05 的,其对应的 Excluded 就是 Equation 的因果原因,可以用 Excluded 的过去值来预测 Equation 的未来值
注意,解释变量对被解释变量的格兰杰因果检验通过,则可以进行脉冲分析
脉冲响应分析
1 |
|
合格的脉冲响应图最后是趋于 0 的,表示冲击最后会消失。重要的是相应的剧烈程度和相应从出现到消失的时间
方差分解
分析每一个结构冲击对内生变量变化的贡献,通过方差大小评价每一个冲击变量的重要性
1 |
|
方差分解图展示了解释变量对被解释变量的变动,在不同的时间期数,的贡献程度
预测
1 |
|