我'm using Rob Hyndman'的批量预测方法来预测 dataframe
中的多个列 . 我的代码如下:
require(forecast)
zips <- read.csv(file.choose(), header = T)
zips <- zips[,-c(1,2)]
ns <- ncol(zips)
zips <- ts(zips, frequency = 12, start = c(2005,1), end = c(2014,12))
zips <- HoltWinters(zips, seasonal = "mult")
h <- 24
fcast <- matrix(NA, nrow=h, ncol=ns)
for(i in 1:ns) {
fcast[,i] <- forecast.HoltWinters(zips[,i], h=h)
}
write(t(fcast), file="fcast.csv", sep=",",ncol=ncol(fcast))
虽然它在使用常规 forecast
函数时工作得很好,但我一直收到错误
[拉链[,i]错误:维数不正确]
如何使用我在此构建的循环来运行 HoltWinters
预测?
3 回答
尝试将预测存储到列表而不是矩阵 . 而且,
forecast.HoltWinters
函数需要类HoltWinters
的对象,该对象由HoltWinters
函数生成,该函数需要向量作为输入 . 除了点预测,默认情况下forecast.HoltWinters
函数也会产生预测区间界限 .即便我也使用Holts Winter预测方法进行类似的批量处理,但我使用Rob J Hyndman教授创建的预测包中的hw函数 . 无论如何,对于你的问题,我更喜欢在预测中使用
$mean
. 即试试这个!
hw()
函数无论如何都会给出预测值 . 要获得点预测,您可以使用$mean
(如以下代码中所使用的) . 你也可以使用seasonal = "additive"
或seasonal = "multiplicative"
参数 .祝好运
最好