R语言做面板VAR例子

面板VAR步骤:

(1)对各变量做平稳性检验(IPS、PP、ADF、LLC等方法检验)

是逐个变量检验??还是一起检验??

(2)面板数据的最优滞后阶数确定(AIC和SIC方法)

(3)在PVAR系统中进行Wald-Granger检验

(4)面板VAR估计

(5)脉冲效应

(6)面板方差分解

R语言例子:

文件pvar.csv数据结构如下:

数据包括4个内生变量("income","tax","inds","invest")、4个外生变量("cons","fin","open","profit"))以及2个指示变量("id"、“year”),两个指示变量分别为id和year分别标记样本数据点对应的地区和年份。

代码步骤:

1.读入数据文件,加载plm包

###读取外部数据pvar.csv,保存为.CSV格式的数据
data=read.csv("pvar.csv",head=T,sep=",")
 
###加载plm包
library(plm)
2.转换成plm包可识别的面板数据格式 

###使用pdata.frame()函数将外部读取的数据转换为plm包可以识别的面板格式,
使用index参数标记名为id和year的列,分别对应地区和时间。
注意,新版的plm包已经不再支持plm.data()函数来生成面板格式的数据,
基于plm包的其它包必须使用pdata.frame()生成可识别的面板格式的数据
 
pdata=pdata.frame(data,index=c("id","year"))
3.检验各个变量的平稳性,例如income变量

###使用plm包中的purtest()进行面板数据的平稳性检验。
其中,参数object设定待检验变量;
exo参数设定是否包含截距项和趋势项,使用“intercept”和“trend”进行定义;
test参数定义面板平稳性检验的方法,包括常用的IPS方法,该函数指定了5种不同的面板平稳性检验方法
lags参数定义信息准则,作为滞后标准,使用“AIC”和“SIC”进行定义;
pmax参数定义最大滞后期;
purtest(object=pdata[,3],exo="intercept",test="ips",lags="AIC",pmax=4)
 

P值小于0.05,说明income变量序列平稳。

4.加载进行面板VAR模型估计所用的包

###加载panelvar包进行面板VAR模型的估计,其中包括OLS估计方法和GMM估计方法。
library(panelvar)
5.用pvargmm()函数进行GMM-PVAR模型的分析

注:不知道怎么用R语言确定面板数据最优滞后阶数

###使用pvargmm()函数进行GMM-PVAR模型的分析。
其中,data参数定义数据集;
dependent_vars参数定义内生变量,使用c()函数限定data数据集中的内生变量的变量名,注意字符必须使用“”;
exog_vars参数定义外生变量,使用c()函数限定data数据集中的外生变量的变量名,注意字符必须使用“”;
lags参数定义滞后期; 
transformation参数定义GMM模型的类型,包括水平模型和差分模型;
steps参数定义GMM模型的估计程序,包括一步估计、两步估计和多步估计;
max_instr_dependent_vars以及 max_instr_predet_vars定义GMM模型工具变量的滞后期,我们按照面板GMM的常规设置,设为99期。
gmmlag5=pvargmm(dependent_vars=c("income","tax","inds","invest"),data=pdata,lags=5,exog_vars=c("cons","fin","open","profit"),transformation="fd",steps="twostep",max_instr_dependent_vars=99,max_instr_predet_vars=99)
gmmlag5
内生变量均当一次因变量,再加上外生变量(自变量) 

 

上表中:***代表 p < 0.001, **代表 p < 0.01, *代表 p < 0.05

6.对GMM估计结果进行过度识别检验(对于GMM估计,使用hansen_j_test()函数检验是否过度识别)

如果使用2sls估计估计,则用Sargan’s(1958)和Basman’s(1960)卡方统计量,这也是Wooldridge’(1995)稳健得分检验。如果采用liml估计方法,则用Anderson and Rubin’s(1950) 卡方统计量以及Basmann F统计量;如果采用GMM估计,则用hansen’s(1982)J统计量。

过度识别检验用来检验模型工具变量是否为外生变量。其原假设是:工具变量是外生的。若拒绝原假设,则说明存在工具变量与扰动项相关。

###使用hansen_j_test()函数对GMM估计结果进行过度识别检验
hansen_j_test(gmmlag5)
 

结果P值大于0.05,说明接受原假设,即模型选择的工具变量时外生的,这符合工具变量选择要求。

7.对VAR估计结果进行稳定性检验

###使用stability()函数对VAR估计结果进行稳定性检验
stability(gmmlag5)

所有特征值均在单位圆内,说明模型稳定。 

8.使用oirf()函数进行脉冲响应分析

###使用oirf()函数进行脉冲响应分析,$income为income是冲击变量,下面的数据框为对应变量的响应值。
oirf(gmmlag5,n.ahead=10)

上表为四个内生变量分别作因变量时,其他变量对因变量的脉冲响应值。
 

  • 5
    点赞
  • 4
    评论
  • 39
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页