Почему мы не считаем MAPE, RMSE и другие математические ошибки при прогнозировании спроса

MAPE, RMSE и другие математические ошибки прогнозирования: что показывают и почему мы не считаем их при управлении запасами

MAPE, RMSE и MAE — это способы измерить, насколько прогноз спроса разошёлся с фактом, в процентах или в единицах товара. Считаются по готовым формулам за пару минут. Проблема в том, что для управления запасами эти метрики почти бесполезны: они не показывают, во сколько ошибка обошлась бизнесу в деньгах, не различают дефицит и излишки и вообще не учитывают страховой запас. Ниже — формулы и шкала интерпретации каждой метрики, три причины, почему на них нельзя опираться при выборе алгоритма прогнозирования, и как оценивать точность в деньгах вместо процентов.

Что такое MAPE, RMSE и другие метрики ошибки прогноза

Ошибка прогноза — это разница между фактическим значением спроса и тем, что предсказал алгоритм. Чем больше ошибка, тем менее точен прогноз: например, при ошибке прогнозирования 5 % точность прогноза считается равной 95 %.

MAPE: формула и что она показывает

MAPE (Mean Absolute Percentage Error) — средняя абсолютная процентная ошибка, самая распространённая метрика точности прогноза:

MAPE = (1 / n) × Σ |Факт − Прогноз| / Факт × 100 %

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

Какое значение MAPE считается хорошим

Отраслевого стандарта нет. Чаще всего ссылаются на шкалу из книги Колина Льюиса Industrial and Business Forecasting Methods (1982): до 10 % — высокая точность, 10–20 % — хорошая, 20–50 % — приемлемая, выше 50 % — прогноз считается неточным. Шкала предложена для промышленного прогнозирования и с тех пор кочует по статьям как универсальная, хотя такой не задумывалась.

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

RMSE: чем отличается от MAPE

RMSE (Root Mean Square Error) — среднеквадратичная ошибка прогнозирования:

RMSE = √( (1 / n) × Σ (Факт − Прогноз)² )

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

MAE, WAPE, SMAPE и Bias: чем они закрывают дыры MAPE

MAE (Mean Absolute Error) — средняя абсолютная ошибка, то же самое, что и в MAPE, но без перевода в проценты: просто среднее по модулю отклонений факта от прогноза в единицах товара.

У MAPE есть известные слабые места, и под каждое придумана своя метрика. Знать их полезно хотя бы для того, чтобы понимать, что показывает отчёт, который присылает поставщик системы.

Метрика Что считает Какую проблему решает
MAE Среднее отклонение по модулю в единицах товара То же, что MAPE, но без процентов — не ломается на нулевых продажах
WAPE Сумма отклонений, делённая на суммарный факт Взвешивает ошибку по объёму: промах по ходовой позиции весит больше, чем по редкой
SMAPE Отклонение относительно среднего между фактом и прогнозом Симметрия: MAPE наказывает завышение прогноза мягче, чем занижение
Bias Среднее отклонение БЕЗ модуля, со знаком Показывает систематический перекос: прогноз стабильно завышает или занижает

Формулы двух самых полезных из них:

WAPE = Σ |Факт − Прогноз| / Σ Факт × 100 %
Bias = (1 / n) × Σ (Прогноз − Факт)

Bias стоит особняком: остальные метрики берут отклонение по модулю и потому не видят направления. Если прогноз девять месяцев подряд завышает спрос на 5 %, MAPE покажет ровные 5 %, и по ней всё выглядит стабильно. Bias в этом случае даст устойчивый плюс — сигнал, что модель систематически перезакладывается, и склад медленно заполняется лишним товаром.

Простыми словами: MAPE и MAE отвечают на вопрос «на сколько процентов или штук ошибся прогноз в среднем», RMSE — «насколько сильно прогноз ошибался в пиковые, самые неудачные периоды», Bias — «в какую сторону он ошибается постоянно». Ни одна из них не отвечает на вопрос «сколько денег компания на этом потеряла».

На практике ошибку можно считать по каждой позиции товара отдельно или как среднюю оценку по всей товарной группе. Несмотря на то что большинство компаний до сих пор используют MAPE, RMSE и MAE для оценки алгоритмов прогнозирования, мы считаем, что этих метрик недостаточно для решений об управлении запасами — и вот почему.

Три причины, почему MAPE и RMSE вводят в заблуждение при управлении запасами

Ошибка № 1: проценты и штуки не показывают деньги

