У меня есть работающая функция Holt-Winters, которая прогнозирует 52 периода на основе данных за 3 года для одного продукта.Я хотел бы применить тот же код для более чем 2000 продуктов.Я посмотрел везде, и я не могу успешно воспроизвести необходимый цикл for.Идея состоит в том, чтобы сгенерировать эти 2000 прогнозов и добавить выходные данные функции (предсказание) (fit) к фрейму данных, где я мог бы иметь 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 столбцами, отображающая прогноз на следующие 52 недели для 6 продуктов (как только этот тест сработает, я затем применю его к 2000продукты, упомянутые ранее)