Ретроспективное тестирование

Жоаннес Верморель, последняя редакция — август 2013 г.

При прогнозировании временных рядов под «ретроспективным тестированием» понимается процесс «оценки точности методов прогнозирования» с использованием существующих исторических данных. Этот процесс обычно цикличен и повторяется много раз для разных моментов в имеющихся фактических данных. Ретроспективное тестирование используется для оценки будущей точности методов прогнозирования, что позволяет сказать, какую модель прогнозирования считать «наиболее точной».

Как работает ретроспективное тестирование

Весь процесс начинается с выбора дат начала прогнозирования в промежутке времени, за который есть фактические данные. На рисунке ниже представлены даты начала прогнозирования T1, T2, T3 и T4.

Backtesting is a process to access the forecasting accuracy of a time-dependent statistical model using historical data.


Затем по каждой дате выполняются следующие операции:

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

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

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

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

Частая ошибка: узнал однажды, применяй во всех прогнозах

Ретроспективное тестирование обычно «требует довольно интенсивного использования вычислительных ресурсов», так как каждую новую модель прогнозирования необходимо опробовать на каждой точке начала прогнозирования. Мы часто видим, что наши пользователи проверяют модель только на одной точке, задействуя сразу все фактические данные, а затем продолжают тестирование. В результате такого подхода тестирование значительно ускоряется.

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

Особенности Lokad

Ретроспективное тестирование — это ядро технологии прогнозирования Lokad. Мы применяем его к каждому временном ряду, чтобы выбрать модель для создания конечного прогноза. Тем не менее, «простое ретроспективное тестирование, описанное в данной статье, подходит не для всех ситуаций» в производстве и торговле. Например, временной ряд для новых товаров может быть слишком коротким для проведения ретроспективного тестирования. Рекламные кампании и вывод новых продуктов на рынок также требуют особого подхода.