Прогноз по методу экспоненциального сглаживания с трендом и сезонностью Хольта - Винтерса

Автор: Алексей Батурин.

расчет прогноза с учетом тренда и сезонностью Хольта ВинтерсаВинтерс  развил модель экспоненциального сглаживания с трендом Хольта и добавил в неё сезонность. Преимущество данного метода – это возможность сделать прогноз на длительный период. Но для того чтобы сделать прогноз, например, на 1 год, вам понадобятся данные минимум за 2 полных года, а лучше за 3 - 5 полных лет. 

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

Из данной статьи вы узнаете:

1. Как в Excel рассчитать прогноз по методу экспоненциального сглаживания с учетом тредна и сезонности;

2. Как оценить точность модели и подобрать оптимальные коэффициенты сглаживания;

Модель прогноза Хольта Винтерса — это 3-х параметрическая модель прогноза, которая учитывает:

  1. Сглаженный экспоненциальный ряд;
  2. Тренд;
  3. Сезонность;

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

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 периодов вперед, получаем прогноз:

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

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

2. Как оценить точность модели Хольта - Винтерса и подобрать оптимальные коэффициенты сглаживания для ряда, тренда и сезонности.

1. Рассчитываем прогноз на 1 период вперед для каждого месяца , когда продажи нам известны (во вложенном файле столбец "прогноз для оценки модели ").

Прогноз для оценки модели в первом и втором году (сезоне)  = значению экспоненциально-сглаженного ряда за предыдущий период + значение тренда за предыдущий период. (значение тренда мы не умножаем на p, т.к. прогноз делаем на 1 период, а в этом случае p=1).

расчет ошибки модели прогноза

Прогноз для третьего года (сезона)  = (значение экспоненциально-сглаженного ряда за предыдущий период + значение тренда за предыдущий период) умножить на коэффициент сезонности этого периода в предыдущем сезоне.

оценка модели прогноза Хольта Винтерса

2. Рассчитаем ошибку модели = из фактических данных вычитаем прогноз на этот период.

расчет ошибки модели прогноза Хольта Винтерса

3. Определим отклонение ошибки модели от прогнозной модели =  Отношение ошибки модели в квадрате к фактическому значению в квадрате.

среднеквадратическое отклонение при расчете прогноза

4. Рассчитаем точность прогноза = единица минус среднее значение отклонений.

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

Для подбора коэффициентов сглаживания ряда, тренда и сезонности k, b и q, при которых прогноз будет максимально точным, нам необходимо последовательно перебрать все значения k, b и q в диапазоне от 0 до 1 и найти такое сочетание, при котором точность прогноза будет максимальна приближена к 100%.

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

Обращаю ваше внимание, что программа для прогнозирования Forecast4AC PRO умеет
  1. автоматически выбирать экспоненциальную модель прогноза (простое экспоненциальное сглаживание, модель Хольта или Хольта-Винтерса);
  2. автоматически подбирать коэффициенты сглаживания ряда, тренда и сезонности
для каждого ряда значений. значительно экономя ваше время и увеличивая точность прогнозирования.

Точных вам прогнозов!

{simplepopup}

{/simplepopup}

Присоединяйтесь к нам!

Скачивайте бесплатные приложения для прогнозирования и бизнес-анализа:

Novo Forecast - прогноз в Excel - точно, легко и быстро!

  • Novo Forecast Lite - автоматический расчет прогноза в Excel.
  • 4analytics - ABC-XYZ-анализ и анализ выбросов в Excel.
  • Qlik Sense Desktop и QlikView Personal Edition - BI-системы для анализа и визуализации данных.

Тестируйте возможности платных решений:

  • Novo Forecast PRO - прогнозирование в Excel для больших массивов данных.

Получите 10 рекомендаций по повышению точности прогнозов до 90% и выше.

Зарегистрируйтесь и скачайте решения

Статья полезная? Поделитесь с друзьями

 

Комментарии   

