2017-07-27 57 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