Бэктестинг

learn menu
Автор: Жоаннес Верморель, последнее обновление в августе 2013 года

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

Как работает бэктестинг

Процесс бэктестинга начинается с выбора списка пороговых дат в пределах временного интервала, охватываемого историческими данными. На иллюстрации ниже пороги обозначены как T1, T2, T3 и T4.

Бэктестинг - это процесс оценки точности прогнозирования временной статистической модели с использованием исторических данных.

Затем, для каждого порога,

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

Наконец, устанавливается средняя ошибка прогноза по всем порогам.

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

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

Одна распространенная ошибка: учиться один раз, прогнозировать много раз

Backtesting обычно довольно интенсивно в терминах вычислительных ресурсов, так как для каждого порога необходимо обучить новую модель прогнозирования. В результате мы часто наблюдаем, как практики обучают модель прогнозирования только один раз, обычно используя всю историческую информацию, а затем продолжают итерации обратного тестирования. Воспринимаемым преимуществом такого подхода обычно является значительное ускорение обратного тестирования.

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

Ловушка Локада

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