Почему повышение точности прогноза не гарантирует повышение прибыли. Часть 2

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

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

Проблема 4. MAD, MSE, RMSE, MAPE - это математические ошибки. Они ничего не говорят про деньги

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

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

Эти методы больше относятся к математике, а не к бизнесу. Это обезличенные цифры, которые ничего не говорят про деньги. Решения же принимаются на основе выгоды, измеряемой деньгами. Например, ошибка в 80% на первый взгляд звучит устрашающе. Но в реальности за ней могут скрываться совершенно разные вещи. Ошибка по гвоздям со стоимостью одного гвоздя в 50 копеек – это одни потери. Но они совершенно несопоставимы с потерями от продажи промышленного оборудования стоимостью 700 000 рублей с той же величиной ошибки прогнозирования. Не стоит забывать и про объем, который тоже не учитывается ошибками.

Второй важный момент - это заморозка денежных средств в запасах и недополученная прибыль от дефицита продукции на складе. Например, если мы прогнозируем продажу 20 колесных дисков, а по факту продали 15. То это одна цена ошибки – 5 колесных дисков, которые потребуют затраты на хранение на определенное время, и как следствие стоимость замороженных оборотных средств под определенный процент. Если рассмотреть обратную ситуацию – прогнозируем продажу 20 дисков, спрос составляет 25 штук. Это уже упущенная прибыль, которая составляет разницу сумм закупки и реализации продукции. По сути мы имеет одну и ту же ошибку прогнозирования, но результат от нее может быть совершенно разным.

Давайте посмотрим на пример со списанием просроченной продукции

Мы видим достаточно неплохую точность прогнозирования - 85,95%. Черные столбцы - это количество продукции, которую мы перепрогнозированили и её пришлось списать. Общие потери компании - 2270 рублей.

А теперь посмотрим тот же самый товар, но прогноз другой. В этот раз он постоянно недооценивает продажи.

Точность прогнозирования здесь значительно ниже - 74,38%. И при выборе, мы должны были остановиться на первом прогнозе, так как там точность значительно выше. Но во втором случае суммарные потери компании снизились практически в 2 раза - до 1220 рублей. И при такой цене закупки, цене реализации и динамике спроса компании будет выгоднее недооценивать спрос, чем переоценивать.

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

Экономический урон = количество недопроданных товаров* (цена реализации - цена закупки)

Например, вы покупаете колесные диски по 3000 рублей за штуку и продаете по 4000. Прогноз на месяц составил 1000 дисков, реальный спрос оказался 1200 штук. В этом случае:

Экономический урон = (1200-1000)*(4000-3000)=200 000 рублей.

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

Экономический урон = затраты на нереализованную продукцию * ставка альтернативных вложений

Предположим, что реальный спрос в предыдущем примере оказался 800 дисков и вам пришлось хранить диски еще один месяц. Пусть ставка альтернативных вложений составляет 20% в год. Тогда:

Экономический урон = (1000-800)*3000*0,2/12=10 000 рублей.

Соответственно, в каждом конкретном случае, мы будет учитывать одно из этих значений.

Решение 4. Считать ошибку прогнозирования в деньгах


Проблема 5. Оценивается только точность оперативного прогноза. Страховой запас при этом может достигать до 70% от общего объема запасов

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

Страховой запас может при этом рассчитываться по разному:

  • Интуитивно сотрудниками компании

  • Процент от среднедневных продаж

  • Используя нормальное распределение для спроса, ошибок прогнозирования или сроков поставки по заданному уровню сервиса I рода

Для того, чтобы решить эту проблему, мы предлагаем сравнивать алгоритмы с использованием понятия уровень сервиса. Уровень сервиса (здесь и далее - уровень сервиса II рода, fill rate) – это доля спроса, которую мы гарантировано покроем с использованием имеющихся на складе запасов в течении периода их пополнения.

Например, уровень сервиса 90% означает, что мы удовлетворим 90% спроса. На первый взгляд может показаться логичным, что уровень сервиса всегда должен составлять 100%. Тогда и прибыль будет максимальна. Но в реальных ситуациях зачастую дело обстоит иначе: удовлетворение 100% уровня сервиса приводит к сильному перезатариванию склада, а для товаров с ограниченными сроками годности еще и к списанию. И убытки от затрат на хранение, списания просроченной продукции и недополученной прибыли от вложения свободных денег в итоге снизят прибыль от реализации, в случае если бы мы поддерживали уровень сервиса 95%. Нужно заметить, что для каждой отдельной позиции товаров будет свой оптимальный уровень сервиса.

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

В качестве основного критерия качества прогнозирования мы используем суммарное значение потерь для заданного уровня сервиса, о котором писали выше . Таким образом мы оцениваем потери в денежном выражении при использовании данного конкретного алгоритма. Чем меньше потери - тем точнее работает алгоритм.

