首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在`colnames<-`(`*tmp*`,value = c("x","y","x_1","x_2","y_1",:‘dimname’[2]的长度不等于面板数据的数组范围)中出错

在`colnames<-`(`*tmp*`,value = c("x","y","x_1","x_2","y_1",:‘dimname’[2]的长度不等于面板数据的数组范围)中出错
EN

Stack Overflow用户
提问于 2018-04-12 03:04:41
回答 1查看 234关注 0票数 0

在尝试使用plm包中的pgrangertest函数对面板数据运行格兰杰因果关系测试时,我遇到了上述错误。我读了几个遇到类似问题的用户的问题,并尝试了那里给出的建议,但是,没有一个能解决我的问题。

本质上,我有一个面板数据,看起来像这样:

代码语言:javascript
复制
>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因果关系测试,在执行此操作时,我遇到了以下问题:

代码语言:javascript
复制
> 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

我甚至阅读了函数的源代码,并试图理解错误来自何处,来自何处,但我无法弄清楚。

EN

回答 1

Stack Overflow用户

发布于 2018-08-05 04:46:46

面板格兰杰检验要求每个个体具有长度为5+3*order的时间序列,否则个体Wald统计量的二阶矩不存在。plm包中的pgrangertest对该包的1.7-0版本进行了检查。来自它的新闻文件:

  • pgrangertest:更好地检测由于缺乏数据而导致的测试不可行。

如果您为个人提供的时间序列太短,它会给出一条信息性错误消息,例如:

pgrangertest中出现

错误(inv~ value,data = pG,order = 1):并非所有个人都满足test = "Ztilde“的条件:时间序列的长度必须大于5+3*order (>5+3*1=8)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49782695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档