我在R中使用MSBVAR包来计算两个变量之间的Granger因果关系。数据和命令与包中使用的相同:
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")
但它给出了相同的结果,第一列被年份取代,我不知道如何用rollapply保存F统计量和P值的结果。
F-statistic p-value
2003.8077 17.63100 0.000000e+00
2003.8269 10.91235 7.134737e-12
请求答复。
答案 0 :(得分:0)
也许你想要这个:
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) <- p