r-使用HoltWinters预测的批量预测



我使用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预测?

尝试将您的预测存储到列表中,而不是矩阵中。而且,forecast.HoltWinters函数需要HoltWinters类的对象,该对象由需要向量作为输入的HoltWinters函数产生。除了点预测之外,默认情况下,forecast.HoltWinters函数还会生成预测区间边界。

fcast <- list()
for(i in 1:ns) {
  zips_fit <- HoltWinters(zips[, i], seasonal = "mult")
  fcast[[i]] <- forecast.HoltWinters(zips_fit, h = h)
}

即使我也在Holts Winter预测方法中使用类似的批处理,但我使用Rob J Hyndman教授创建的预测包中的函数hw。无论如何,对于你的问题,我更喜欢在预测中使用$mean。即

fcast <- matrix(NA, nrow=h, ncol=ns) 
for(i in 1:ns) {
    fcast[,i] <- forecast.HoltWinters(zips[,i], h=h)`$mean`
}

试试这个!

hw()函数无论如何都会给出预测值。要获得积分预测,您可以使用$mean(如以下代码中所用)。您也可以使用seasonal = "additive"seasonal = "multiplicative"参数。

祝好运

最佳

require(forecast)
    zips <- read.csv(file.choose(), header = T)
    zips <- ts(zips, frequency = 12, start = c(2005,1), end = c(2014,12))
    ns <- ncol(zips)
    h <- 24
    fcast <- matrix(NA, nrow=h, ncol=ns)
    for(i in 1:ns) {fcast[,i] <- hw(zips[,i],h=h)$mean
    }
    write(t(fcast), file="fcast.csv", sep=",",ncol=ncol(fcast))

相关内容

  • 没有找到相关文章

最新更新