← Все курсы · Комплект прогнозирования · Все руководства
Точность прогноза: MAE, RMSE, MAPE и месяц, который сломал один из них
К концу этой страницы вы сможете оценить прогноз пятью различными способами, сказать, что каждый из показателей вознаграждает и наказывает, и ответить на единственный вопрос, который делает любой из них значимым: лучше ли этот прогноз, чем ничего не делать. В течение пяти месяцев, указанных ниже, тот же прогноз имеет среднюю ошибку 600, среднеквадратическую ошибку 1084 и процентную ошибку, равную бесконечности.
Вот чем на самом деле заняться сегодня. Возьмите свой текущий прогноз и сравните его с самой ленивой альтернативой: фактическим, повторяющимся за последний период. Если ваш прогноз не превосходит этот показатель, сложность не оправдывает себя, и такое сравнение занимает около двух минут.
Краткая версия: измеряйте ошибки каждого периода, а затем решайте, как их усреднить. Усреднение размеров дает МАЭ. Усреднение квадратов и извлечение корня дает RMSE, что гораздо сложнее наказывает за один большой промах. Усреднение процентов дает MAPE, который прерывается всякий раз, когда фактическое значение равно нулю.
Разница между первыми двумя — вот основная причина существования обоих, и ее легче увидеть, чем определить, так что картина становится понятной.
- Ошибка, и та, которая отменяет сама себя
- MAE: средний промах, в ваших единицах.
- RMSE: тот, кто ненавидит один большой промах
- MAPE и месяц, возвращающий бесконечность
- WAPE и СМАПЕ, два обычных ремонта
- MASE: лучше, чем ничего не делать, или нет
- Кому и кому сообщить
- Полное до и после
- Крайние случаи, которые застают людей врасплох
- Почему это работает
- Использование этого в своей работе
- Все на одном экране
Вот установка. План на год составлял фиксированные 2400 в месяц, установленные заранее. Вот что произошло на самом деле.
| Месяц | действительный | Прогноз | Ошибка (фактическая − прогноз) | Абсолютная ошибка |
|---|---|---|---|---|
| январь | 2,630 | 2,400 | +230 | 230 |
| февраль | 2,245 | 2,400 | −155 | 155 |
| Маршировать | 2,585 | 2,400 | +185 | 185 |
| апрель | 0 | 2,400 | −2,400 | 2,400 |
| Может | 2,430 | 2,400 | +30 | 30 |
1. Ошибка, и та, которая самоустраняется
Перед арифметикой: сложите пять ошибок в предпоследнем столбце с их знаками. Прежде чем читать дальше, примерно спрогнозируйте, что вы получите.
Вы получаете -2110, которое, разделенное на пять, равно -422. Это предвзятость, или означает ошибку, и это действительно полезное число, которое отвечает на другой вопрос, отличный от остальной части этой страницы. В нем говорится, делаете ли вы систематические прогнозы слишком высокими или слишком низкими. У нас отрицательный результат, поэтому план в среднем оказался выше реальности, в основном из-за апреля.
Чего он не может сделать, так это измерить точность, поскольку положительные и отрицательные ошибки компенсируются. Прогноз, который на 5000 слишком высок в одном месяце и на 5000 слишком низок в следующем, имеет нулевое смещение и не является точным. Все остальные меры на этой странице существуют из-за этой отмены, и каждая из них обрабатывает ее по-своему: MAE принимает абсолютное значение, квадраты RMSE.
Сообщайте о предвзятости наряду с точностью, а не вместо нее. Прогноз с низкой ошибкой и отсутствием смещения – это хорошо. Низкая ошибка с постоянным смещением означает, что у вас есть корректируемое смещение, что является самым дешевым улучшением, доступным для любого прогноза.
2. МАЭ: средний промах, в собственных единицах.
Перед расчетом: возьмите пять абсолютных ошибок: 230, 155, 185, 2400 и 30 и усредните их в уме с точностью до сотни.
(230 + 155 + 185 + 2,400 + 30) ÷ 5 = 3,000 ÷ 5 = 600. средняя абсолютная ошибка — средний размер промаха без учета направления. Это в долларах, поэтому можно сразу прочитать: этот прогноз отличается примерно на 600 в месяц.
Скажите вслух, что вводит в заблуждение в этом предложении, учитывая таблицу над ним. Прогноз отклонился на 230, 155, 185 и 30 за четыре из пяти месяцев и на 2400 за один. Ни в одном месяце ничего не было «отклонено на 600». Среднее значение затягивается на один период, точно так же, как среднее значение перетаскивается выбросом, и по той же причине.
В любом случае преимущества MAE реальны. Это в единицах, которые волнуют людей, каждый период имеет одинаковое значение, и это самый простой показатель, который можно объяснить тому, кто не хочет изучать статистику. Его недостатком является то, что вы не можете сравнивать его по продуктам, регионам или периодам времени в разных масштабах. MAE, равный 600, превосходен для линии на миллион долларов и катастрофичен для линии на две тысячи долларов.
import numpy as np
actual = np.array([2630, 2245, 2585, 0, 2430], float)
forecast = np.array([2400, 2400, 2400, 2400, 2400], float)
error = actual - forecast
mae = np.abs(error).mean() # 600.0
bias = error.mean() # -422.0
3. RMSE: тот, кто ненавидит один большой промах
Перед номером: те же пять ошибок. Возведите каждое в квадрат, усредните квадраты, извлеките квадратный корень. Предскажите, будет ли ответ выше или ниже 600.
Ну выше: 1,083.70. При возведении в квадрат промах в 2400 раз обходится в 256 раз дороже, чем в 150, а не в 16 раз, так что один неудачный месяц полностью доминирует.
rmse = np.sqrt((error ** 2).mean()) # 1083.70
На картинке вверху этой страницы изображен этот факт, за исключением удаленных цифр. Два прогноза, каждый с отклонением 400 в общей сложности за четыре периода. Четыре промаха из 100 дают MAE 100 и RMSE 100. Один промах из 400 дает MAE 100 и RMSE 200. По одному показателю они идентичны, по другому удваиваются, а разница полностью заключается в том, как распределялась ошибка.
| Шаблон ошибки | Общая ошибка | MAE | RMSE |
|---|---|---|---|
| 100, 100, 100, 100 | 400 | 100 | 100 |
| 0, 0, 0, 400 | 400 | 100 | 200 |
Какое поведение является правильным, полностью зависит от того, во что вам обойдется промах. Если один раз ошибиться на 400 гораздо хуже, чем ошибиться на 100 четыре раза, потому что это опустошит склад или уничтожит бюджет, то RMSE измеряет то, что вас волнует, и вам следует его использовать. Если стоимость промаха пропорциональна, поэтому четыре маленьких промаха причиняют ровно столько же вреда, сколько один большой, MAE — это честная мера, а RMSE заставит вас переоценить худший месяц.
RMSE всегда не меньше MAE, и разница между ними говорит о том, насколько неравномерны ваши ошибки. У нас 600 и 1083,70, соотношение 1,8, что является громким сигналом о том, что один период наносит наибольший ущерб. Когда MAE и RMSE близки, ваши ошибки распределяются равномерно.
4. MAPE и месяц, возвращающий бесконечность
Перед проблемой: MAPE делит каждую ошибку на фактическое значение, чтобы получить процент, а затем усредняет их. Посмотрите на апрельский ряд и скажите, что произошло, прежде чем читать дальше.
Фактический показатель за апрель равен нулю. 2400, разделенное на 0, не является числом, поэтому среднее значение пяти процентов также не является числом. MAPE бесконечен, и в зависимости от вашего инструмента вы получите inf, ошибка деления на ноль или, что хуже всего, молча пропущенная строка и правдоподобный ответ.
ape = np.abs(error / actual)
# array([0.0875, 0.0690, 0.0716, inf, 0.0123])
ape.mean() # inf
Это не крайний случай, который можно игнорировать. Любой период без активности дает фактическое нулевое значение: закрытый магазин, товар до запуска, канал замолчал, неделю трекинг сломался. MAPE не определен именно для тех периодов, которые вам больше всего нужны.
Без учета апреля MAPE составляет 6,01 процента, а четыре месячные процентные ошибки составляют 8,75, 6,90, 7,16 и 1,23. Это число действительно информативно о четырех обычных месяцах, и указать его как «MAPE 6 процентов», не говоря уже о том, что месяц был исключен, — это своего рода упущение, которое обнаруживается позже.
У MAPE есть вторая, более тихая проблема: он асимметричен. Прогнозирование значения 200, когда фактическое значение равно 100, дает ошибку в 100 процентов. Прогнозирование 100, когда фактическое значение равно 200, дает 50 процентов. Тот же самый абсолютный промах, засчитанный вдвое сильнее в одном направлении, что означает, что оптимизация для MAPE незаметно снижает ваши прогнозы.
Ничто из этого не делает MAPE бесполезным. Он не имеет единиц измерения, поэтому сравнивается по продуктам и регионам, и читатели, не разбирающиеся в технических вопросах, сразу понимают процентное соотношение. Используйте его, когда ваши фактические значения достаточно далеки от нуля, и переходите к пятому разделу, когда это не так.
5. WAPE и СМАПЕ, два обычных ремонта
До исправления: проблема с MAPE при делении по каждому отдельному факту. Прежде чем читать дальше, скажите, на что вы бы разделили.
Итого. WAPE, взвешенная абсолютная процентная ошибка, складывает все абсолютные ошибки и делится на сумму фактических значений, деля один раз вместо пяти.
wape = np.abs(error).sum() / actual.sum()
# 3000 / 9890 = 0.3033 -> 30.33%
Апрель больше ничего не ломает, потому что его ноль вносит ноль в знаменатель, а не является собственным знаменателем. И результат, естественно, взвешивается по размеру, поэтому промах в большом месяце имеет большее значение, чем промах в маленьком, а это обычно то, что вам нужно. WAPE — это мой вариант по умолчанию, когда требуется процент.
Сравните эти два показателя за четыре обычных месяца, где оба работают: MAPE 6,01 процента и WAPE 6,07 процента. Почти идентичны, потому что все эти месяцы примерно одинакового размера. Разрыв открывается только тогда, когда размеры периодов различаются, и тогда WAPE отражает бизнес.
СМАПЕ, симметричная версия, делит на среднее значение фактического и прогнозируемого значения, а не только на фактическое значение. Это исправляет асимметрию, но на самом деле не решает проблему нуля: по нашим данным это дает 44,90 процента, что является странным числом, обусловленным тем, что апрель набрал 200 процентов, свой максимум. СМАПЕ часто используется при прогнозировании соревнований, и я бы не стал предлагать его деловому читателю, не объяснив его, что обычно является знаком использования чего-то другого.
| Мера | Все пять месяцев | Четыре месяца, апрель удален |
|---|---|---|
| MAE | 600.00 | 150.00 |
| RMSE | 1,083.70 | 167.37 |
| предвзятость | −422.00 | +72.50 |
| MAPE | неопределенный | 6.01% |
| WAPE | 30.33% | 6.07% |
| СМАПЕ | 44.90% | 6.12% |
Прочтите две колонки рядом, и появится смысл этой страницы. Удаление одного месяца из пяти превращает среднее число промахов из 600 в 150, а положительную предвзятость превращает в отрицательную. Ни одна из колонок не является нечестной. То, что вы публикуете, — это решение о том, является ли апрель частью того, что вы прогнозируете, и оно должно быть записано рядом с числом.
6. MASE: лучше, чем ничего не делать, или не делать
Перед идеей: МАЭ 600 — это хорошо или плохо по сравнению с чем? Прежде чем читать дальше, назовите сравнение, которое вам нужно.
Вам нужно сравнение с альтернативой, не требующей усилий. Стандартный – это наивный прогноз: предсказать, что следующий месяц будет равен этому месяцу. Вычислите его ошибку таким же образом, затем разделите.
naive_mae = np.abs(np.diff(actual)).mean() # 1435.0
mase = np.abs(error).mean() / naive_mae # 600 / 1435 = 0.418
A MASE значение ниже 1 означает, что вы превзошли наивный прогноз; выше 1 означает, что вы этого не сделали. Наш 0.418, поэтому фиксированный план в 2400 был примерно в два раза точнее, чем предположение о том, что каждый месяц повторяет предыдущий. Вот оба, забиты одинаково.
| Прогноз | MAE | RMSE | предвзятость | MASE |
|---|---|---|---|---|
| План квартиры 2400 кв.м. | 600.00 | 1,083.70 | −422.00 | 0.418 |
| Наивный, в прошлом месяце повторился | 1,174.00 | 1,604.24 | −14.00 | 0.818 |
Оба превосходят наивный базовый уровень в выборке, а плоский план превосходит его еще больше. Обратите внимание на смещение наивного прогноза, равное -14, почти нулевое, что является хорошей иллюстрацией того, почему само по себе смещение ничего не доказывает: прогноз может быть несмещенным и при этом ошибаться на 1174 раза в месяц, потому что его ошибки скорее компенсируются, чем малы.
MASE не имеет единиц измерения, работает, когда фактические значения равны нулю, и симметричен, поэтому исследователи прогнозирования обращаются к нему. Его цена в том, что он не интуитивен: никто на деловой встрече не знает, что означает 0,418, без приложенного предложения. Так что сообщите об этом как о приговоре. «Примерно в два раза точнее, чем если предположить, что в следующем месяце повторится то же самое», — вот что там говорится.
Теперь представьте себе свой собственный прогноз, независимо от того, что его дает. Если бы вы забили гол в повторе прошлого периода, выиграл бы он? Это единственное сравнение стоит больше, чем любое уточнение модели.
7. Какому сообщать и кому
Перед рекомендацией: у вас есть шесть цифр, описывающих один прогноз. Решите, что бы вы поместили на слайд, прежде чем читать мой.
| Аудитория или цель | Отчёт | Потому что |
|---|---|---|
| Оперативная группа, действующая по номеру | MAE, плюс смещение | В своих единицах, и это говорит о том, в какую сторону вы наклоняетесь. |
| Большие промахи обходятся непропорционально дорого | RMSE | Как и в бизнесе, это стоит одного большого промаха. |
| Сравнение продуктов или регионов | WAPE | Безразмерное, взвешенное по размеру, выдерживает нули. |
| Выбор между методами прогнозирования | MASE | Безмасштабный и привязанный к базовой линии бездействия. |
| Нетехническое резюме | WAPE и предвзятость, словами | «Снижение примерно на 6 процентов, немного выше». |
Мой собственный блок по умолчанию состоит из четырех чисел: MAE, смещение, WAPE и MASE, с указанием количества периодов и названий всех исключенных периодов. Он занимает одну строку и отражает размер ошибки, ее направление, относительный масштаб и то, оправдывает ли прогноз свою эффективность.
Единственное, чего следует избегать, — это выбирать меру после просмотра результатов. Если MAPE выглядит плохо и вы переключаетесь на RMSE, не сказав об этом, значит, вы выбрали свою оценку. Определите меру при построении прогноза и запишите ее по той же причине, по которой вы заранее определяете метрику А/Б-теста в А/Б-тестирование.
Полное до и после
Тот же прогноз, те же пять месяцев, две рецензии.
До
Forecast accuracy: 94%.
Одна цифра без определения. Предположительно, это 100 минус MAPE, рассчитанное для четырех месяцев, в которых определяется MAPE, при этом апрель молча отбрасывается любым инструментом, создавшим его. Никто не может воспроизвести его, никто не знает, сколько периодов он охватывает, и ничто не говорит о том, лучше ли 94 процента, чем повторение показателя прошлого месяца.
после
Flat plan of 2,400, scored on 5 months (Jan to May 2026).
MAE 600 average miss, in dollars
Bias -422 plan ran above actual on average
WAPE 30.3% total miss as a share of total actual
MASE 0.418 about twice as accurate as repeating last month
MAPE undefined April has zero actual revenue
April had no orders at all. Excluding it, MAE is 150 and WAPE 6.1%.
Both figures are shown because whether April belongs in the forecast
period is a business question, not a statistical one.
Шесть строк, и каждое число воспроизводимо. Читатель может увидеть размер ошибки, ее направление, масштаб, превосходит ли прогноз бездействие и что именно Эйприл сделал с арифметикой. Последнее предложение имеет наибольшее значение, поскольку оно возвращает решение тому, кто действительно может его вынести.
Крайние случаи, которые застают людей врасплох
Шесть, каждая из которых стоила кому-то четвертака.
Ноли в фактах. Заголовок дела на этой странице. MAPE не определен, и некоторые инструменты удаляют строку, не сообщая вам об этом, создавая достоверное число, рассчитанное за меньшее количество периодов, чем вы думаете.
Оценка по подогнанным вами данным. Модель, настроенная на те же месяцы, по которым вы затем оцениваете ее, будет выглядеть превосходно, но таковой не будет. Удерживайте периоды, которые модель никогда не видела, или продвигайтесь вперед по мере поступления новых фактических данных.
Текущий пересчет Если фактические данные за прошлый месяц изменились после исправления данных, ваша зафиксированная точность также изменится. Сохраняйте прогноз и фактические данные в том виде, в котором они были на момент составления прогноза, с указанием даты, иначе ваша история точности незаметно перепишется.
Сравнение MAPE серий разных размеров. Продукт небольшого объема покажет ужасный MAPE при крошечном абсолютном промахе. Это арифметика, а не производительность, и именно поэтому WAPE, взвешенный по размеру, является более справедливым сравнением.
Агрегирование ошибок перед их измерением. Точность прогноза, рассчитанная на основе общей суммы, всегда лучше, чем точность, рассчитанная для каждого продукта, а затем объединенная, поскольку ошибки в сумме сокращаются. Оба числа реальны и отвечают на разные вопросы. Скажите, какой из них вы вычислили.
На один период вперед против многих. Прогноз, сделанный на месяц вперед, — это совсем другая задача, чем прогноз, сделанный на двенадцать месяцев вперед, и сравнивать их бессмысленно. Всегда указывайте горизонт со счетом.
Почему это работает
Неудачи в четвертом и пятом разделах – это не фольклор. Гайндман и Келер исследовали стандартные меры точности на основе набора свойств, которыми должна обладать любая универсальная мера, и показали, что процентные ошибки неопределенны или бесконечны, когда фактическое значение равно нулю, и асимметричны в противном случае, и что симметричный MAPE фактически не устраняет асимметрию, в честь которой он назван. В шестом разделе они предложили масштабированную ошибку как меру, которая определяется в каждом случае, безразмерна и привязана к наивному базовому уровню (Гайндман & Келер, 2006, Международный журнал прогнозирования, 22(4), 679–688). Наша бесконечная MAPE — это аргумент, воспроизведенный на реальных данных за пять месяцев.
Армстронг и Коллопи эмпирически сравнили показатели ошибок в больших наборах рядов и пришли к аналогичному выводу с другой стороны: меры, основанные на относительных или масштабированных ошибках, более надежны для выбора между методами, чем процентные ошибки, особенно для рядов с низкими или прерывистыми значениями (Армстронг & Коллопи, 1992, Международный журнал прогнозирования, 8(1), 69–80).
Привычка забивать по наивным исходным данным пришла из соревнований по прогнозированию, где это является стандартной практикой и где результаты неизменно скромны. В тысячах реальных рядов сложные методы часто не могут превзойти простые методы из выборки, поэтому «превзошел ли он наивный прогноз» — это первый вопрос, а не сноска (Макридакис, Спилиотис и Ассимакопулос, 2020, Международный журнал прогнозирования, 36(1), 54–74).
Одно замечание о том, почему эта страница продолжает просить вас ответить, прежде чем показать вам ответ. Попытка дать ответ до того, как вы увидите правильный, достоверно повышает, насколько хорошо сохраняется правильный ответ, даже если попытка неверна (Бисра, Лю, Несбит, Салими и Винн, 2018, Обзор педагогической психологии, 30(3), 703–725). Бесконечный MAPE прижился, потому что вас попросили посмотреть на апрельский ряд и выяснить, что произойдет.
Использование этого в своей работе
Перестройка процесса прогнозирования — это не однодневная работа. Вместо этого сделайте это по порядку.
- Сохраните прогноз. Вы не можете забить то, что не записали. Двухколоночная таблица периода, прогноза, а затем и факта – это вся инфраструктура.
- Вычислите наивную базовую линию. Последний период повторился. Оцените его так же, как и свой. Это двухминутная работа, которая скажет вам, стоит ли делать что-то еще.
- Проверка нулей и околонулевых значений в фактических значениях, прежде чем выбрать процентную меру. Если они существуют, используйте WAPE.
- Сообщите четыре цифры: MAE, смещение, WAPE и MASE, с количеством периодов и горизонтом.
- Запишите исключенные периоды и почему. Каждое исключение оправдано, и ни одно из них не может быть оправдано молча.
Если у вас под рукой есть бумага, один дополнительный рисунок стоит пяти минут. Нарисуйте несколько последних ошибок прогноза в виде полосок вдоль линии, затем нарисуйте на каждой из них квадрат, указав длину полосы в качестве стороны. Видя, что квадрат вашего худшего периода поглотил все остальные, это то, что делает MAE против выбора RMSE решением, а не дефолтом.
Все на одном экране
Это лист поиска. Закройте правую колонку, проработайте левую и произнесите каждый ответ вслух, прежде чем проверять его.
| Мера | Что это такое и что он делает |
|---|---|
| ошибка | Фактический минус прогноз со своим знаком. Наши: +230, −155, +185, −2400, +30. |
| Смещение (средняя ошибка) | −422 здесь. Говорит, в какую сторону ты наклоняешься. Невозможно измерить точность: ошибки аннулируются. |
| MAE | Средний размер промаха. 600. В ваших единицах каждый период равен. |
| RMSE | Корень среднеквадратичной ошибки. 1083,70. Доминирует один большой промах. |
| MAE против RMSE | Четыре промаха из 100: оба по 100. Один промах из 400: MAE 100, RMSE 200. |
| Соотношение | Здесь RMSE ÷ MAE = 1,8. Значение намного выше 1 означает, что один период наносит ущерб. |
| MAPE | Среднее процентное значение ошибок за период. Здесь не определено: фактическое значение за апрель равно нулю. |
| Другой недостаток MAPE | Асимметричный. За завышенные прогнозы наказывают жестче, поэтому прогнозы занижаются. |
| WAPE | Общая абсолютная ошибка ÷ общая фактическая. 30,3%. Выдерживает нули, вес по размеру. |
| СМАПЕ | Делится на среднее фактическое и прогнозируемое. 44,9%. Не исправляет нули. |
| MASE | Ваше MAE ÷ MAE наивного прогноза. 0,418. Ниже 1 означает, что вы лучше ничего не делаете. |
| наивный прогноз | Следующий период равен этому периоду. Базовый уровень все должен бить. |
| Апрель удален | MAE 600 → 150, WAPE 30,3% → 6,1%, смещение −422 → +72,5. Скажите, что вы опубликовали. |
| Удержание | Никогда не забивайте очки в те периоды, которые вам подошли. Держись или забивай вперед. |
| Горизонт | На месяц вперед и на двенадцать месяцев вперед — разные задачи. Сформулируйте это. |
| Блок по умолчанию | MAE, смещение, WAPE, MASE, количество периодов, исключения. По одной строке каждый. |
Еще одна мысль, и мне бы искренне хотелось услышать ответы других людей. Первым показателем точности, который я когда-либо сообщал, был MAPE с нулевыми месяцами, которые инструмент молча выбрасывал, и благодаря этому посредственный прогноз на два квартала выглядел превосходным. Какова точность ваших отчетов, которую никто никогда не пересчитывал вручную?
Ссылки
- Гайндман Р.Дж. и Келер А.Б. (2006). Еще один взгляд на показатели точности прогнозов. Международный журнал прогнозирования, 22(4), 679–688.
- Армстронг Дж. С. и Коллопи Ф. (1992). Меры погрешности для обобщения методов прогнозирования: Эмпирические сравнения. Международный журнал прогнозирования, 8(1), 69–80.
- Макридакис С., Спилиотис Э. и Ассимакопулос В. (2020). Конкурс M4: 100 000 временных рядов и 61 метод прогнозирования. Международный журнал прогнозирования, 36(1), 54–74.
- Бисра К., Лю К., Несбит Дж. К., Салими Ф. и Винн П. Х. (2018). Побуждение к самообъяснению: метаанализ. Обзор педагогической психологии, 30(3), 703–725.
Прогнозирование для аналитиков состоит из 43 страниц, скользящих средних, сезонности и точности прогнозов, в том числе о том, как указать то, о чем цифры не могут вам сказать.
Прогнозирование для аналитиков, $12 →тот Комплект прогнозирования дает вам повторения: прогнозы на счет, карточки, на которых показатель выдерживает ноль и который наказывает за один большой промах, а также вопросы, которые просят вас предсказать счет, прежде чем вы его подсчитаете. Теперь вы владеете методом; комплект - это практика. Ничего устанавливать, учетная запись не требуется.
Откройте Набор прогнозов →