在滑动窗口上应用统计测试

von*_*njd 2 statistics r rollapply

在动物园物体的滚动窗口上应用函数通常是非常直接的,例如移动平均值:

z <- zoo(1:10, as.Date(31:40))
rollapply(z, 4, mean, align="right")
Run Code Online (Sandbox Code Playgroud)

现在我想用统计测试做同样的事情,即在每个窗口上应用Augmented Dickey-Fuller测试并得到测试统计量,就像我在上面的例子中得到的那样.

所以基本上我正在寻找相当于下面的一段代码(当然这不起作用!):

rollapply(z, 4, ADF.test, align="right")
Run Code Online (Sandbox Code Playgroud)

Vin*_*ynd 6

以下适用于我.

library(zoo)
library(tseries)
z <- zoo(rnorm(100), as.Date(1:100))
rollapplyr(z, 20, adf.test)
Run Code Online (Sandbox Code Playgroud)

如果你只想要p值:

rollapplyr(z, 20, function(u) adf.test(u)$p.value)
Run Code Online (Sandbox Code Playgroud)