我想知道是否有办法在给定的时间间隔内进行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)