首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >滚动格兰杰因果关系

滚动格兰杰因果关系
EN

Stack Overflow用户
提问于 2015-07-13 18:04:18
回答 1查看 941关注 0票数 0

我在R中使用MSBVAR软件包来计算两个变量之间的格兰杰因果关系。数据和命令与包中使用的相同:

代码语言:javascript
复制
data(IsraelPalestineConflict)
granger.test(IsraelPalestineConflict, p=6)

它提供了以下结果:

代码语言:javascript
复制
              F-statistic  p-value
p2i -> i2p    17.63100     0.000000e+00
i2p -> p2i    10.91235     7.134737e-12

我希望使用此函数应用循环/rollapply,并希望将结果保存在文件中。在看了rollapply上过去的答案后,我试过这样做,但由于我对R并不熟悉,所以不知道如何使它工作。

代码语言:javascript
复制
rollapply(zoo(IsraelPalestineConflict),width=1275,
          FUN = function(t) 
          { t = granger.test(IsraelPalestineConflict, p=6); 
          },
          by.column=FALSE, align="right")

但是它给出了相同的结果,第一列替换为年份,我不知道如何保存结果的F-统计和P-值的rollapply。

代码语言:javascript
复制
             F-statistic  p-value
2003.8077    17.63100     0.000000e+00
2003.8269    10.91235     7.134737e-12

请回答我的问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-13 22:59:03

也许你想要这样

代码语言:javascript
复制
granger.test.c <- function(x) c(granger.test(x, p = 6))
rollapplyr(IsraelPalestineConflict, 1275, granger.test.c, by.column = FALSE )

这将为p= 2、3、4、5创建上述列表:

代码语言:javascript
复制
granger.test.c <- function(x, p) c(granger.test(x, p = p))
p <- 2:5
roll <- function(p, DF) rollapplyr(DF, 1275, granger.test.c, by.column = FALSE, p = p )
L <- lapply(p, roll, DF = IsraelPalestineConflict)
names(L) <- p
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31390356

复制
相关文章

相似问题

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