在尝试使用plm包中的pgrangertest函数对面板数据运行格兰杰因果关系测试时,我遇到了上述错误。我读了几个遇到类似问题的用户的问题,并尝试了那里给出的建议,但是,没有一个能解决我的问题。
本质上,我有一个面板数据,看起来像这样:
>head(granger_data)
panel_id time_id close_close_ret log_volume
25-2 25 2 0.004307257 4.753590
25-3 25 3 -0.001912046 8.249836
25-4 25 4 0.011417821 8.628377
25-5 25 5 0.018744691 9.134754
25-6 25 6 -0.024913157 8.920122
25-7 25 7 -0.008604260 8.724370
str(granger_data)
'data.frame': 105209 obs. of 4 variables:
$ panel_id : Factor w/ 938 levels "25","26","27",..: 1 1 1 1 1 1 1 1 1 1 ...
$ time_id : Factor w/ 323 levels "1","2","3","4",..: 1 2 3 4 5 6 7 8 9 10 ...
$ close_close_ret: num NA 0.00431 -0.00191 0.01142 0.01874 ...
$ log_volume : num 4.88 4.75 8.25 8.63 9.13 ...现在,我想使用plm包中的pgrangertest函数对拼板数据运行granger因果关系测试,在执行此操作时,我遇到了以下问题:
> vol_ret <- pgrangertest(log_volume ~ close_close_ret,data = granger_data)
Error in `colnames<-`(`*tmp*`, value = c("x", "y", "x_1", "y_1")) :
length of 'dimnames' [2] not equal to array extent我甚至阅读了函数的源代码,并试图理解错误来自何处,来自何处,但我无法弄清楚。
发布于 2018-08-05 04:46:46
面板格兰杰检验要求每个个体具有长度为5+3*order的时间序列,否则个体Wald统计量的二阶矩不存在。plm包中的pgrangertest对该包的1.7-0版本进行了检查。来自它的新闻文件:
如果您为个人提供的时间序列太短,它会给出一条信息性错误消息,例如:
pgrangertest中出现
错误(inv~ value,data = pG,order = 1):并非所有个人都满足test = "Ztilde“的条件:时间序列的长度必须大于5+3*order (>5+3*1=8)
https://stackoverflow.com/questions/49782695
复制相似问题