Здесь нужно заметить, что для разных уровней сервиса оптимальный запас тоже может различаться. И в одном случае прогноз будет точно в него попадать, а в другом возможны перекосы в большую, либо меньшую сторону. Так как многие компании не рассчитывают оптимальный уровень сервиса, а используют заданный заранее, значение основного критерия мы вычисляем для всех самых распространенных уровней сервиса: 70%, 75%, 80%, 85%, 90%, 95%, 98%, 99% и суммируем потери. Таким образом мы можем проверить, насколько хорошо в целом работает модель.

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

Потери в рублях

Метод 1

Метод 2

Метод 3

Метод 4

Суммарное значение по распространенным уровням сервиса (80%, 85%, 90%, 95% и т.д.)

965 314

947 936

866 907

1 290 989

В примере самым неэффективным будет метод №4, а самым эффективным - метод № 2

Решение 5. Планировать товарные запасы в соответствии с заданным уровнем сервиса II рода


Как можно еще улучшить модель?

Использование фиксированного уровня сервиса - это уже устаревший метод. Современные программные продукты позволяют динамически управлять уровнем сервиса для каждой товарной позиции. Человеку нет необходимости делать это самостоятельно, экспертным путем. Программа сама определит, что выгоднее - держать на складе несколько лишних десятков товаров или, наоборот, поддерживать дефицит. Уровень сервиса для конкретного SKU будет рассчитан автоматически с учетом всевозможных рисков. Это называется оптимальный уровень сервиса.

Такой подход заставляет нас считать ошибку прогнозирования совсем по-другому. Экономический урон в этом случае будет выглядеть, как как соотношение потерь на оптимальном уровне сервиса по ожидаемому (модельному) распределению продаж и по реальному распределению продаж (по факту).

Прогнозируемое значение оптимального уровня сервиса не всегда соответствует оптимальному значению уже на реальном распределении продаж. Поэтому мы должны сравнивать ошибку между прогнозом объема продаж на оптимальном (по модели) уровне сервиса и реальным объемом продаж, обеспечивающим оптимальное значение уровня сервиса по реальным данным.

Проиллюстрируем это на прошлом примере с дисками. Предположим, что прогнозное значение оптимального уровня сервиса для него составляет 90%, а оптимальный объем запаса для этого случая примем равным 3000 колесных дисков. Пусть в первом случае реальный уровень сервиса оказался выше прогнозного и составил 92%. Соответственно объем заказов также вырос и составил 3300 дисков. Ошибка прогнозирования будет рассчитываться как разность между реальным и фактическим объемом продаж, умноженная на разность цен реализации. Итого, мы имеем:

(3300-3000)*(4000-3000)=300 000 рублей.

Теперь представим обратную ситуацию: реальный уровень сервиса оказался меньше прогнозного и составил 87%. Реальный объем продаж при этом составил 2850 дисков. Ошибка прогнозирования будет рассчитана, как сумма затрат на нереализованную продукцию, умноженную на ставку альтернативных вложений за этот период (в качестве примера берем период сроком месяц и ставку равную 20% годовых). Итоговое значение критерия будет равно:

(3000-2850)*3000*0,2/12 = 7500 рублей

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

Пример сравнения 4-х методов по 2 критериям. Чем меньше потери, тем эффективнее метод.

Потери (руб)

Метод 1

Метод 2

Метод 3

Метод 4

Потери на оптимальном уровне сервиса

1 724 804

1 076 983

1 597 437

1 954 575

Суммарное значение потерь по распространенным уровням сервиса

965 314

947 936

866 907

1 290 989

Источник: https://habr.com/ru/post/715612/


Интересные статьи

Интересные статьи

Летом 22 года я прошел ряд неприятных (и неудачных) технических собеседований. Я столкнулся с компаниями, которые:— меняли описание вакансии после собеседования;— отказывали, потому что у меня не бы...
Даже после появления цифровых вычислительных машин вычисления и обработка сигналов зачастую производились средствами аналоговой электроники. Основу этих устройств составляли операционные усилители. ...
tl;dr: потому что перед Ы не могли возникнуть ни Ж, ни Ш. Орфография многих живых языков отражает давно исчезнувшие вещи: например, написание английского слова knight указывает на то, что когда-то ...
Ответ “Так сложилось исторически” люди не любят, потому что он ничего не объясняет.Технари говорят: дайте мне табличку и схему, я хочу знать, как работает система и как у...
Всем привет! Я бэкэнд-разработчик, пишу микросервисы на Java + Spring. Работаю в одной из команд разработки внутренних продуктов в компании Тинькофф. У нас в команде часто встает вопрос оптими...