向量自回归模型(VAR)及其R语言实现 您所在的位置:网站首页 var值是什么 向量自回归模型(VAR)及其R语言实现

向量自回归模型(VAR)及其R语言实现

2023-08-15 17:15| 来源: 网络整理| 查看: 265

最近在写向量自回归的论文,无论是百度还是Google,都没能找到特别合适的R环境下中文资料,大都是Eviews做出来的。所以写这么一篇blog来分享下自己的经验。 注:本文着重介绍VAR的R实现,具体学术性质的东西请参阅相关学术论文。

VAR的定义:

自行Google,很详细,也很简单

VAR模型的用途:

主要是预测分析和内生变量间影响状况分析。

VAR的主要步骤:

(个人拙见,不是标准模板)

选择合适的变量Granger因果检验,进一步观察变量间的关联性,最好做双向检验,不过也有人说单向就足够了,这就人之间人智者见智了选择VAR模型滞后阶数拟合VAR模型诊断性检验:包括系统平稳性检验、正态性检验、序列相关误差等脉冲响应分析方差分解预测分析 各个步骤在R中的实现方法:

R中有个叫“vars”的package,主要用来做向量自回归分析,所以先安装并加载该包:

install.packages(vars) library(vars)

1.选择变量 根据理论分析选择出相关联的变量,不多说。 2.Granger因果检验 vars包里面有个专门做格兰杰因果检验的函数:

causality(x, cause = NULL, vcov.=NULL, boot=FALSE, boot.runs=100)

另外还有一个适用于普通线性回归模型的Granger test的函数:

grangertest(x, y, order = 1, na.action = na.omit, ...)

这两个函数最直接的区别在于,第二个不用拟合VAR模型即可使用,而第一个必须在拟合VAR模型之后使用。 3.选择合适的滞后阶数 没有一个定论,主要是通过不同信息准则选择出合适的结果,且最好选择最简阶数(也就是最低阶数)。 相关函数:

VARselect(y, lag.max = 10, type = c("const", "trend", "both", "none"), season = NULL, exogen = NULL)

函数会return一个结果,分别是根据AIC、HQ、SC、FPE四个信息准则得出的最优阶数。 4.拟合VAR模型

var(x, y = NULL, na.rm = FALSE, use)

5.诊断性检验 也就是检验模型的有效性。 系统平稳性:

stability(x, type = c("OLS-CUSUM", "Rec-CUSUM", "Rec-MOSUM", "OLS-MOSUM", "RE", "ME", "Score-CUSUM", "Score-MOSUM", "fluctuation"), h = 0.15, dynamic = FALSE, rescale = TRUE)

这里使用“OLS-CUSUM”,它给出的是残差累积和,在该检验生成的曲线图中,残差累积和曲线以时间为横坐标,图中绘出两条临界线,如果累积和超出了这两条临界线,则说明参数不具有稳定性。 结果如下图: 这里写图片描述 说明系统稳定。 正态性检验:

normality.test(x, multivariate.only = TRUE)

序列相关误差检验:

serial.test(x, lags.pt = 16, lags.bg = 5, type = c("PT.asymptotic", "PT.adjusted", "BG", "ES") )

6.脉冲响应分析 脉冲响应分析,直白的来说就是对于某一内生变量对于残差冲击的反应。具体而言,他描述的是在随机误差项上施加一个标准差大小的冲击后对内生变量的当期值和未来值所产生的影响。

irf(x, impulse = NULL, response = NULL, n.ahead = 10, ortho = TRUE, cumulative = FALSE, boot = TRUE, ci = 0.95, runs = 100, seed = NULL, ...)

示例:

var


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有