我在R中使用MSBVAR软件包来计算两个变量之间的格兰杰因果关系。数据和命令与包中使用的相同:
data(IsraelPalestineConflict)
granger.test(IsraelPalestineConflict, p=6)它提供了以下结果:
F-statistic p-value
p2i -> i2p 17.63100 0.000000e+00
i2p -> p2i 10.91235 7.134737e-12我希望使用此函数应用循环/rollapply,并希望将结果保存在文件中。在看了rollapply上过去的答案后,我试过这样做,但由于我对R并不熟悉,所以不知道如何使它工作。
rollapply(zoo(IsraelPalestineConflict),width=1275,
FUN = function(t)
{ t = granger.test(IsraelPalestineConflict, p=6);
},
by.column=FALSE, align="right")但是它给出了相同的结果,第一列替换为年份,我不知道如何保存结果的F-统计和P-值的rollapply。
F-statistic p-value
2003.8077 17.63100 0.000000e+00
2003.8269 10.91235 7.134737e-12请回答我的问题。
发布于 2015-07-13 22:59:03
也许你想要这样
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创建上述列表:
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) <- phttps://stackoverflow.com/questions/31390356
复制相似问题