Бэктестинг
В контексте прогнозирования временных рядов понятие бэктестинга относится к процессу оценки точности метода прогнозирования с использованием имеющихся исторических данных. Этот процесс обычно итеративен и повторяется для нескольких дат, присутствующих в исторических данных. Бэктестинг используется для оценки ожидаемой будущей точности прогнозирования метода, что полезно для определения, какую модель прогнозирования следует считать наиболее точной.
Как работает бэктестинг
Процесс бэктестинга начинается с выбора списка пороговых дат в пределах временного промежутка, охватываемого историческими данными. На иллюстрации ниже пороговые даты обозначены T1, T2, T3 и T4.
Затем, для каждого порога,
- исторические данные обрезаются до пороговой даты,
- модель прогнозирования обучается и применяется на усеченных данных,
- прогнозы сравниваются с исходными неусеченными данными.
В конце концов рассчитывается средняя ошибка прогноза по всем порогам.
Эта средняя ошибка может интерпретироваться как оценка ошибки, которая будет наблюдаться у модели при создании реальных прогнозов (о будущем). Выбор правильного набора пороговых дат обычно требует определенных знаний, связанных с данной проблемой. Как правило, увеличение числа порогов обычно улучшает устойчивость процесса к проблемам переобучения.
Распространённая ошибка: один раз обучить, много прогнозировать
Бэктестинг обычно требует значительных вычислительных ресурсов, так как для каждого порога необходимо обучать новую модель прогнозирования. В результате мы часто наблюдаем практиков, которые обучают модель прогнозирования только один раз, обычно используя весь диапазон исторических данных, а затем проводят итерации бэктестинга. Кажущееся преимущество этого подхода заключается в значительном ускорении процесса бэктестинга.
Однако такой трюк ошибочен и приводит к значительным проблемам переобучения. Действительно, неявно, когда данные будущего становятся доступными для модели прогнозирования, любая оценка переменных, проводимая в фазе обучения, заставляет модель включать некоторую информацию об этом будущем. В результате точность, измеренная при бэктестинге, не будет отражать способности модели к обобщению, а скорее её память, то есть способность модели воспроизводить идентичные ситуации, встречающиеся в обучающем наборе данных.
Ловушка Lokad
Бэктестинг лежит в основе технологии прогнозирования компании Lokad. Мы используем его для каждого временного ряда, чтобы выбрать модель, которая будет использоваться для предоставления окончательного прогноза. Однако простая концепция бэктестинга, представленная в этой статье, не подходит для всех ситуаций, встречающихся в розничной торговле и производстве. Например, для недавно запущенных продуктов временной ряд может быть слишком коротким для проведения значительного бэктестинга. Акции и запуск продуктов также требуют специализированных подходов.