首页 文章

使用HoltWinters预测进行批量预测

提问于
浏览
0

我'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 回答

  • 0

    尝试将预测存储到列表而不是矩阵 . 而且, 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)
    }
    
  • 0

    即便我也使用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`
    }
    

    试试这个!

  • 0

    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))
    

相关问题