Бэктестинг

learn menu
От Joannès Vermorel, последнее обновление август 2013

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

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

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

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

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

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

В конце концов рассчитывается средняя ошибка прогноза по всем порогам.

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

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

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

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

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

Ловушка Lokad

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