MAPE, RMSE и MAE — это обезличенные цифры, которые ничего не говорят о деньгах, а бизнесу нужно принимать решения на основе денежной выгоды. Ошибка в 80 % на первый взгляд звучит устрашающе, но за одинаковым процентом могут скрываться совершенно разные суммы: ошибка по гвоздям стоимостью 0,5 рубля за штуку — это одни потери, а та же по величине процентная ошибка на партии промышленного оборудования стоимостью 700 000 рублей за единицу — совершенно другой масштаб. Объём проданной продукции при этом тоже никак не учитывается классическими метриками ошибки.

Ошибка № 2: дефицит и излишки — это разные по цене ошибки, а метрика их не различает

MAPE и RMSE не различают, в какую сторону ошибся прогноз, а для бизнеса это принципиально разные последствия: заморозка денег в излишних запасах или недополученная прибыль от дефицита. Например, если прогноз предполагал продажу 20 единиц товара, а по факту продали 15 — это излишек: 5 единиц, которые лежат на складе и требуют затрат на хранение, замораживая оборотные средства. Если же ситуация обратная — прогноз 20 единиц, а спрос составил 25, это уже упущенная прибыль, равная разнице между суммой закупки и суммой реализации недостающих 5 единиц. По величине это одна и та же ошибка прогнозирования (в MAPE она даст одинаковый процент в обоих случаях), но денежный результат — принципиально разный.

Ошибка № 3: метрики не учитывают страховой запас

MAPE, RMSE и MAE описывают только точечный прогноз спроса и никак не оценивают страховой запас. А он не является малой добавкой к остаткам: по практике нормирования запасов страховой запас составляет 30–50 % от среднего уровня текущего запаса (Е. В. Акимова, «Планово-экономический отдел» № 6/2017) — то есть порядка четверти-трети всего складского объёма. Каким бы точным ни казался прогноз по этим метрикам, если страховой запас рассчитан некорректно, реальная картина по деньгам и остаткам искажается существенно.

Как оценивать точность прогноза в деньгах, а не в процентах

Чтобы устранить ошибку № 1, вместо процентов и штук мы считаем стоимость ошибки прогнозирования в деньгах — на языке, понятном бизнесу, а не только аналитикам.

Чтобы устранить ошибку № 2, мы всегда считаем два разных денежных значения в зависимости от направления ошибки: экономический урон от дефицита (недопроданные товары, умноженные на разницу цен реализации и закупки) отдельно от урона на хранение излишков (нереализованный остаток, умноженный на ставку альтернативных вложений за период). Подробный числовой пример такого расчёта на своих метриках (MAD, MSE, sMAPE, wMAPE) есть в статье «Почему повышение точности прогноза не гарантирует повышение прибыли» — здесь мы не повторяем тот же пример, а показываем результат на реальном сравнении алгоритмов ниже. О том, что именно стоит измерять вместо процентов ошибки, есть отдельный разбор — «Точность прогнозирования или прибыль? Что нужно измерять?».

Покажем счёт на другом товаре. Аккумуляторы для грузовиков: закупка 5200 ₽ за штуку, продажа 7800 ₽, маржа 2600 ₽. Прогноз на месяц — 400 штук.

Ошиблись в сторону дефицита. Реальный спрос оказался 460 штук, 60 продаж компания не закрыла. Недополученная прибыль считается как количество недопроданного, умноженное на разницу цен реализации и закупки:

(460 − 400) × (7800 − 5200) = 60 × 2600 = 156 000 ₽

Ошиблись в сторону излишка. Теперь наоборот: спрос составил 340 штук, 60 аккумуляторов остались лежать на складе ещё месяц. Здесь считается не упущенная прибыль, а стоимость замороженных денег — затраты на нереализованный остаток по ставке альтернативных вложений. При ставке 22 % годовых:

(400 − 340) × 5200 × 0,22 / 12 = 60 × 5200 × 0,018333 = 5 720 ₽

Вывод: в штуках ошибка одинаковая — 60 единиц в обе стороны. MAPE даст 13,0 % при дефиците и 17,7 % при излишке: значения одного порядка, по ним обе ситуации выглядят сопоставимо. А в деньгах разница более чем в 27 раз — 156 000 ₽ против 5 720 ₽. Метрика, которая берёт отклонение по модулю, эту разницу показать не может в принципе.

