Yandex.Метрика

Прогнозирование, шаг 2: сглаживание промо-объемов

После того, как мы подготовили корректную историю продаж, мы переходим к следующему шагу.

Пункт второй – «очистка от промо-активностей» или сглаживание промо-объемов
Неадекватная история продаж.

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

Прогнозирование продаж: сглаживание промо - выбросыЗдесь мы можем наблюдать две промо-акции длительностью по две недели: первая на 37-38 неделе (10.09.18-23.09.18) и вторая на 45-46 неделе (05.11.18-18.11.18), где на первой неделе каждой промо-акции клиент забирает 60% согласованных промо-объемов, а на второй 40% (это как раз и есть механика промо, о которой мы поговорим чуть позже).

Если мы начнем прогнозировать, основываясь на такой истории продаж — прогнозы могут оказаться «слегка» завышенными и именно поэтому такие выбросы от промо-акции необходимо сгладить. Общаясь с «коллегами по цеху» которые работают в продажах и занимаются «прогнозированием»(!), я узнал, что такого понятия, как «сглаживание промо» у них не существует. К таким выбросам они подходят очень радикально: строя прогноз, они просто не учитывают этот период в прогнозировании, просто удаляют строку с тем или иным показателем. Не считаю, что это правильно, как минимум потому что наш числовой ряд будет неполноценным и последующие объемы быть спрогнозированы некорректно.

Я выделил прогнозирование в кавычки не просто так: помимо радикального подхода к сглаживанию промо, подход к построению прогноза у моих коллег тоже не заслуживает доверия и внимания — они просто берут среднее значение трех предыдущих показателей и накидывают сверху 10-20%, а то «мало ли что». Ничего плохого про них не скажу, ведь они сотрудники отдела продаж, они продают, а не считают и рассчитывают, поэтому прогнозирование продаж для них — дело вторичное. На этом мы не будем заострять внимание, это просто можно принять к сведению, чтобы потом не удивляться. А мы продолжим работать со сглаживанием промо.

Нахождение выбросов.

Да, если мы будем рассматривать гистограммы, аналогичные предыдущей, мы без проблем сможем визуально определять периоды с промо. Но что если у нас 1000, 5000, 10000 гистограмм? Такой вариант нам не очень подойдет. Тем более, если мы будем разрабатывать инструмент для прогнозирования (а мы будем), необходимо будет «задать» логику нахождения таких выбросов математично! Ведь инструмент не сможет «на глаз» их находить.

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

  1. Рассчитываем среднее арифметическое всех показателей нашего временного ряда.
  2. Находим отклонения каждого показателя от среднего арифметического (по модулю).
  3. Находим среднее арифметическое всех отклонение.
  4. Находим коэффициенты отклонения — отношение отклонения каждого показателя к среднему отклонению.
  5. Экспертно определяем оптимальный допустимый коэффициент отклонения.
  6. Все показатели, коэффициент отклонения которых превышает допустимый, считаем неадекватными.

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

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

  1. Среднее арифметическое нашего числового ряда — 192,42
  2. В третьем столбце — отклонения каждого показателя от среднего арифметического по модулю
  3. Среднее отклонение — среднее арифметическое всех отклонений — 234,49
  4. В четвертом столбце — каждое отклонение делим на среднее отклонение
  5. Предположим, что допустимое отклонение — 150%
  6. В пятом столбце — сравниваем отклонение каждого показателя выше допустимого — обращаем на это внимание

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

Следует отметить, что у данного способа есть серьезные недостатки, которые необходимо учитывать при прогнозировании. Если история продаж слишком маленькая или в ней есть несколько промо с очень большими объемами, такой алгоритм «не заметит» небольших промо, потому что среднее арифметическое будет завышено и маленькие отклонения будут считаться нормой.

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

сглаживание промо проблематично

В первом случае для исключения завышенного среднего арифметического можно использовать среднее геометрическое, среднее гармоническое или медиану числового ряда. Опять же, все зависит от частоты промо, от размера истории продаж и величины промо-объемов относительно средних показателей регулярных продаж. Также, можно использовать «Урезанное Среднее» — это обычное среднее арифметическое, только уже не полного числового ряда, а ряда без самых высоких и самых низких значений (числовой ряд сортируется по возрастанию и отбрасывается несколько значений в начале ряда и несколько значений в конце).

Во втором случае все гораздо сложнее — если подобных примеров немного, то я бы просто рекомендовал бы спрогнозировать их вручную. Если же их большинство — как вариант, вместо нахождения «среднего значения» для нахождения среднего отклонения, взять какую-то определенную экспертным путем константу, и уже от нее рассчитывать средние отклонения и коэффициенты, после чего определять неадекватные показатели. А еще лучше — провести переговоры с клиентом, для исключения такого безобразного формирования заказов, но это уже совсем другая история..

Второй способ нахождения выбросов — нахождение минимальных и максимальных границ числового ряда через среднеквадратическое отклонение. Алгоритм такой:

  1. Находим дисперсию числового ряда — сумма квадратов отклонений каждого значения числового ряда от среднего значения, деленное на количество значений числового ряда.
  2. Находим среднеквадратичное отклонение (или стандартное отклонение, или сигма — σ) — корень от дисперсии.
  3. Экспертно определяем коэффициент для среднеквадратичного отклонения — пусть будет 1,2 — его я использую чаще всего.
  4. Высчитываем минимально и максимально допустимую границу числового ряда — находим его среднее арифметическое и вычитаем или складываем из полученного результата среднеквадратичное отклонение умноженное на коэффициент 1,2 соответственно.
  5. Все значения, которые выходят за пределы минимальной и максимальной границы являются неадекватными.

Принцип данного способа похож на предыдущий. И точно также, после нахождения неадекватных показателей переходим к шагу «сглаживание промо».

Сглаживание промо.

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

После того, как мы выявили те периоды, в которые было промо, необходимо эти периоды сгладить. Можно поступить так, как я писал ранее — просто не учитывать данные периоды во время прогнозирования, но, повторюсь, это будет не совсем правильно. Наиболее разумно будет заменить увеличенный объем этого периода на какой-либо прогнозный. То есть спрогнозировать «какой объем был бы выбран в этот период, если бы не было промо», основываясь на всей истории продаж.

Грубо говоря, в нашем случае, чтобы построить прогноз на будущее — необходимо построить прогноз на уже прошедшие периоды с промо-объемами. Для этого мы будем пользоваться различными способами построения прогноза, о которых я подробно расскажу в соответствующей статье. Хочу напомнить, что все эти способы указаны в карте памяти «Прогноз продаж».

Важно! Если вы точно знаете, в какой период времени и какой промо-объем был выбран (такое бывает не часто, но все-таки бывает), знаете механику выборки промо, то, возможно, проще будет из общего объема продаж вычесть промо-объем и мы как раз получим искомый объем регулярных продаж, который можно будет корректно использовать в прогнозировании.

Оставить комментарий