R语言-向量自回归模型VAR的实现

向量自回归模型VAR是计量经济学中的一个概念,用于多元时间序列相关关系的分析。详细概念我就不赘述了,具体的定义和技术流程可以看计量经济学的相应书籍、人大经济论坛的视频或者是公众号“财经节析”的介绍。这个模型的建立和脉冲分析等一般都是用Eviews软件或stata软件来完成。R语言中也有相应的包,我前段时间用这个包写了一些实现代码。

在下面的VAR模型中,我只给了一个变量(aba)的示例。

install.packages("urca") #平稳性检验包
install.packages("vars") #var包
library(urca)
library(MASS)
library(sandwich)
library(strucchange)
library(vars)

#设置工作文件夹
#setwd("D:/test")

#读取数据
data<-read.csv("F:/2017.csv")  #读取数据
aba<-data[,2] #将data数据的第2列赋值给aba数据框
...

#建立时间序列的日期列,将数据转化为时间序列
aba.ts<-ts(aba,start=c(2016,10,6),end=c(2017,11,4),freq=395) #日期从2016.10.6-2017.11.4,总共395天
...

#绘制波动图
plot(aba.ts,type="l",xlab="Date", ylab="aba")  
...

#平稳性检验
#在平稳性检验之前需要取对数,以消除时间序列的异方差的影响
lnaba<-log(aba)
...

#判断是否平稳主要看详细拟合结果的最后两个部分
urt.lnaba<-ur.df(lnaba,type='trend',selectlags='AIC')
summary(urt.lnaba)
...

#建立VAR模型
data.new<-data.frame(
 aba.ts,...
  
   )  #合并数据
VARselect(data.new,lag.max=10,type="const")  #在10以内选择最优滞后阶数
#根据结果不同的信息准则有不同的滞后阶数,一般来说选择在相同条件下更加简洁的模型。

#在确定好最优滞后阶数以后我们就可以拟合模型
#格兰杰因果检验
var<-VAR(data.new,p = 1,lag.max=6,ic="AIC")
causality(var, cause = "aba.ts")$Granger

 

你可能感兴趣的:(R语言,R,VAR)