Я працюю над алогоритмом R, щоб автоматизувати щомісячний розрахунок прогнозу. Я використовую, серед іншого, функцію ets () з пакету прогнозів для обчислення прогнозу. Це працює дуже добре.
На жаль, для деяких конкретних часових рядів результат, який я отримую, дивний.
Будь ласка, знайдіть нижче код, який я використовую:
train_ts<- ts(values, frequency=12)
fit2<-ets(train_ts, model="ZZZ", damped=TRUE, alpha=NULL, beta=NULL, gamma=NULL,
phi=NULL, additive.only=FALSE, lambda=TRUE,
lower=c(0.0001,0.0001,0.0001,0.8),upper=c(0.9999,0.9999,0.9999,0.98),
opt.crit=c("lik","amse","mse","sigma","mae"), nmse=3,
bounds=c("both","usual","admissible"), ic=c("aicc","aic","bic"),
restrict=TRUE)
ets <- forecast(fit2,h=forecasthorizon,method ='ets')
Нижче ви знайдете відповідний набір даних історії:
values <- c(27, 27, 7, 24, 39, 40, 24, 45, 36, 37, 31, 47, 16, 24, 6, 21,
35, 36, 21, 40, 32, 33, 27, 42, 14, 21, 5, 19, 31, 32, 19, 36,
29, 29, 24, 42, 15, 24, 21)
Тут, на графіку, ви побачите історичні дані (чорний), встановлене значення (зелений) та прогноз (синій). Прогноз, безумовно, не відповідає рядкам із заданим значенням.
Чи маєте ви якесь уявлення про те, як «прив’язати» випадок, щоб він «відповідав» історичним продажам?
ets
. Середній / рівень історичних даних становить близько 20, а середній / рівень прогнозу - близько 50. Не знаєте, чому це станеться? чи можете ви запустити базовийets
і побачити, чи отримаєте ви однакові результати?