我有一个有效的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种产品)