首页 > 编程知识 正文

pvar模型是什么,pvar面板向量自回归

时间:2023-05-06 14:12:58 阅读:267785 作者:3382

这次研究了一个问题,要用PVAR(面板向量自回归模型),在网上找的教程基本上都是Stata或者Eviews的教程,而鲜有R实现PVAR的教程,这里总结分享一下我摸索的PVAR用R实现的整个过程。码字不易,喜欢请点赞!!!谢谢

使用R来实现PVAR用到的包是panelvar,panelvar的文档下载链接:

https://cran.r-project.org/web/packages/panelvar/panelvar.pdf

1.数据样式

其中Code和Date两列是面板时间序列索引。

2.使用plm包的pdata.frame将dataframe数据转成面板dataframe

library(plm)##使用pdata.frame()函数将外部读取的数据转换为plm包可以识别的面板格式,##使用index参数标记名为Code和Date的列,分别对应股票代码和时间pdata=pdata.frame(data,index=c("Code","Date"))

3.面板数据平稳性检验

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

平稳性检验结果若p值小于0.05,则表示平稳

4.使用panelvar包的pvargmm函数进行GMM-PVAR分析以及确定最优滞后期

library(panelvar)##data参数定义数据集;##dependent_vars参数定义内生变量;##exog_vars参数定义外生变量;##lags参数定义滞后期; ##transformation参数定义GMM模型的类型,包括水平模型和差分模型(First-difference "fd" or forward orthogonal deviations "fod");##steps参数定义GMM模型的估计程序,包括一步估计、两步估计和多步估计;##max_instr_dependent_vars以及 max_instr_predet_vars定义GMM模型工具变量的滞后期,我们按照面板GMM的常规设置,设为99期。gmmlag = pvargmm(dependent_vars=c("sentiment","heat","Guba","XQ","BCI"),data=pdata,lags=5,exog_vars=c("Count","Value"), transformation="fd",steps="twostep",max_instr_dependent_vars=99)

注:一般VAR和SVAR都是先确定最优滞后阶数然后再进行模型模拟,但是R使用panelvar包实现PVAR时,需要先使用模型模拟,然后使用Andrews_Lu_MMSC函数计算模型拟合结果的AIC、BIC、HQIC值,从而比较不同滞后阶数的准则值来得到最优滞后阶数。

Andrews_Lu_MMSC(gmmlag)

5.模型估计结果过度识别检验

##原假设:工具变量是外生的。##若拒绝原假设,则说明存在工具变量与扰动项相关。hansen_j_test(gmmlag)

6.稳定性检验

stability(gmmlag)

7.脉冲响应分析

##使用oirf()函数进行脉冲响应分析oirf(gmmlag,n.ahead=10)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。