Чтобы устранить ошибку № 3, мы сравниваем алгоритмы не по точности точечного прогноза, а по уровню сервиса — доле спроса, которую компания гарантированно покрывает запасом на складе за период его пополнения. При уровне сервиса 90 % из десяти обращений за товаром девять закрываются с полки, а одно упирается в пустое место. Может показаться логичным стремиться к 100 %, но на практике 100 %-й уровень сервиса приводит к сильному перезатариванию склада и для товаров с ограниченным сроком годности — к списаниям, из-за чего прибыль часто оказывается ниже, чем при поддержании уровня сервиса, скажем, 95 %. Оптимальный уровень сервиса свой для каждой отдельной товарной позиции. Как он встраивается в общую систему показателей — в статье про ключевые показатели эффективности управления запасами.

Поскольку страховой запас может занимать значительную долю остатков, его нельзя игнорировать при сравнении алгоритмов, как это происходит при расчёте MAPE и RMSE. Поэтому мы сравниваем не точность прогноза как такового, а точность оптимального запаса при заданном уровне сервиса: такого количества товара на складе, при котором прибыль от реализации максимальна, а издержки на хранение минимальны.

Из этого получаются два критерия сравнения алгоритмов:

Критерий № 1 — суммарные денежные потери при заданном уровне сервиса. Поскольку не все компании считают свой оптимальный уровень сервиса и часто используют заданное заранее значение, мы считаем этот критерий сразу для всех распространённых уровней сервиса — 70 %, 75 %, 80 %, 85 %, 90 %, 95 %, 98 %, 99 % — и суммируем потери по каждому. Чем меньше суммарные потери, тем точнее работает алгоритм в целом, независимо от того, какой конкретно уровень сервиса выберет компания.

Критерий № 2 — для компаний, которые уже считают свой оптимальный уровень сервиса. Это соотношение потерь на оптимальном уровне сервиса по прогнозному (модельному) распределению продаж и по фактическому распределению. Прогнозируемое значение оптимального уровня сервиса не всегда совпадает с оптимальным значением на реальных данных, поэтому мы сравниваем ошибку между объёмом продаж на прогнозном оптимуме и объёмом, который обеспечивает оптимум по факту.

Если реальный уровень сервиса оказался выше прогнозного, ошибка считается как разница между реальным и прогнозным объёмом, умноженная на разницу цен реализации и закупки, — это тот же расчёт, что и для критерия № 1, только относительно оптимума, а не заданного уровня сервиса. Если реальный уровень сервиса оказался ниже прогнозного — как затраты на нереализованный остаток по ставке альтернативных вложений.

На тех же аккумуляторах. Модель посчитала, что оптимальный уровень сервиса по этой позиции — 90 %, и под него нужно 400 штук.

Если по факту оптимум оказался выше — 94 % и 430 штук, — ошибка считается как недобор продаж, умноженный на маржу:

(430 − 400) × 2600 = 78 000 ₽

Если фактический оптимум оказался ниже — 86 % и 375 штук, — значит 25 аккумуляторов были закуплены зря, и ошибка считается как стоимость их хранения:

(400 − 375) × 5200 × 0,22 / 12 = 25 × 5200 × 0,018333 = 2 383 ₽

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

Важное замечание: в идеале ошибку стоит считать только при оптимальном уровне сервиса — между прогнозным и реальным значением. Но поскольку не все компании перешли на расчёт оптимального уровня сервиса, приходится держать оба критерия одновременно: № 1 как универсальный ориентир, № 2 — как более точный для тех, кто оптимальный уровень сервиса уже считает.

Пример на реальных данных: Forecast NOW! против ARIMA и метода Кростона

Сравнение точности прогнозирования на базе номенклатуры бытовой химии — оба критерия показывают суммарные потери в рублях: чем меньше значение, тем точнее работает алгоритм.

Forecast NOW! против ARIMA

Критерий (потери, ₽) Forecast NOW! ARIMA Потери ARIMA выше на
Потери на оптимальном уровне сервиса 92 997 114 169 916 601 82,71 %
Критерий № 2 (расхождение модельного и фактического распределения) 4 188 749 7 611 365 81,71 %
Критерий № 1 (сумма потерь по всем уровням сервиса) 820 099 299 1 550 434 475 89,05 %

Forecast NOW! против метода Кростона

Критерий (потери, ₽) Forecast NOW! Метод Кростона Потери Кростона выше на
Потери на оптимальном уровне сервиса 6 379 616 8 328 509 30,55 %
Критерий № 2 (расхождение модельного и фактического распределения) 1 076 984 1 341 537 24,56 %
Критерий № 1 (сумма потерь по всем уровням сервиса) 128 690 989 161 891 666 25,80 %

