Модель Хольта-Уинтерса

Пример составления прогноза будущих значений с помощью модели построения алгоритма по Хольту-Винтерсу. Скачать шаблон графика с прогнозом динамики изменения тенденции тренда.

Как сделать модель Хольта-Винтерса для расчета прогноза в Excel

Мы будем строить нашу модель прогноза по Хольту-Винтерсу на основе статистических данных, взятых из аэропорта. Используя модель, мы попытаемся предсказать, сколько пассажиров будет обслуживаться в иностранном регулируемом воздушном сообщении в 2016-2018 годах. В нашей таблице будут столбцы, указывающие: C(Yt) – количество обслуживаемых пассажиров, D(Ft) – оценка случайных вариаций модели, E(St) – оценка тренда для модели, F(Yt*) – истекший и реальный прогнозы, G(yt-yt*);H(|yt-yt*|);I((yt-yt*)2) – расчеты, необходимые для расчета показателей MAE, MSE, RMSE, MN – альфа и бета параметры для модели.

Исходные данные.

Составим прогноз с учетом всех правил модели Хольта-Винтерса используя формулы Excel и на основе полученных данных составим график для визуального анализа.



Как рассчитать прогноз по методу Хольта Винтерса?

1. Рассчитываем экспоненциально-сглаженный ряд:

Lt=k*Yt/St-s+(1-k)*(Lt-1+Tt-1)

2. Определяем значение тренда:

Tt=b*(Lt – Lt-1)+(1-b)*Tt-1

3. Оцениваем сезонность:

St=q*Yt/Lt+(1-q)*St-s

4. Делаем прогноз:

Ŷt+p = (Lt + p *Tt)*St-s+p

Рассмотрим подробнее:

1. Рассчитываем экспоненциально-сглаженный ряд:

Lt=k*Yt/St-s+(1-k)*(Lt-1+Tt-1)

где

  • Lt – сглаженная величина на текущий период;
  • k – коэффициент сглаживания ряда;
  • St-s  — коэффициент сезонности предыдущего периода;
  • Yt – текущее значение ряда (например, объём продаж);
  • Lt-1 – сглаженная величина за предыдущий период;
  • Tt-1 – значение тренда за предыдущий период;

Lt (Сглаженная величина текущий период) = k(коэффициент сглаживания ряда)* Yt (текущее значение ряда (например, объём продаж))/St-s (коэффициент сезонности за этот же период в предыдущем сезоне) )+(1-коэффициент сглаживания ряда)*( Lt-1(сглаженная величина за предыдущий период) -Tt-1(тренд за предыдущий период)

Коэффициент сглаживания ряда k задается вами вручную и находится в диапазоне от 0 до 1.

Для первого периода в начале данных экспоненциально-сглаженный ряд равен первому значению ряда (например, объему продаж за первый месяц) L1=Y1;

Сезонность в первом и втором периоде St-s равна 1.

В приложенном файле вводим значение L:

экспоненциально сглаженный ряд

скачать файл с примером расчета прогноза по методу Хольта – Винтерса

2. Определяем значение тренда

Tt=b*(Lt – Lt-1)+(1-b)*Tt-1

где

  • Tt – значение тренда на текущий период;
  • b – коэффициент сглаживания тренда;
  • Lt – экспоненциально сглаженная величина за текущий период;
  • Lt-1 – экспоненциально сглаженная величина за предыдущий период;
  • Tt-1 – значение тренда за предыдущий период.

Tt(значение тренда на текущий период)=b(коэффициент сглаживания тренда)*(Lt(экспоненциально сглаженная величина за текущий период) – Lt-1экспоненциально сглаженная величина за предыдущий период))+(1-b(коэффициент сглаживания тренда))*Tt-1 (значение тренда за предыдущий период)

Коэффициент сглаживания тренда b задается вами вручную и находится в диапазоне от 0 до 1

Значение тренда для первого периода равно 0 (T1 =0);

В приложенном файле рассчитаем значения тренда:

расчет значений тренда

скачать файл с примером расчета прогноза по методу Хольта – Винтерса

