В большинстве известных мне коробочных прогнозных систем есть этап, когда часть исторических данных о продажах отбрасывается.  К примеру, этот этап есть в SAP и в Forecast. Обычно отбрасывают 2% самых больших и 2% самых маленьких данных в распределении. Это непонятные аномальные данные. Их называют «выброс».

Логика «если мы что-то не понимаем, то мы на это не смотрим» немного странная. Казалось бы, это самые интересные данные. Почему на них не смотреть? И с другой стороны, если математическая модель хорошо сделана, то присутствие этих данных в расчете не должно мешать.

Конкретный пример исследования аномалии в данных о продажах светильников в гипермаркетах DYI приводит нас к интересным выводам и заставил пересмотреть алгоритм заказа и бизнес-процессы.

Светильник (бра) продается один раз в 2 недели по 1-2 штуки. То есть, иногда их покупают парами. Можно подумать, что это неликвид. Однако, исследование продаж других подобных светильников говорит, что это рядовая ситуация. Товар интерьерный. Для покупателя важна широта ассортимента. В этой ситуации продажи каждого конкретного артикула небольшие, а группа в целом торгуется хорошо.

Аномалия случилась, когда в одну неделю купили 54 светильника, что превысило обычный годовой оборот и вывело этот конкретный светильник в топ. На следующей неделе алгоритм заказал 54 светильника во все магазины. Зачем? Обычно магазин держит 3 штуки и этого хватает. Стали разбираться. Ниже статистика по чекам этого магазина и спектр распределения количества товара в покупке:

Кол-во в чеке (шт.)

Покупок (фактов)

Продажи (шт.)

1

15

15

2

2

4

3

1

3

54

1

54

Стало понятно, что это была покупка одного покупателя. Он купил светильники для оформления отеля. Что бы вы сделали с этой аномалией? Отбросить эту продажу и робот закажет 3 штуки. Так?

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

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

  1. В сети нет отлаженной технологии торговли под заказ покупателя. Все такие случаи решаются индивидуально.

  2. Непонятно, как автоматически провести границу – какой объем товарного запаса мы держим в торговом зале, а какой уже под заказ (если бы была технология торговли под заказ). В данном случае мат. модель нам показывает, что нам выгоднее держать большой запас и ждать редкого крупного покупателя.

  3. Мы ничего не знаем о готовности покупателя ждать выполнения заказа.

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

1
1
2
2
3
3
4
4
5
5
6
6

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

Я немного слукавил выше, когда говорил, что это графики относятся к разным товарам. Запутаю вас окончательно. Графики 1–3 это разные товары, а графики 4–6 это один и тот же товар в разные годы. Это светодиодный прожектор на 10 ват. Товар ведет себя по‑разному в течении жизни товара от вывода на рынок до закрытия. Сперва покупатели настороженно относятся, покупают по 1 шт. Затем, когда товар себя зарекомендовал, ему находят массовое применение. И последний этап — разочарование. Все ещё есть крупные покупки, но в целом покупок мало, на этом этапе «оптовые» покупатели вносят больший вклад.

Итоги

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

Количество штук одного SKU в покупке — важный показатель, который необходимо учитывать в математической модели прогнозирования спроса. Учитывает ли этот показатель ваша модель?