В обоих сравнениях меньшее значение потерь — лучше, а последний столбец показывает, на сколько процентов потери конкурирующего алгоритма превышают потери Forecast NOW! (за 100 % берутся потери Forecast NOW! как меньшая величина). Разница неодинаковая (от 24,56 % до 89,05 %) — это ожидаемо: методы вроде Кростона изначально лучше приспособлены для спорадического спроса, чем классический ARIMA, поэтому разрыв с ним меньше. Но в обоих случаях денежные потери у Forecast NOW! ниже — то, что MAPE и RMSE сами по себе показать не могут.

Как устроены сами классические методы, из которых выбирают алгоритм, — в обзоре классических методов прогнозирования спроса.

Частые вопросы

MAPE — это что?

MAPE (Mean Absolute Percentage Error) — средняя абсолютная процентная ошибка прогноза: среднее отклонение прогноза от факта, выраженное в процентах. Чем ниже MAPE, тем точнее прогноз с математической точки зрения, но эта метрика не показывает, во сколько ошибка обходится бизнесу в деньгах.

Какая формула у MAPE?

MAPE = (1 / n) × Σ |Факт − Прогноз| / Факт × 100 %, где n — число периодов или товарных позиций, по которым считается среднее.

MAPE 20 % — это хорошо или плохо?

По распространённой шкале 20 % — граница между хорошей и приемлемой точностью. Но само по себе значение мало что говорит: на ровном ежедневном спросе это слабый результат, на редких позициях с продажами раз в две недели — близко к пределу возможного. Сравнивать MAPE имеет смысл между алгоритмами на одном и том же ассортименте, а не со шкалой.

Чем RMSE отличается от MAPE?

MAPE усредняет процентные отклонения по модулю, RMSE — возводит абсолютные отклонения в квадрат перед усреднением и берёт корень. Из-за этого RMSE сильнее штрафует редкие крупные промахи прогноза, а MAPE — более ровная метрика по всем периодам.

Чем WAPE лучше MAPE?

WAPE взвешивает ошибку по объёму продаж: отклонение по ходовой позиции влияет на итог сильнее, чем такое же по редкой. MAPE усредняет проценты без учёта веса, поэтому промах по товару с продажами в две штуки в месяц весит в ней столько же, сколько промах по бестселлеру.

Что показывает Bias в прогнозе спроса?

Bias — среднее отклонение прогноза от факта со знаком, без модуля. Он показывает систематический перекос: устойчивый плюс означает, что модель регулярно завышает спрос и склад накапливает лишнее, устойчивый минус — что прогноз занижен и возникает дефицит. MAPE такой перекос не видит, потому что берёт отклонения по модулю.

Почему нельзя выбрать алгоритм прогнозирования просто по самому низкому MAPE?

Потому что низкий MAPE не гарантирует меньших денежных потерь: он не различает, ошибся ли прогноз в сторону дефицита или излишков, и не учитывает страховой запас. Алгоритм с более высоким MAPE иногда даёт меньшие реальные потери в деньгах и наоборот.

Что использовать вместо MAPE для оценки алгоритмов?

Сравнение суммарных денежных потерь при заданном уровне сервиса (или диапазоне уровней сервиса) показывает не абстрактную точность, а прямое влияние на прибыль и издержки хранения, в отличие от MAPE, RMSE и MAE.

Можно ли вообще не считать MAPE и RMSE?

Как внутренний технический показатель качества модели можно оставить, это не запрещено. Проблема не в самих метриках, а в том, чтобы принимать по ним бизнес-решения (выбор алгоритма, оценка эффективности прогноза) без пересчёта в деньги — именно на этом этапе MAPE и RMSE начинают вводить в заблуждение.

С чего начать

Если сейчас алгоритмы прогнозирования в компании сравниваются только по MAPE, RMSE или похожим метрикам, стоит для начала проверить: известно ли, во сколько рублей обходится текущая точность прогноза — отдельно потери от дефицита и отдельно от излишков — и учтён ли при этом страховой запас, а не только точечный прогноз.

Дальше это можно считать автоматически: Forecast NOW! сравнивает алгоритмы прогнозирования по денежным потерям на разных уровнях сервиса, а не по абстрактным процентам ошибки. Проверить, как это выглядит на своих данных, можно на демонстрации или в расчёте для конкретного ассортимента.

Готовы ответить на вопросы
и показать Forecast NOW! в деле
Наши специалисты готовы провести демонстрацию программы и представить ее на самостоятельное ознакомление, рассчитать стоимость внедрения и сроки окупаемости, проконсультировать о лучших практиках управления запасами.
Телеграм-канал и рассылка
Актуальные материалы по теме управления товарными запасами и наши исследования.
Учебный курс
Управление товарными запасами для специалистов по закупкам.

Другие публикации