3. Оцениваем сезонность:

St=q*Yt/Lt+(1-q)*St-s

где

  • St — коэффициент сезонности для текущего периода;
  • q — коэффициент сглаживания сезонности;
  • Yt — текущее значение ряда (например, объём продаж));
  • Lt — сглаженная величина за текущий период;
  • St-s — коэффициент сезонности за этот же период в предыдущем сезоне;

St(коэффициент сезонности для текущего периода)=q (коэффициент сглаживания сезонности)*Yt(текущее значение ряда (например, объём продаж))/Lt(Сглаженная величина за текущий период) +(1-q(коэффициент сглаживания сезонности)*)*St-s (коэффициент сезонности за этот же период в предыдущем сезоне)

расчет коэффициентов сезонности

Коэффициенты сезонности для первого сезона (года) = 1;

скачать файл с примером расчета прогноза по методу Хольта – Винтерса

4. Сделаем прогноз по методу Хольта-Винтерса

Прогноз на p периодов вперед равен:

Ŷt+p =(Lt +p*Tt)*St-s+p

где

  • Ŷt+p — прогноз по методу Хольта-Винтерса на p периодов вперед;
  • Lt – экспоненциально сглаженная величина за последний период;
  • p – порядковый номер периода, на который делаем прогноз;
  • Tt – тренд за последний период;
  • St-s+p — коэффициент сезонности за этот же период в последнем сезоне;

Ŷt+p (Прогноз по методу Хольта-Винтерса)=( Lt (экспоненциально сглаженная величина за последний период)+ p (количество периодов вперед, на которое делаем прогноз) *Tt (тренд за последний период))*St-s+p (коэффициент сезонности за этот же период в последнем сезоне)

Во вложенном файле сделаем прогноз на 10 месяцев вперед. Для этого заполним номера периодов, на сколько будем делать прогноз

расчет прогноза с ростом и сезонностью Хольта Уинторса

скачать файл с примером расчета прогноза по методу Хольта – Винтерса

Вводим формулу прогноза в ячейку. Для этого сумму значений экспоненциального ряда и тренда за последний период, умноженное на номер периода для прогноза, умножаем на коэффициент сезонности.

Чтобы протянуть формулу прогноза на 10 периодов вперед, зафиксируем ссылку на экспоненциальный ряд и значение тренда за последний период — для этого выделяем ссылку и нажимаем F4:

прогноз продаж с трендом и сезонностью в Excel

Протягиваем формулу на 10 периодов вперед, получаем прогноз:

скачать файл с примером расчета прогноза по методу Хольта – Винтерса

При появлении новых данных прогноз по методу Хольта – Винтерса желательно пересчитать для уточнения ряда, тренда и сезонности.  Также при подготовке данных для прогноза всегда стоит очищать данные от факторов, которые в прогнозном периоде не повторятся (например, прирост продаж по крупной акции) или учитывать запланированные факторы, которые дадут дополнительный прирост продаж (например, ввод продукции в сеть или проведение мероприятия по стимулированию сбыта).

Составляющие временного ряда

При анализе временного ряда выделяют три составляющие: тренд, сезонность и шум. Тренд – это общая тенденция, сезонность, как следует из названия – влияния периодичности (день недели, время года и т.д.) и, наконец, шум – это случайные факторы.

Что бы понять отличие этих трёх величин, смоделируем функцию расстояния от земли до луны. Известно, что в среднем луна каждый год отдаляется на 4 см – это тренд, в течение дня луна совершает оборот вокруг земли и расстояние колеблется от ~362600 км до ~405400 км – это сезонность. Шум – это “случайные” факторы, например, влияние других планет. Если мы изобразим сумму этих трёх графиков, то мы получим временной ряд – функцию, показывающую изменение расстояния от земли до луны во времени.

Возвращаясь к экспоненциальному сглаживанию…

В одной из предыдущих частей мы уже рассматривали простое экспоненциальное сглаживание. Напомним в двух словах основную идею. Мы предполагали, что прогноз для точки t определяется некоторым средним уровнем предыдущих значений. Причем способ, которым вычисляется прогнозное значение, определяется рекуррентным соотношением

