R中的Prewhiten给出“所有时间都包含NA”,但时间序列中没有NA值

时间:2016-02-07 20:07:13

标签: r time-series

我正在使用R中“TSA”包中的函数prewhiten。我收到有关NA值的错误,但我不明白,因为我没有{{1}我的数据中的值。以下是错误消息:

NA

它适用于某些数据文件,但不适用于其他数据文件。当我打印whitedata <- prewhiten(xhr, ypred, mod1) Error in na.omit.ts(as.ts(x)) : all times contain an NA xhr时,我看不到任何ypred值。

两者都是时间序列:

NA

ypred&lt; - ts(数据$ pred_z,start = 1,频率= 10)#convert to time series

奇怪的是,如果我使用不同的模型(一个基于xhr <- ts(data$hr_z,start=1,frequency=10) #convert to a time series 构建的模型)运行它,它运行得很好。我使用的模型是:

ypred

因此,在进入prewhitening之前,似乎正在对数据进行某些操作,并且出现NA值。

是否有任何方法/功能让我检查更详细的内容或让我手动进行预白化?

2 个答案:

答案 0 :(得分:0)

不知道prewhiten功能有什么问题,但您可以手动执行以下操作:

 fitwhite <- fitted(Arima(xhr, model=mod1))
 fitwhite2 <- fitted(Arima(ypred, model=mod1))
 print(ccf(fitwhite, fitwhite2))

答案 1 :(得分:0)

我有同样的问题。我已经尝试过您的方法,但是在以下时间可以使用

library(forecast)
x <- xhr - fitted(Arima(xhr, model = mod1))
y <- ypred - fitted(Arima(ypred, model = mod1))
ccf(x, y)

您也可以这样做:

y <- residuals(Arima(y, model = mod_1))

您可以检查预增白方法是否有效

sum(x - mod1$residuals) < 10^6

How to prewhiten univariate time series?中的答案相同。