在预测之前将动物园转换为ts

时间:2013-09-17 18:05:37

标签: r time-series zoo

我正在努力将zoo个对象转换为ts个对象。

我有一个巨大的data.frame“test”,其中包含季度小时数据,如下所示:

date <- c("2010-07-04 09:45:00", "2010-07-04 10:00:00", "2010-07-04 10:15:00", "2010-07-04 10:30:00", "2010-07-04 10:45:00", "2010-07-04 11:00:00")
nrv <- c("-147.241", "-609.778", "-432.289", "-340.418", "-73.96" ,  "-533.108")
tt <- c("3510.7", "3608.5", "3835.7", "4003.7", "4018.8", "4411.9")
test <- data.frame(date,nrv,tt)
test

我想做一些预测(主要是ARIMA),并认为forecast包对此是一个好主意。 我首先从字符中形成了数据。

test$date <- strptime(test$date,format="%Y-%m-%d %H:%M")
test$nrv <- as.numeric(as.character(test$nrv))
test$tt <- as.numeric(as.character(test$tt))
str(test) #date is POSIXlt object

由于我需要进行插值并构造滞后,我还使用zoo包使用日期变量作为索引,这非常有用。在处理时间序列数据时,我向我推荐了`zoo包。

library(zoo)
test.zoo <- zoo(test[,2:3],test[,1])
test.zoo #date is now the Index and and the zoo objects works nicely

但后来我意识到预测似乎只适用于ts个对象。 (这是真的吗?)

当我尝试将zoo对象转换为ts对象时,我的时间索引消失了。我想这可能是因为没有使用合适的频率。但是,我对这个数据集的工作频率以及一般ts个对象有点遗失。

test.ts <- as.ts(test.zoo)
test.ts

如何将此zoo对象转换回我可用于预测的ts对象? 谢谢!

2 个答案:

答案 0 :(得分:3)

预测包仅适用于您怀疑的ts个对象。

您可以将test.ts与预测包一起使用。例如

plot(forecast(test.ts[,1]))

答案 1 :(得分:2)

我有同样的问题并使用zooreg函数解决了它。 step1:使用zooreg将动物园对象转换为非动物园,但是类似于objet step2:使用ts函数进一步转换为ts对象