В таком виде метод дает удобоваримые результаты, если ряд продаж достаточно стационарен — нет выраженного тренда или сезонных колебаний. Но на практике такой случай — счастье. Поэтому мы рассмотрим модификацию данного метода, позволяющую работать с трендовыми и сезонными моделями.

Метод получил название Холта-Винтерса по именам разработчиков: Холт предложил метод учета тренда, Винтерс добавил сезонность.

Для того, чтобы не только разобраться с арифметикой, но и «почувствовать», как это работает, давайте немного повернем нашу голову и подумаем, что меняется, если мы вводим тренд. Если для простого экспоненциального сглаживания оценка прогноза на p-й период делалась как

,

где Lt — усредненный по известному правилу «общий уровень», то при наличии тренда появляется поправка


,

то есть к общему уровню добавляется оценка тренда. Причем как общий уровень, так и тренд мы будем усреднять независимо по методу экспоненциального сглаживания. Что понимается под усреднением тренда? Мы предполагаем, что в нашем процессе присутствует локальный тренд, определяющий систематическое приращение на одном шаге — между точками t и t-1, например. И если для линейной регрессии линия тренда проводится по всей совокупности точек, мы считаем, что более поздние точки должны вносить больший вклад, поскольку рыночное окружение постоянно меняется и более свежие данные более ценны для прогноза. В итоге Холт предложил использовать уже два рекуррентных соотношения — одно сглаживает общий уровень ряда, другое сглаживает трендовую составляющую.


Методика сглаживания такова, что вначале выбираются начальные значения уровня и тренда, а затем делается проход по всему ряду, на каждом шаге вычисляя новые значения по формулам. Из общих соображений понятно, что начальные значения должны как-то определяться исходя из значений ряда в самом начале, однако четких критериев тут нет, присутствует элемент волюнтаризма. Наиболее часто используются два подхода в выборе «точек отсчета»:

  1. Начальный уровень равен первому значению ряда, начальный тренд равен нулю.

  2. Берем первые несколько точек (штук 5), проводим линию регрессии (ax+b). Начальный уровень задаем как b, начальный тренд как a.

 По большому счету этот вопрос не является принципиальным. Как мы помним, вклад ранних точек мизерный, поскольку коэффициенты очень быстро (по экспоненте) убывают, так что при достаточной длине ряда исходных данных мы скорее всего получим практически идентичные прогнозы. Разница, однако, может проявиться при оценке ошибки модели.

На этом рисунке показаны результаты сглаживания при двух выборах начальных значений. Здесь хорошо видно, что большая ошибка второго варианта связана с тем, что начальное значение тренда (взятое по 5 точкам) получилось явно завышенным, поскольку мы не учитывали рост, связанный с сезонностью.

Поэтому (вслед за господином Винтерсом) усложним модель и будем делать прогноз с учетом сезонности:


В данном случае мы, как и раньше, предполагаем мультипликативную сезонность. Тогда наша система уравнений сглаживания получает еще одну составляющую:




где s — лаг сезонности.

И вновь заметим, что выбор начальных значений, как и величин постоянных сглаживания — вопрос воли и мнения эксперта.

Для действительно важных прогнозов, однако, можно предложить составить матрицу всех комбинаций постоянных и перебором выбрать такие, которые дают меньшую ошибку. О методах оценки ошибочности моделей мы поговорим немного позже. А пока займемся сглаживанием нашего ряда по методу Холта-Винтерса. Начальные значения будем в данном случае определять по следующему алгоритму:

  1. Берем первые 12 точек ряда, чтобы нивелировать сезонность.

  2. Проводим линию регрессии

  3. Задаем начальное значение уровня 1021,41

  4. Задаем начальное значение тренда 26,24

  5. Задаем начальные значения 12ти сезонных коэффициентов как факт, деленный на значение регрессии в точке

Теперь начальные значения определены.

  1. Идем по процедуре, получая сглаженный уровень
  2. Для интереса нарисуем модель с учетом сезонности

  3. Создаем прогноз уровня на 12 точек вперед

  4. И прогноз с учетом сезонности

