在动物园物体的滚动窗口上应用函数通常是非常直接的,例如,移动平均线:
z <- zoo(1:10, as.Date(31:40))
rollapply(z, 4, mean, align="right")
现在我想用统计测试做同样的事情,即在每个窗口上应用Augmented Dickey-Fuller test并得到测试统计量,就像我在上面的例子中得到的那样。
所以基本上我正在寻找相当于以下代码的代码(当然这不起作用!):
rollapply(z, 4, ADF.test, align="right")
答案 0 :(得分:6)
以下适用于我。
library(zoo)
library(tseries)
z <- zoo(rnorm(100), as.Date(1:100))
rollapplyr(z, 20, adf.test)
如果您只想要p值:
rollapplyr(z, 20, function(u) adf.test(u)$p.value)