#25 Petr123123 12.07.2018 18:42
Добрый день, если использовать ПОИСК РЕШЕНИЯ для нахождения k, b, q в Вашем примере (Целевая ф-ция: Точность прогноза -> max; Изменяемые ячейки k, b, q; Ограничения 0
Цитировать
#24 Алексей Батурин 20.04.2018 05:48
Цитирую Кирилл:
может кто-нибудь помочь подобрать коэффициенты сглаживания и сезонности?

Кирилл, может помочь Novo Forecast lite:
https://novoforecast.com/novo-forkast/o-novo-forecast.html
Цитировать
#23 Кирилл 19.04.2018 18:24
может кто-нибудь помочь подобрать коэффициенты сглаживания и сезонности?
Цитировать
#22 Алексей Батурин 22.02.2016 20:27
Цитирую Василий:
Я прогнозирую не сами продажи, а их сумму за 12 месяцев - это позволяет вычленить саму динамику и прогнозировать дальшее ее. А после того, как прогноз сделан, накладываю сезональность, как это делается в способе с трендом. Как-то так.

Василий, спасибо за комментарий! Вы делаете прогноз по методу скользящей средней, отличная модель, о ней у нас тоже есть статья на сайте http://4analytics.ru/prognozirovanie/raschet-prognoza-prodaj-po-metodu-skolzyasheie-sredneie-v-excel.html
Но вы писали, что проблемы с применение модели экспоненциального сглаживания, которую мы в этой статье описываем.
Согласен, что результат, который дает модель Хольта-Винтерса на этом ряде не совсем адекватный и можно и нужно для этого ряда использовать другую модель, но в части логики прогноза и самой модели в статье все правильно.
Вот вы пишите:
Цитирую Василий:

Начал разбираться. Выяснилось что для прогноза вы тупо берете объем последнего периода и перемножаете его с коэффициентами сезонности предыдущего периода. Тут либо ошибка, либо вы не знаете как модель использовать.

Но:
Для прогноза мы берем не объем за последний период, а сглаженный ряд на последний период, тренд на последний период и коэффициент сезонности для данного месяца на последний период.
Это не тоже самое, что объем за последний период и коэффициент сезонности :-) - где вы это в нашем файле и описании модели?! Вопрос!

Если есть вопросы, пишите, будем разбираться вместе :-)

А моделей прогнозирования очень много и все они подходят для разных временных рядов, под разные задачи... Вот в этой статье описаны какие модели, для каких каких временных рядов стоит использовать:
http://4analytics.ru/prognozirovanie/tipi-vremennix-ryadov-i-podxodyashix-dlya-nix-modeleie-prognozirovaniya.html
Цитировать
#21 Алексей Батурин 15.02.2016 09:01
Цитирую Василий:
Пример в файле ошибочен в части расчетов прогноза на будующие периоды. Сделал график (скрин https://yadi.sk/i/ksMh20sCorJQw). Видно, что по факту пик сезона приходится на перирод июнь-сентябрь. А прогноз в этот период просто провисает и выдает завышенные цифры в конце года.
Начал разбираться. Выяснилось что для прогноза вы тупо берете объем последнего периода и перемножаете его с коэффициентами сезонности предыдущего периода. Тут либо ошибка, либо вы не знаете как модель использовать.
Файл, конечно, красивый сделали, но собственный результат чет не проверили.

Василий, спасибо! Расскажите, как использовать модель для повышения точности?
Цитировать
#20 Василий 15.02.2016 07:40
Пример в файле ошибочен в части расчетов прогноза на будующие периоды. Сделал график (скрин https://yadi.sk/i/ksMh20sCorJQw). Видно, что по факту пик сезона приходится на перирод июнь-сентябрь. А прогноз в этот период просто провисает и выдает завышенные цифры в конце года.
Начал разбираться. Выяснилось что для прогноза вы тупо берете объем последнего периода и перемножаете его с коэффициентами сезонности предыдущего периода. Тут либо ошибка, либо вы не знаете как модель использовать.
Файл, конечно, красивый сделали, но собственный результат чет не проверили.
Цитировать
#19 Алексей Батурин 13.01.2016 21:52
Цитирую Дмитрий:
Добрый день
Построил прогноз на следующий месяц на основе данных за год. Могу сказать что весьма был рад. Поскольку все прогнозы были практически четкими, просто не учитывалось маркетинг и по этому по 5-6 позициям товара произошел сбои (это было или избыток товара или его нехватка)
А так спасибо ! все работает!

Дмитрий, спасибо большое за Ваш отзыв! Если хотите учитывать акции, можем познакомить вот с этими продуктами http://4promotion.ru
Цитировать
#18 +1 Дмитрий 13.01.2016 21:47
Добрый день
Построил прогноз на следующий месяц на основе данных за год. Могу сказать что весьма был рад. Поскольку все прогнозы были практически четкими, просто не учитывалось маркетинг и по этому по 5-6 позициям товара произошел сбои (это было или избыток товара или его нехватка)
А так спасибо ! все работает!
Цитировать
#17 +1 Елена 26.10.2015 20:31
полезный сайт, спасибо за ваш труд!
Цитировать
#16 Алексей Батурин 13.07.2015 14:29
Цитирую Елена Семчук:
Формула:
Lt=k*Yt/St-s+(1-k)*(Lt-1+Tt-1)

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

вопрос, атк все-таки "+" или "-" ? :)


Елена, здравствуйте.
"+"
Цитировать

Добавить комментарий