Три года назад мы публиковали [Переобучение: когда мера точности ошибается](/blog/2009/4/22/overfitting-when-accuracy-measure-goes-wrong/), однако переобучение далеко не единственная ситуация, когда простые метрики точности могут быть очень вводящими в заблуждение. Сегодня мы сосредоточимся на очень ошибочной ситуации: прерывистом спросе, который обычно возникает при анализе продаж на уровне магазина (или электронной коммерции).

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

Иллюстрация прерывистых продаж

Самые популярные метрики ошибок в прогнозировании продаж - это Средняя Абсолютная Ошибка (MAE) и Средняя Абсолютная Процентная Ошибка (MAPE). В качестве общего руководства мы предлагаем придерживаться MAE, так как MAPE ведет себя очень плохо, когда временные ряды не являются гладкими, то есть всегда, что касается розничных торговцев. Однако есть ситуации, когда MAE также ведет себя плохо. В эти ситуации попадают низкие объемы продаж.

Давайте рассмотрим иллюстрацию выше. У нас есть товар, проданный за 3 дня. Количество проданных единиц в первые два дня равно нулю. На третий день продается одна единица. Предположим, что спрос, на самом деле, составляет ровно 1 единицу каждые 3 дня. Технически говоря, это распределение Пуассона с λ=1/3.

В следующем примере мы сравниваем две модели прогнозирования:

  • плоская модель M на 1/3 каждый день (среднее значение).
  • плоская модель Z на ноль каждый день.

Что касается оптимизации запасов, модель с нулевым прогнозом (Z) является абсолютно вредной. Предполагая, что анализ резервного запаса будет использоваться для вычисления точки перезаказа, нулевой прогноз очень вероятно приведет к точке перезаказа, равной нулю, что вызовет частые нехватки товара. Метрика точности, которая бы предпочла модель с нулевым прогнозом более разумным прогнозам, будет вести себя довольно плохо.

Давайте рассмотрим наши две модели с точки зрения MAPE (*) и MAE.

  • M имеет MAPE 44%.
  • Z имеет MAPE 33%.
  • M имеет MAE 0.44.
  • Z имеет MAE 0.33.

(*) Классическое определение MAPE включает деление на ноль, когда фактическое значение равно нулю. Мы предполагаем здесь, что фактическое значение заменяется на 1, когда оно равно нулю. В качестве альтернативы, мы также могли бы делить прогноз (вместо фактического значения) или использовать sMAPE. Эти изменения не имеют значения: выводы обсуждения остаются теми же.

В заключение, здесь, согласно как MAPE, так и MAE, преобладает модель ноль.

Однако можно возразить, что это упрощенная ситуация и она не отражает сложность реального магазина. Это не совсем верно. Мы провели тесты на десятках розничных магазинов, и обычно побеждает модель (согласно MAE или MAPE) - модель ноль, которая всегда возвращает ноль. Более того, эта модель обычно побеждает с значительным отрывом от всех остальных моделей.

На практике, на уровне магазина, полагаться на MAE или MAPE для оценки качества прогнозных моделей - запрос на проблемы: метрика предпочитает модели, возвращающие нули; чем больше нулей, тем лучше. Этот вывод справедлив для почти каждого магазина, который мы анализировали до сих пор (за исключением некоторых товаров с высоким объемом, которые не страдают от этой проблемы).

Читатели, знакомые с метриками точности, могут предложить использовать вместо этого среднеквадратичную ошибку (MSE), которая не будет предпочитать модель ноль. Это верно, однако MSE, примененная к неустойчивым данным - и продажи на уровне магазина неустойчивы - не является численно стабильной. На практике, любое выброс в истории продаж значительно искажает конечные результаты. Именно такая проблема и является ПРИЧИНОЙ, по которой статистики так усердно работали над надежной статистикой в первую очередь. Здесь нет бесплатного обеда.

Как оценить прогнозы на уровне магазина?

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

Прорыв произошел только несколько месяцев назад с помощью квантилей. В сущности, просветление заключалось в следующем: забудьте о прогнозах, важны только точки повторного заказа. Стараясь оптимизировать наши классические прогнозы по метрикам X, Y или Z, мы пытались решить неправильную проблему.

Подождите! Поскольку точки повторного заказа рассчитываются на основе прогнозов, как вы можете сказать, что прогнозы не имеют значения?

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

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