For循环生成多个Holt-Winters预测?

时间:2019-05-15 21:23:23

标签: r

我有一个有效的Holt-Winters功能,该功能可以根据一种产品的3年数据预测52个周期。我想将相同的代码应用于2000多种产品。我无所不在,无法成功复制所需的for循环。这个想法是生成那些2000年的预测,并将predict()函数的输出(拟合)添加到一个数据帧中,在那里我可以拥有2000个输出列,任何帮助将不胜感激:)

以下循环仅适用于一个时间序列/产品/列,但是由于时间范围总是空着,所以我无法将结果添加到时间范围

这里是我的数据示例,有156行,因为这是每周数据:

Time Series Prod1   Prod2   Prod3   Prod4   Prod5
1   1   1   1   1   1
2   1   1   1   1   1
3   1   75  1   1   14
4   52  51  78  62  5
5   30  52  1   25  10
6   27  25  26  50  1
7   25  25  27  25  61
8   65  25  12  75  32
9   24.8    20.8    0.8 20  28
.....

这是我的代码:

for(b in 2:4){
###converting data to time series###
  TSTEST=ts(Test_Data_for_HW_CSV[b], f=52, s=2016+15/52) 

###Time series is now fed to the HW algorithm ### 
  HWTEST=HoltWinters(TSTEST)

###Forecast is now generated####
  PREDTEST=predict(HWTEST,52)

###Both HW's model and Forecast are plotted (this is only working for the last column in the loop)### 
  plot(HWTEST,PREDTEST)

}

上面的代码遍历了6列,但是,我需要将Predict()函数中的每个预测存储在一个数据框中,最终结果将是一个包含6列的表,其中显示下一个预测这6种产品需要52周的时间(一旦测试成功,我将其应用于之前提到的2000种产品)

0 个答案:

没有答案