2017-07-27 52 views
0

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

rollapply(data, 20, FUN = mean) 

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

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

注意:adf.test()来自名为“tseries”的库。

任何人都可以解释为什么这是行不通的?我收到以下错误。

错误dimnames(x)的< - DN: 长度 'dimnames'[2]不等于阵列程度

我非常感谢任何反馈的!

回答

1

我用下面的代码和它开始工作:

adftest <- function(x) 
{ 
    adfPvalue <- adf.test(x)$p.value 
    adfPvalue 
} 

PValue <- function(x) { 
    Pvalue <- rollapply(x, N, adftest) 
    Pvalue 
} 

PValue(out) 
0

如何:

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

我试过,我得到了以下错误消息: 错误动物园(RVAL,指数( x)[i]): “x”:试图定义无效的动物园对象 – blackknight316

+0

你的'rval'是什么?它是一列还是一个矢量? – AK88

+0

什么是rval?我对此很新。 – blackknight316