теория
Прогноз нельзя проверить будущим — оно ещё не наступило. Его проверяют аккуратно реконструированным прошлым, и вся честность проверки — в качестве реконструкции.
Катящееся начало. Встаём в прошлое, в точку t. Обучаемся на всём, что было известно до t. Прогнозируем вперёд на горизонт. Сравниваем с фактом. Сдвигаем t, повторяем — десятки раз вдоль истории. Каждый запуск — репетиция реальной жизни модели; средняя ошибка по запускам — честная оценка, а её разброс — бонусом показывает стабильность.
Ключевое слово — «известно». Вот где выстрелила наша битемпоральность. «Данные до t» — это не «наблюдения до t», а винтаж на дату t: мартовская занятость существует с апреля, и в мартовском запуске её быть не должно. Матрица «наблюдения × винтажи» из тридцать четвёртого модуля читается по столбцу — «состояние знания на дату» — и этот столбец и есть единственно честный вход бэктеста. Забавно: мы строили винтажи для юристов и аудита, а главным их потребителем стала фабрика прогнозов.
Утечки будущего — — коварны тем, что улучшают метрики. Плохой код падает; подглядывающий код побеждает в бэктестах. Формы утечки, которые надо знать в лицо:
Общий детектор один: у каждой строки обучающей таблицы есть дата, и всё в этой строке обязано быть известно на эту дату. Звучит как правило для людей — а держаться должно системой. Об этом — следующая находка Ивана.