Замер калибровки доверительного интервала по регионам #3535

Merged
lekss361 merged 1 commit from fix/pi-calibration-by-region into main 2026-09-16 16:28:19 +00:00

1 commit

Author SHA1 Message Date
bot-backend
2591968286 feat(backtest): замер калибровки доверительного интервала по регионам
All checks were successful
CI Trade-In / changes (pull_request) Successful in 9s
CI / changes (pull_request) Successful in 12s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 4m53s
Вилка цены строится множителями estimate_pi_low_mult/high_mult, которые
калибровали один раз на Екатеринбурге (#1966, n=2366) как эмпирические
p10/p90 отношения sold/expected_sold. Проверить, что они всё ещё дают
заявленные 80% попаданий, было нечем: харнесс считал только p25/p75
знаковой ошибки, то есть 50%-ный интервал.

--pi-report печатает p10/p50/p90 отношения r = sold_total /
expected_sold_price (рублёвые итоги — множитель в эстиматоре применяется
именно к итоговой цене), фактическое покрытие текущей вилки и покрытие
предложенной [p10, p90], плюс ширину обеих. Разрез по комнатным корзинам.
--pi-report-json кладёт те же числа машиночитаемо, чтобы свести регионы.

Множители читаются из живых settings, не хардкодятся. Без флага вывод
харнесса байт-в-байт прежний — замороженный регресс-гейт не трогается.

Проверено на фикстуре: propos% = 79.7-80.1 по всем корзинам, то есть
величина r согласована с определением множителей.
2026-09-16 19:05:47 +03:00