Результаты всего этого безобразия:

Заключение

Удивительно, но такой простой метод дает на практике очень неплохие результаты, вполне сравнимые с гораздо более “математическими” – например, с линейной регрессией. И при этом реализация экспоненциального сглаживания в информационной системе на порядок проще.

Basic Concepts

In the Holt-Winters Method (aka Triple Exponential Smoothing), we add a seasonal component to Holt’s Linear Trend Model. We explore two such models: the multiplicative seasonality model and the additive seasonality model. We consider the first of these models on this webpage. See Holt-Winters Additive Model for the second model.

Let c be the length of a seasonal cycle. Thus c = 12 for months in a year, c = 7 for days in a week and c = 4 for quarters in a year. The model takes the following recursive form for all i > c

Holt-Winter u equation

image004z

Holt-Winter s equation

where 0 < α ≤ 1, 0 ≤ β ≤ 1 and 0 ≤ γ ≤ 1–α.

The ui values represent the baseline, the vi values represent the trend (i.e. slope) and the si values represent the seasonality component. In the multiplicative model, for any consecutive c periods of time, the sum of the si values is approximately equal to c (at least for reasonable values of α, β, γ).

The predictions for the data elements yi is given by

Predicted y values

For forecasts at future times, we use the form

Forecasted future y valueswhere h′ =INT((h–1)/c)+1.

Определение

Пусть задан временной ряд: y_i, ldots, y_t,; y_i in R.

Необходимо решить задачу прогнозирования временного ряда.

begin{align*} hat{y}_{t+d} &= a_t (r_t)^d Theta_{t + (d text{ mod } s) - s}, \ a_t &= alpha_1 cdot frac{y_t}{Theta_{t-s}} + left(1-alpha_1 right)a_{t-1} r_{t-1}, \ r_t &= alpha_3 cdot frac{a_t}{a_{t-1}}  + left(1-alpha_3 right)r_{t-1}, \ Theta_t &= alpha_2 cdot frac{y_t}{a_t}  + left(1-alpha_2 right) Theta_{t-s}, end{align}

где s — период сезонности,Theta_i, ; i in 0, ldots, s-1 — сезонный профиль, r_t — параметр тренда, a_t — параметр прогноза, очищенный от влияния тренда и сезонности.

Оптимальные параметры alpha_1,; alpha_2, ; alpha_3 in left( 0,1 right) предлагается находить экспериментальным путем. Один набор весов можно использовать для широкого класса продуктов, например, Уинтерс использовал данные (за 5—7 лет): о продажах кухонной утвари, о продажах краски, о котлованах для изготовленных заводским способом сооружений и т.п. Первая часть данных (2—3 года) использовалась для построения модели, а на основе остальных данных проверялась точность прогнозирования.

Метод прогноза по модели Хольта-Винтерса в Excel

Модель Хольта-Винтерса является одним из методов прогнозирования с использованием так называемых экспоненциальное сглаживание. Сглаживание состоит в создании взвешенного скользящего среднего, вес которого определяется по схеме – чем старше информация об изучаемом явлении, тем меньше значение для текущего прогноза. Чтобы построить модель, примите следующие предположения и формулы.

Формулы Хольта-Винтерса.

Модель рассчитывает прогнозы с истекшим сроком, то есть те, которые относятся к периоду, в котором фактическое значение уже было реализовано, и реальные прогнозы на период, который еще не произошел.

Расчет прогнозов.

Первые значения F1 и S1 обычно:

Первые значения.

Для оценки точности прогнозов модели, так называемой фактическая ошибка просроченных прогнозов с использованием показателей:

Средняя абсолютная ошибка – сообщает нам, насколько в среднем за период прогнозирования фактические значения прогнозируемой переменной будут отклоняться относительно абсолютного значения от прогнозов.

Средняя абсолютная ошибка.

Средняя квадратическая ошибка – это средняя разница в квадрате отклонений между фактическими реализациями прогнозируемой переменной и прогноза.

Средняя квадратическая ошибка.

