R语言向量自回归模型(VAR)及其实现|附代码数据

发布时间 2023-09-13 17:44:44作者: 拓端tecdat

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

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

 最近我们被客户要求撰写关于向量自回归模型(VAR)的研究报告,包括一些图形和统计输出。

澳大利亚在2008 - 2009年全球金融危机期间发生了这种情况。澳大利亚政府发布了一揽子刺激计划,其中包括2008年12月的现金支付,恰逢圣诞节。因此,零售商报告销售强劲,经济受到刺激。因此,收入增加了。

VAR面临的批评是他们是理论上的; 也就是说,它们不是建立在一些经济学理论的基础上,这些理论强加了方程式的理论结构。假设每个变量都影响系统中的其他变量,这使得估计系数的直接解释变得困难。尽管如此,VAR在几种情况下都很有用:

  1. 预测相关变量的集合,不需要明确的解释;
  2. 测试一个变量是否有助于预测另一个变量(格兰杰因果关系检验的基础);
  3. 脉冲响应分析,其中分析了一个变量对另一个变量的突然但暂时的变化的响应;
  4. 预测误差方差分解,其中每个变量的预测方差的比例归因于其他变量的影响。

示例:用于预测美国消费的VAR模型

 
 
 
VARselect(uschange[,1:2], lag.max=8,
type="const")[["selection"]]
#> AIC(n) HQ(n) SC(n) FPE(n)
#> 5 1 1 5

 

R输出显示每个信息标准选择的滞后期。由AIC选择的VAR(5)与BIC选择的VAR(1)之间存在很大差异。因此,我们首先拟合由BIC选择的VAR(1)。

 
 
var1 <- VAR(uschange[,1:2], p=1, type="const")
serial.test(var1, lags.pt=10, type="PT.asymptotic")
var2 <- VAR(uschange[,1:2], p=2, type="const")
serial.test(var2, lags.pt=10, type="PT.asymptotic")

 

与单变量ARIMA方法类似,我们使用Portmanteau测试残差是不相关的。VAR(1)和VAR(2)都具有一些残差序列相关性,因此我们拟合VAR(3)。

 
 
var3 <- VAR(uschange[,1:2], p=3, type="const")
serial.test(var3, lags.pt=10, type="PT.asymptotic")
#>
#> Portmanteau Test (asymptotic)
#>
#> data: Residuals of VAR object var3
#> Chi-squared = 34, df = 28, p-value = 0.2

 

该模型的残差通过了序列相关性检验。VAR(3)生成的预测如图所示。

 
 
forecast(var3) %>%
autoplot() + xlab("Year")

 

 


最受欢迎的见解

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模型进行时间序列预测