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)

 

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

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值