где Yt* – прогнозы истекли.

Среднеквадратичная ошибка (RMSE – Root Mean Square Error) – измеряет, насколько отклонение реализации прогнозируемой переменной от рассчитанных прогнозов.

Root Mean Square Error.

Созданную модель можно считать хорошей, если отношение RMSE / фактического прогнозирования составляет менее 10%. Однако на практике лучшим тестом для оценки эффективности модели будет сравнение прогнозов, которые она создает, с фактическими значениями.

Тренд. Методы сглаживания

Методы сглаживания необходимы для удаления шума из временного ряда. Существуют различные способы сглаживания, основные – это метод скользящей средней и метод экспоненциального сглаживания.

Метод скользящей средней

Идея метода скользящего среднего заключается в смещении точки графика на среднее значение некоторого интервала. В качестве интервала берут нечётное количество участков, например, три – предыдущий, текущий и следующий периоды, находится среднее и принимается в качестве сглаженного значения:

Si = Σkj=-k(xi+j)/(2k+1)

У данного метода есть проблема: случайное высокое или низкое значение сильно влияют на скользящую линию. В качестве решения были введены веса. Для распределение веса используют оконные функции, основные оконные функции – это окно Дирихле (прямоугольная функция), В-сплайны, полиномы, синусоидальные и косинусоидальные:

График 4. Окно Ганна для n=5 (косинусоидальное окно)

График 5. Синусоидальное окно для n=5

Минусы использования скользящей средней – это сложность вычислений и некорректные данные на концах графика.

Исходные данные Скользящая средняя Взвешенная скользящая средняя (синусоидальное окно, n=5) Взвешенная скользящая средняя (окно Ганна, n=5)
Таблица 1. Сглаживание методом скользящей средней
800 805 283 0
810 858 458 400
964 907 514 405
1052 1042 570 482
1340 1235 670 526
1585 1223 801 670
914 1505 795 793
2179 1520 894 457
1400 1706 954 1090
2330 2085 1147 700
2430 2139 1260 1165
2395 2037 1443 1215
992 1775 1204 1198
1281 1633 898 496
1864 1433 825 641
1595 1517 974 932
1328 1478 963 798
1123 1513 812 664
2006 2046 870 562
3726 2285 1812 1003

График 6. Сглаживание скользящей средней. Красный – исходные данные, персиковый – скользящая средняя, жёлтая и охра – скользящая средняя, взвешенная синусоидальным окном с n=7 и n=3 соответственно

Как видно из графика, увеличение n выдаёт более плавную функцию, таким образом нивелируя более мелкие колебания во временном ряду. Обратите внимание, что при сглаживании не имеет значения, совпадает график среднего с графиком данных или нет, целью является построение правильной формы.

Метод экспоненциального сглаживания

Метод экспоненциального сглаживания получил своё название потому, что в сглаженной функции экспоненциально убывает влияние предыдущего периода с неким коэффициентом чувствительности α. Сглаженное значение находится как разница между предыдущим действительным значением и рассчитанным значением:

D’t = α·Dt-1 + (1-α)·D’t-1

Коэффициент чувствительности, α, выбирается между 0 и 1, в качестве базиса используют значение 0,3. Если есть достаточная выборка, то коэффициент подбирается путём оптимизации.

Исходные данные Экспоненциальное сглаживание, α=0,1 Экспоненциальное сглаживание, α=0,6
Таблица 2. Экспоненциальное сглаживание
800 800 800
810 -640 160
964 657 422
1052 -495 410
1340 551 467
1585 -362 617
914 484 704
2179 -344 267
1400 528 1201
2330 -335 360
2430 535 1254
2395 -239 956
992 455 1055
1281 -310 173
1864 407 699
1595 -180 839
1328 322 621
1123 -157 548
2006 254 455
3726 -28 1022

График 7. Экспоненциальное сглаживание с α=0,1 (персиковая линия) и α=0,6 (жёлтая линия)

Пример

Красным отмечен прогноз, синим - исходные данные.

Красным отмечен прогноз, синим – исходные данные.

