Насколько прогноз хорош: бэктест и метрики
Модель, обученная на всей истории, всегда выглядит убедительно: линия проходит близко к данным. Но качество прогноза измеряется не тем, как модель описала прошлое, а тем, как она справилась с тем, чего не видела. Отсюда бэктест: отрезаем историю в какой-то точке, прогнозируем следующие две недели, сравниваем с фактом, сдвигаем точку и повторяем. Три таких окна на графике переключаются кликом.
Разрез идёт по времени, а не случайно: при случайном отборе тестовых дней модель училась бы на их соседях — завтра предсказывалось бы послезавтрашним днём.
Первое правило: разрез идёт по времени, а не случайно. В обычном машинном обучении тестовую часть отбирают случайно, и это правильно — там наблюдения независимы. В ряду соседние дни почти одинаковы, поэтому случайно выбранный тестовый вторник окажется окружён обучающими понедельником и средой.
Что покажет метрика, если тестовые дни выбрать вразброс по всему ряду?
Что это значит
Горизонт бэктеста выбирается по тому, на какой срок прогноз реально нужен. Если план закупок делается на две недели, проверять модель на один день вперёд бессмысленно — цифра будет красивой и нерелевантной.
Отчёт о качестве прогноза стоит писать в трёх числах: метрика, горизонт, ориентир. «MAPE 8% на 14 дней, у сезонно-наивного 11%» — содержательно. «Точность 92%» — нет.
Ошибка бэктеста систематически оптимистичнее будущей: модель и её порядки подбирались, глядя на ту же историю. Чтобы это учесть, финальную проверку делают на периоде, который не участвовал ни в подборе, ни в отладке.
Где это встречается
В прогнозе спроса цена ошибки несимметрична: недозаказ означает упущенные продажи, перезаказ — списание. Тогда вместо MAE берут метрику с разными штрафами за знак промаха — и оптимизируют не точку, а квантиль распределения.
В финансах бэктест — обязательная процедура для любой стратегии, и там же лучше всего изучены его подводные камни: подгонка под период, ошибка выжившего в наборе инструментов, использование данных, которые в тот момент ещё не были известны.
Прогноз погоды давно публикуется вероятностно: «60% осадков» вместо «будет дождь». Прогнозы метрик двигаются в ту же сторону — интервал полезнее точки.
Определения
Когда метод врёт (допущения)
Бэктест предполагает, что будущее устроено как прошлое. Если в истории не было пандемии, ухода конкурента или смены ценовой политики, бэктест ничего не скажет о поведении модели в таких условиях.
Сравнение моделей по метрике на одном и том же периоде — это множественные сравнения: чем больше вариантов перебрано, тем выше шанс, что лучший выиграл случайно. При переборе десятков конфигураций разница в доли процента ничего не значит.
Подробный разбор: математика и механизм (необязательно)
MASE решает обе проблемы MAPE сразу: ошибка модели делится на среднюю ошибку наивного прогноза на обучающей выборке. Единица означает «как наивный», 0,7 — «на 30% лучше наивного». Метрика определена при нулях, симметрична и сравнима между рядами разного масштаба — поэтому она стала стандартом в соревнованиях по прогнозированию.
Для интервальных прогнозов точечные метрики не годятся вовсе: интервал оценивают по покрытию (какая доля фактов попала внутрь 95%-го интервала — должно быть около 95%) и по pinball loss, который штрафует и за промах, и за излишнюю ширину. Модель с идеальной MAE и вечно узкими интервалами опаснее честной модели с широкими.