Пункт шестой — «Построение прогноза продаж: основные методы прогнозирования»
Наконец-то мы подобрались к самому основному шагу нашей карты данных — «Построение прогноза продаж». Здесь я вкратце расскажу, какие методы прогнозирования наиболее распространены и популярны и приведу формулы их использования. А в следующей части данной статьи, я расскажу об обработке получившегося прогноза: наложении сезонности, округлении, учете промо и так далее.
Напомню, что до этого мы проделали довольно большой путь: подготовили корректную историю продаж, очищенную от нестабильных показателей, рассчитали коэффициенты сезонности и промо-объемы будущих периодов и определились с элементами графического интерфейса (GUI) нашего будущего инструмента прогнозирования. А теперь, мы будем рассматривать методы прогнозирования и строить сам прогноз.
Содержание
Классификация методов прогнозирования.
Методы прогнозирования делятся на две группы или класса: интуитивные (субъективные или качественные) и формализованные (объективные или количественные). Интуитивные методы прогнозирования — это такие методы, основой которых НЕ являются сухие расчеты, математика и статистика. Они, в первую очередь, основаны на оценках группы экспертов и предназначены для прогнозирования объемов новой позиции, у которой нет истории продаж. Либо для прогнозирования объемов позиции, история продаж которой настолько нестабильна, что невозможно подобрать под нее адекватную математическую модель. В пример можно привести такие методы, как «Метод Дельфи», «Мозговой штурм», «Опрос/анкетирование» и так далее, но в данной статье данные методы прогнозирования рассмотрены не будут.
Здесь будут рассмотрены следующие формализованные методы прогнозирования:
- Линейная регрессия
- Полиномиальный прогноз
- Экспоненциальное сглаживание
- Модель Хольта
- Модель Хольта-Винтерса
- Модель Тейла-Вейджа
Немного расскажу про каждый из них, а также затрону метод «прогнозирования по свойствам». А в конце статьи, помимо готового примера в Excel с формулами расчета, добавлю ссылки на некоторые источники информации о методах прогнозирования, может кому-то будет полезно.
Методы прогнозирования: метод линейной регрессии.
Построение прогноза с помощью метода линейной регрессии — один из наиболее простых, часто-встречающихся и распространенных (если рассматривать Excel) методов прогнозирования. Часто встречается он как раз из-за того, что в Excel его очень легко применить — достаточно воспользоваться функцией ЛИНЕЙН, ПРЕДСКАЗ или ТЕНДЕНЦИЯ, где исходными данными будут являться номера периодов и соответствующие им объемы продаж.
Для нахождения прогноза на период x, мы воспользуемся уравнением y=k*x+b, где k — угловой коэффициент, который находится с помощью метода наименьших квадратов (на основании предыдущих периодов x и соответствующих значений y), а b — это точка, в которой наш график пересекается с осью y. Данное уравнение описывает линию, которая называется линия тренда, которая показывает динамику продаж и прогнозы на последующие периоды.
На гистограмме ниже изображены столбцы с объемами продаж для соответствующего периода (номера недель по оси X), пунктирная линия, которая как раз является линией тренда и столбец c предсказанным значением (соответствует «продолжению» линии тренда):
Данный метод один из самых простейших, и чаще всего используется для прогнозирования более-менее стабильных и регулярных продаж, однако при максимально аккуратном «сглаживании» промо-объемов, он подойдет и для нестабильных рядов. Важно отметить, что если история продаж у нас не очень большая (менее 4-5 периодов), данный метод прогнозирования не рекомендуется к использованию.
Также важно, что если мы хотим добавить к прогнозному значению коэффициент сезонности, то для начала, перед расчетом прогнозного значения, историю продаж необходимо «выровнять», то есть очистить от сезонных колебаний. А уже потом считать прогноз и накладывать сезонность.
Хочу отметить, что в моем опыте работы данный метод прогнозирования в совокупности с корректным сглаживанием числового ряда, а также с корректными значениями планируемых промо-объемов, которые мне предоставлял отдел трейд-маркетинга, достигал достаточно высокой точности прогнозирования (выше 80%).
Методы прогнозирования: полиномиальный прогноз.
Построение прогноза с помощью полинома немного похоже на построение прогноза с помощью предыдущего метода. Здесь, для нахождения прогноза на последующие периоды вместо линейного уравнение, мы используем полином третьей степени вида y = a*x³+b*x²+c*x+d или полином второй степени вида y = a*x²+b*x+c, где коэффициенты a,b,c,d постоянны и находятся с помощью различных методов решения систем линейных уравнений, на основании предыдущих периодов x и соответствующим им объемов продаж y.
Если степень полинома будет выше третьей — линия, которой описывается наш числовой ряд будет максимально приближена к реальным значениям, но при этом будет не очень пригодна для построения прогноза (особенно, если строите прогноз сразу на несколько периодов). Как раз на примере ниже это очень заметно:
Здесь используется полином пятой степени. Да, линия почти совпадает с фактическим значениям, но при этом даже невооруженным глазом видно, что прогноз на 31 и 32-ую неделю крайне неадекватный. Поэтому использовать полиномы выше третьей степени не рекомендуется.
Методы прогнозирования: модель на основе экспоненциального сглаживания.
Первоначально, модель экспоненциального сглаживания использовалась для сглаживания числового ряда. Однако, спустя какое-то время, данную модель немного видоизменили и приспособили для краткосрочного прогнозирования. Модель приемлема для нахождения прогноза только на 1 период вперед.
Для нахождения прогноза Y̅ на период t+1, используется следующая формула:
где yt — значение факта на период t, Y̅t — сглаженное значение на период t, а α — коэффициент или параметр сглаживания, который принимает значение 0<α<1.
При применении данной модели все сводится к выбору оптимального значения α. Следует отметить, что чем меньше значение α, тем больше модель учитывает фактические показатели почти всех прошедших периодов. Если же значение близится к единице, то на модель будет оказывать наибольшее влияние только несколько последних периодов, а сам числовой ряд будет наименее сглажен.
Единого метода определения α не существует, но для его нахождения можно выбрать следующие варианты:
- В некоторых источниках рекомендуют использовать значение 0,2<α<0,3, поэтому просто предлагается оставить параметр сглаживания примерно в этих рамках.
- Использовать формулу α = 2/(n-1), где n — количество периодов для экспоненциального сглаживания. Например, грубо говоря, если n=8, то модель будет учитывать значения последних восьми периодов в числовом ряду, и α будет равен 0,25.
Также, возникает проблема нахождения Y̅1: для его расчета необходимо предыдущее значение факта y на период t = 0, а у нас такого, естественно, нет. Поэтому, за Y̅1 можно принять значение y1.
Гистограмма с линией экспоненциального сглаживания по которой строится прогноз выглядит так (α=0,4):
Данный метод неплохой, но он не учитывает тренд продукции и сезонные колебания (поэтому первоначально числовой ряд нужно очистить от сезонности, как и в линейной регрессии), то есть лучше всего подходит для стабильных числовых рядов. Плюс ко всему, как я уже говорил, подходит для построения прогноза только на 1 период вперед. Для числового ряда с учетом тренда можно использовать улучшенную модель экспоненциального сглаживания (метод Хольта), а если еще необходимо учесть сезонность, то можно использовать Метод Хольта-Винтерса или Метод Тейла-Вейджа, о которых я напишу далее.
Методы прогнозирования: модель на основе экспоненциального сглаживания с учетом тренда (Метод Хольта).
Данная модель — усовершенствованная версия модели экспоненциального сглаживания с учетом тренда продаж.
Формула нахождения прогноза Y̅ на период t+d следующая:
где d — порядковый номер периода, на который мы делаем прогноз (то есть если числовой ряд состоит из 10 периодов, а прогноз мы делаем на 11, то d =1), а At и Bt — адаптивные переменные: A — экспоненциально-сглаженное фактическое значение , а B — значение тренда. Находятся данные переменные по следующим формулам:
И как в случае с обычным экспоненциальным сглаживанием, здесь тоже есть параметры, но их уже два: α1 и α2. И оба они принимают значения ∈(0,1). Подбирать эти параметры нужно так, чтобы прогнозы, построенные на уже имеющиеся периоды с фактическими значениями, с помощью полученной модели, давали наименьшую ошибку прогноза (во многих источниках рекомендуют использовать RMSE или MAPE). Напомню, для нахождения RMSE используется следующая формула:
Для нахождения A1 должно использоваться A0, но так как его не существует, мы, опять же, как и в случае с обычным экспоненциальным сглаживанием, вместо него используем фактическое значение y1, а вместо B1 используем 0.
Методы прогнозирования: модель на основе экспоненциального сглаживания с учетом тренда и мультипликативной сезонности (Метод Хольта-Винтерса).
Данная модель — тоже усовершенствованная версия модели экспоненциального сглаживания, только здесь помимо тренда, добавлена еще и мультипликативная сезонность. Подходит модель для работы с числовыми рядами, в которых присутствует ярко-выраженная сезонность или цикличность.
Формула расчета прогноза Y̅ на период t+d следующая:
где d — порядковый номер прогнозируемого периода (как и в предыдущем примере), L — это количество периодов в одном цикле (для месячного прогнозирования — 12, для квартального — 4, для ежедневного — 7). At и Bt — адаптивные переменные: A — экспоненциально-сглаженное фактическое значение, а B — значение тренда. А C с большим индексом «t+(d mod L) — L» — значение сезонности в процентах. Индекс переменной C может немного смутить, но на самом деле все проще, чем кажется: просто используем C из прошлого цикла соответствующего периода (для прогноза на март используем коэффициент сезонности марта прошлого цикла).
Сами переменные A,B и C рассчитываются по следующим формулам:
При использовании Метода Хольта-Винтерса рассчитывать коэффициенты сезонности перед построением не нужно, их расчет включен в формулу. Однако очищать числовой ряд от неадекватных значений все так же необходимо. Также, стоит отметить, что для корректной «работы» данной модели, история продаж должна содержать как минимум несколько циклов для корректного расчета сезонности (для месячного прогнозирования, необходима история продаж как минимум за 2-3 последних года).
Особенности расчета начальных переменных:
- Для A1 можно использовать y1
- Для B1 можно использовать 0
- В первом цикле при расчете A мы должны ссылаться на C прошлых циклов, но так как их нет, вместо C можно использовать 1 (то есть, пренебречь сезонностью)
- А для расчета сезонностей самого первого цикла(!) для каждого периода можно использовать формулу Ct=yt/At
Параметры α1,α2,α3 ∈(0,1), как и в предыдущей модели, подбираются путем минимизации ошибки прогноза (RMSE или MAPE).
Методы прогнозирования: модель на основе экспоненциального сглаживания с учетом тренда и аддитивной сезонности (Метод Тейла-Вейджа).
Данная модель также разработана на основе экспоненциального сглаживания, в которую добавлен тренд и сезонность, но теперь не мультипликативная, а аддитивная. Особенности здесь такие же, как и в методе Хольта-Винтерса. Основное отличие в том, что здесь сезонность является не коэффициентом, на который мы умножаем полученный прогноз, а целым числом, которое мы прибавляем или вычитаем из прогноза.
Формула расчета прогноза Y̅ на период t+d следующая:
где d — порядковый номер прогнозируемого периода (как и в предыдущем примере), L — это количество периодов в одном цикле (для месячного прогнозирования — 12, для квартального — 4, для ежедневного — 7). At и Bt — адаптивные переменные: A — сглаженное фактическое значение (с помощью экспоненты), а B — значение тренда. А C с большим индексом «t+(d mod L) — L» — значение сезонности в процентах.
Сами переменные A,B и C рассчитываются по следующим формулам:
Особенности расчета начальных переменных:
- Для A1 можно использовать y1
- Для B1 можно использовать 0
- В первом цикле при расчете A мы должны ссылаться на C прошлых циклов, но так как их нет, вместо C можно использовать 0 (то есть пренебречь сезонностью)
- А для расчета сезонностей самого первого цикла(!) для каждого периода можно использовать формулу Ct=yt-At
Параметры α1,α2,α3 ∈(0,1), как и в предыдущей модели, подбираются путем минимизации ошибки прогноза (RMSE или MAPE).
Методы прогнозирования: построение прогноза основанное на свойствах.
Данный способ довольно интересный, чаще всего используется для определения спроса какого-либо нового продукта. Его нельзя полноценно отнести к формализованному методу, но и интуитивным назвать его тоже нельзя.
Рассмотрим его суть на примере телевизора. Предположим, что этот телевизор — новинка на рынке и необходимо рассчитать его прогноз продаж. Для начала, мы рассматриваем свойства данного телевизора (его функции и характеристики), например такие:
- Диагональ экрана
- Фирма-изготовитель
- Разрешение экрана
- Наличие Smart-TV
- Возможность подключения USB
- Частота экрана
- Габариты
- Возможность крепления на стену
- Цвет
- Частота обновления экрана
- И так далее..
Далее, мы просматриваем статистику продаж других телевизоров и смотрим, как часто покупался какой-либо другой телевизор с тем или иным перечисленным свойством. И на основе всех этих данных, составляем некое уравнение, которое учтет частоту приобретения телевизора с каждым свойством по отдельности. И с помощью полученного уравнения рассчитаем примерный прогноз продаж нашей новинки.
Метод довольно грубый и не очень точный, однако при прогнозировании новинки с большим перечнем свойств, может очень сильно помочь. И да, телевизор — не совсем удачный продукт, так как он не является регулярным или с ярко-выраженной сезонностью, да и к тому же можно их всегда закупить побольше, так как у них нет таких сроков годности, как у пищевой продукции. Однако, именно как пример — он очень подходит, потому что максимально легок для восприятия.
Методы прогнозирования: итоги и полезные ссылки.
Здесь были рассмотрены самые распространенные и наиболее простые способы/методы прогнозирования. Помимо них существует еще и другие, в том числе и более сложные, например:
- Модели на основе авторегрессии и среднего скользящего (ARIMA или модель Бокса-Дженкинса, ARIMAX и SARIMA)
- Модели на основе нейронных сетей (построение прогноза с помощью искусственного интеллекта)
- Прогнозирование с помощью «бутстреппинга»
- И другие модели/способы/методы прогнозирования
Возможно, спустя какое-то время, по некоторым из них будут написаны отдельные статьи (либо будет расширена текущая).
Файл с примерами расчетов в Excel, можно скачать нажав на кнопку ниже:
Методы прогнозирования: скачать примерТак как статья про методы прогнозирования получилась довольно большой, информация про «Обработку прогноза» вынесена в отдельную статью: «Прогнозирование, шаг 6.2: обработка прогноза».
Если вы хотите больше узнать больше информации по прогнозированию, изучить более сложные модели и методы прогнозирования, то вам могут пригодиться следующие ссылки:
- Диссертация кандидата технических наук Чучуевой И.А. — «Модель прогнозирования временных рядов по выборке максимального подобия»
- Блог Чучуевой Ирины на Хабре — mbureau
- Учебное пособие Тихонова Э.Е. — «Методы прогнозирования в условиях рынка» (хочу отметить, что Чучуева Ирина в своем блоге как раз опровергает некоторые суждения Тихонова, именно поэтому данное пособие, как и диссертация Ирины вызывают еще больший интерес)
- Учебник Лукашина Ю. П. «Адаптивные методы краткосрочного прогнозирования временных рядов» — можно найти в свободном доступе в интернете
- Ресурс, посвященный анализу данных и прогнозированию — MachineLearning.ru
- Статья «Прогнозирование временных рядов с помощью модели экспоненциального сглаживания Хольта-Винтерса»
- Учебное пособие Снитюка В.Е. «Прогнозирование. Модели. Методы. Алгоритмы»
- Статья Юрова В.М. «Моделирование нестационарных временных рядов с выраженными колебаниями с использованием инструментов Excel»
- Учебное пособие Арженовского С.В. «Статистические методы прогнозирования»
- Учебное пособие Сухарева М.Г. «Методы прогнозирования»
Спасибо!) Ждал долго. Думал формула для метода Тейла-Вейджа посложнее будет (везде вся информация какая-то разная, немного не мог до конца разобраться), а тут все понятно написано, еще раз спасибо. А пример скоро появится?
Добрый день!
Постараюсь добавить как можно быстрее. Думаю, в течение недели.
Доброго времени суток. В одном источнике видел формулу для расчета прогноза по Методу Хольта-Уинтерса с возведением в степень. Здесь такого нет. Это правильно? И у кого тогда ошибка?
Добрый день!
Не могу утверждать наверняка (т.к. не видел ту вашу формулу), но это может быть разновидность «трендов», на которую накладывается мультипликативная сезонность Винтерса: в «классической» формуле», как в этой статье, используется линейный тренд Хольта, но также сезонность можно наложить и на экспоненциальный тренд.
Формула примерно такая:
Yt+d=At*(Bt)^d*C (как и в статье, C прошлого цикла соответствующего периода)
Здравствуйте, спасибо за статью! Хотелось бы увидеть пример расчёта!
Добрый день!
Добавил в статью ссылку на скачивание.
Спасибо за пример расчёта, очень пригодился.
Спасибо, интересная статья. Немного тяжелая для восприятия, т.к. много всяких-разных переменных и коэффициентов, но после открытия примера в Excel все сразу становится понятно.
Спасибо за объяснение.
Спасибо за статью!!!
Используем клиссический вариант ЭКСПОНЕНЦИАЛЬНОГО СГЛАЖИВАНИЯ с к=0,25. Но при малых значения продаж ( от 2 до 0) и при использовании округления прогноза в большую сторону, прогноз никогда не опускается ниже 2. Продаж может не быть 6 месяцев а прогноз все равно рассчитывается как 2. Как быть в этом случае? В моем понимании расчет в теории должен выводить прогноз в 0.
Здравствуйте! Обычно я добавляю проверку на продажи за последние несколько периодов: например, если 2-3 месяца продаж не было — прогноз автоматически обнуляется. Но это работает именно для «регулярных» продаж. Если продажи периодические, или это промо/инауты — надо уже отталкиваться от особенной продукции/производства.