r语言 - 使用滚动应用的 ADF 测试



我想知道是否有办法在给定的时间间隔内进行ADF测试。下面是我计算每 20 个样本的平均值的示例:

rollapply(data, 20, FUN = mean)

我想使用相同的逻辑,每 20 个样本运行 ADF 测试。因此,我使用了以下代码:

n = 24
test <- rollapply(spreadClose, n, FUN = adf.test)

注意:adf.test(( 来自名为 "tseries" 的库。

谁能解释为什么这不起作用?我收到以下错误。

dinames(x( 中的错误 <- dn : "暗名"[2] 的长度不等于数组范围

我非常感谢任何反馈!

我使用以下代码并开始工作:

adftest <- function(x)
{
adfPvalue <-  adf.test(x)$p.value
adfPvalue
}
PValue <- function(x) {
Pvalue <- rollapply(x, N, adftest)
Pvalue
}
PValue(out)

这个怎么样:

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

最新更新