Прогноз арендной ставки на 1 год. Оптимальные параметры alpha_1,; alpha_2, ; alpha_3 подбирались путем минимизации среднеквадратичной ошибки прогноза eps_t^2=(y_t-hat{y}_t)^2.

Литература

Лукашин Ю. П. Адаптивные методы краткосрочного прогнозирования временных рядов. — М.: Финансы и статистика, 2003.

Winters P.R. Forecasting sales by exponentially weightedmoving averages //Management Science. – 1960. – Vol. 6. -№3.

Погодин С. К. Методы оценки портфелей инвестиций, диссертация на соискание степени кандидата экономических наук (ВШЭ), Москва, 2006.

Качество прогнозирования

Проверка качества прогнозирования возможна в случае наличия достаточной выборки и является важной проверкой на достоверность прогноза, для проверки и оптимизации значений α, β и γ необходимо построить прогноз на существующие данные, например, если у нас в наличии данные за пять лет и мы хотим предсказать следующий год, то необходимо построить модель на первых четырёх годах, проверить и оптимизировать коэффициенты для минимизации ошибки между прогнозом и данными на 5й год. После оптимизации модель может быть перестроена с учётом последнего периода для повышения точности, далее следует построение прогноза.

Методы оптимизации будут описаны в отдельной статье, ниже представлен пример прогнозирования методом Хольт Винтерса.

График 9. Данные о посещаемости сайта за четыре недели

# Данные s t p s t p
1 93 93 0 0 93 0 0
2 91 92 -0.1 -0.5 92 -0.1 0.99
3 72 84 -0.89 -6 84 -0.89 0.93
4 75 80 -1.2 -2.5 80 -1.2 0.97
5 75 77 -1.38 -1 77 -1.38 0.99
6 57 68 -2.14 -5.5 68 -2.14 0.92
7 66 66 -2.13 0 66 -2.13 1
8 123 88 0.28 17.5 38 -4.72 1.62
9 85 87 0.15 -1.25 54 -2.65 1.28
10 85 89 0.34 -5 67 -1.09 1.1
11 91 91 0.51 -1.25 77 0.02 1.08
12 102 96 0.96 2.5 87 1.02 1.08
13 73 90 0.26 -11.25 85 0.72 0.89
14 60 78 -0.97 -9 75 -0.35 0.9
15 99 79 -0.77 18.75 69 -0.92 1.53
16 108 91 0.51 7.88 75 -0.23 1.36
17 98 96 0.96 -1.5 80 0.29 1.16
18 104 100 1.26 1.38 87 0.96 1.14
19 83 93 0.43 -3.75 84 0.56 1.03
20 68 88 -0.11 -15.63 81 0.2 0.86
21 62 81 -0.8 -14 76 -0.32 0.86
22 59 64 -2.42 6.88 61 -1.79 1.25
23 80 66 -1.98 10.94 59 -1.81 1.36
24 121 87 0.32 16.25 76 0.07 1.38
25 112 97 1.29 8.19 85 0.96 1.23
26 85 94 0.86 -6.38 85 0.86 1.02
27 106 106 1.97 -7.82 101 2.37 0.95
28 82 103 1.47 -17.5 100 2.03 0.84

График 9. Пример предсказания посещаемости сайта на основе данных за четыре недели. Жёлтая линия – исходные данные, красная – прогноз на пятую неделю на основе первых четырёх. Закрашена линия сглаженного уровня при α=0.4, β=0.1, γ=0.5

Reference

Hyndman, R. J., and Athanasopoulos, G. (2018) Holt-Winters’ seasonal method. Forecasting: principals and practice, 2nd Ed.
https://otexts.com/fpp2/holt-winters.html

Ссылки

Модель Брауна — экспоненциальное сглаживание.

Модель Хольта — учитываются линейный тренд без сезонности.

Модель Тейла-Вейджа — учитываются аддитивный тренд и сезонность.

Анализ адекватности адаптивных моделей

Категории: Прогнозирование временных рядов | Прикладная статистика | Энциклопедия анализа данных

Рейтинг
( 1 оценка, среднее 5 из 5 )
Загрузка ...