Я использую пакет прогнозов HoltWinters на языке R для создания прогнозов на основе данных об объеме звонков за месяц.
Большую часть времени он работает хорошо, но имеет тенденцию переоснащать данные, особенно если есть особые периоды, например, ступенчатое изменение потребности в вызовах.
В недавнем примере, в котором есть ступенчатое изменение посередине, альфа задается равной 0,94, бета - равной 0, а гамма - равной 0, что генерирует странный прогноз.
Month Data
1 7082
2 6407
3 5479
4 5480
5 5896
6 6038
7 5686
8 6126
9 6280
10 6893
11 6028
12 5496
13 3569
14 3383
15 3718
16 3351
17 3340
18 3559
19 3722
20 3201
21 3494
22 2810
23 2611
24 2471
25 7756
26 6922
27 7593
28 6716
29 7278
30 7071
Это сценарий R, который я использовал
scandata <-read_csv("525-gash.csv");
pages <-scandata[,2];
myts <-ts(pages , start=c(2015, 1), frequency = 12)
myforecast <- HoltWinters (myts, seasonal ="additive",
optim.start = c(alpha = 0.2, beta = 0.1, gamma = 0.1));
myholt = predict(myforecast, 12 , prediction.interval = FALSE);
plot(myforecast,myholt);
Для сравнения, если я установил для параметров экспоненциального сглаживания стандартные принятые значения - альфа равняется 0,2, бета - 0,1 и гамма - 0,1, я получаю гораздо лучший прогноз.
Я все еще хотел бы использовать часть прогноза с автоматической подгонкой, но хотел бы установить диапазон вокруг альфа, бета и гаммы.
Я пытался установить ограничения на автоматическую настройку, чтобы альфа составляла от 0,1 до 0,5, гамма от 0,1 до 0,3 и гамма от 0,1 до 0,3.
https://stat.ethz.ch/R-manual/R-devel/library/stats/html/HoltWinters.html
Похоже, это должно быть возможно, если установить
optim.control = list()
функция, но мне не удалось найти способ успешно установить ограничения на альфа, бета и гамма, чтобы заставить ее работать.
Кто-нибудь знает как это сделать?