【问题标题】:Trying to auto.arima forecast volume of multiple time series尝试 auto.arima 预测多个时间序列的量
【发布时间】:2016-05-09 22:20:42
【问题描述】:

我正在尝试使用 auto.arima 预测多个时间序列,并在数据帧中输出单位。

我有这个样本数据集:

Name <- c(rep("Tom",24),
  rep("Jake",12),
  rep("Jill",12))
Product <- c(rep("Orange",12),rep("Apples",12),
     rep("Orange",12),rep("Apples",12))
Quarter <- c(rep(c("2013-03-31","2013-06-30","2013-09-30","2013-12-31",
     "2014-03-31","2014-06-30","2014-09-30","2014-12-31",
     "2015-03-31","2015-06-30","2015-09-30","2015-12-31"),4))
Units <- c(1200,1500,1800,2600,1300,1500,1700,2600,1300,1700,1900,2700,300,400,800,900,
     250,400,600,700,200,300,0,0,100,250,500,600,90,200,400,450,50,0,0,0,1200,0,0,0,
     1500,1700,1800,2600,1600,1900,2000,3000)
data <- cbind(Name,Product,Quarter,Units)
data <- as.data.frame(data)
data$Name_Product <- paste(data$Name,data$Product)
data <- select(data,Quarter,Units,Name_Product)
data <- spread(data,Name_Product,Units)
data2 <- ts(data[,-1], frequency=4, start=2013)

我正在尝试使用以下脚本按名称和产品预测上述批次数据:

h <- 12
ns <- ncol(data)

arimaforecast <- matrix(NA, nrow=h, ncol=ns)
for (i in 1:ns){
   arimaforecast[,i] <- forecast(auto.arima(data2[,i]), h=h,)$mean}

我的问题是我不断收到错误“'[.default'(data2, , i) 中的错误:下标超出范围”,并且无法创建类似于使用 Rob Hyndman 的 forecast() 函数的预测批量预测方法,但使用 auto.arima 函数

我不确定从这里去哪里,或者我是否使用了正确的方法。任何帮助表示赞赏,谢谢!

【问题讨论】:

    标签: r forecasting


    【解决方案1】:

    更改这行代码:

    ns <- ncol(data)
    

    到:

    ns <- ncol(data2)
    

    您的循环循环遍历原始 data.frame 中的 5 列,而不是新时间序列矩阵中的 4 列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-18
      • 1970-01-01
      • 2016-07-03
      • 1970-01-01
      • 2023-03-14
      • 2020-04-14
      • 2022-10-24
      • 2020-02-08
      相关资源
      最近更新 更多