【问题标题】:Batch forecasting using HoltWinters forecast使用 HoltWinters 预测进行批量预测
【发布时间】:2015-10-27 20:45:52
【问题描述】:

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

【问题讨论】:

    标签: r functional-programming batch-processing forecasting holtwinters


    【解决方案1】:

    尝试将您的预测存储到列表而不是矩阵。此外,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)
    }
    

    【讨论】:

      【解决方案2】:

      即使我也在为 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`
      }
      

      试试这个!

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2017-07-31
          • 1970-01-01
          • 2018-11-23
          • 2017-01-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多