СберИндекс 2026: прогнозирование расходов МО и структурные сдвиги
Python
0
11 commits
updated Oct 3, 2026
Решение для направления «Прогнозирование» конкурса СберИндекса 2026. Прогноз средних безналичных расходов на жителя для 2016 МО × 6 категорий (12 096 рядов) на 1, 3, 6 и 12 месяцев и поиск точек структурных сдвигов.
report/report.pdf (исходник report/report.md)presentation/slides.pdf и лендинг presentation/index.htmlLOG.mdresults/forecast_2025.csv| Модель | h = 1 | h = 3 | h = 6 | h = 12 |
|---|---|---|---|---|
| Prophet (базовая модель организатора) | 563 | 574 | 652 | 1361 |
| Лучшая zero-shot FM на сырых уровнях (TimesFM 2.5) | 559 | 797 | 1283 | 1691 |
| TimesFM 2.5 на локальной компоненте | 296 | 522 | 493 | 729 |
| GBM (LightGBM, все признаки) | 296 | 532 | 509 | 724 |
| Ансамбль | 306 | 435 | 446 | 658 |
| Снижение MAE ансамбля к Prophet | −46% | −24% | −32% | −52% |
| 95% ДИ разницы, двусторонний бутстреп (МО × месяц) | [−511; −37] | [−302; +16] | [−353; −66] | [−1110; −430] |
Разница с Prophet значима на h = 1, 6, 12. На h = 3 ансамбль лучше в 5 из 6 месяцев test,
но 95% ДИ включает 0. Все модели в момент прогноза видят только прошлое (скользящий origin).
Веса ансамбля и параметры выбраны на validation (2024-01..06). Один раз test использован в дизайне:
правило «отдельные (k, w) для h ≤ 3» введено после первого просмотра test (записано в LOG.md).
Пост-hoc эксперименты (ансамбль v2, национальная компонента по порталу СберИндекса) — в
приложении А отчёта, в заголовок не входят.
Проверка на факте: прогноз роста 2025 для «Всех категорий», сделанный в конце 2024 г., — лог-прирост 0.135 против 0.132 по порталу СберИндекса.
| Критерий | Раздел отчёта | Код |
|---|---|---|
| Простота объяснения методологии | §1 (одна страница, 4 шага, глоссарий), §2 | — |
| Сравнение моделей, лучше Prophet | §3 (таблица выбора, все модели, сетка Prophet, по категориям) | src/ensemble.py, src/evaluate.py, src/tables.py |
| Поиск структурных сдвигов | §5 (калибровка, синтетика, таблица решений, Орск) | src/cpd/ |
| Фундаментальные модели | §4 (уровни против локальной компоненты, где помогают и где нет) | src/fm/ |
| Интеграция новостей | §6 (GDELT, реестр ЧС, правило as-of, event study) | src/news/, src/event_study.py |
| Метрики | §7 (MAE, R², R² на изменении, WAPE, интервалы, значимость) | src/common.py, src/tables.py |
| Интерпретация и воспроизводимость | §8-10 (проверка 2025, выводы, make) | Makefile, tests/, src/verify.py |
log y[i,t] = n[c,t] + d[i,t]

Нужно: macOS или Linux, uv. Для полного прогона ещё ≈ 40 ГБ трафика (новости GDELT); для сборки PDF — pandoc + XeLaTeX и Google Chrome.
make setup # .venv на Python 3.13, точные версии из requirements.lock.txt
make data # данные СберИндекса, справочник МО, Росстат, портал -> data/raw/ (в git не входят)
make quick # свежий клон: тесты на утечку + пересчёт главных чисел и сверка (≈ 2 мин)
make reproduce # полный прогон: ≈ 4-5 ч на Apple M3 Pro (FM на MPS; на CUDA быстрее)
make quick без полного кэша запускает:
make smoke — тесты без данных (секунды): прогноз в origin o и тревога детектора в месяце t не
меняются, если изменить данные после o; описание для формы ≤ 4096 символов, только ASCII и кириллица.make verify — пересчёт MAE, R², R² на изменении, MAE по категориям, ДИ двустороннего бутстрепа,
DM-HLN и прогноза 2025 из results/verify/cubes.npz (8 МБ: прогнозы 8 ключевых моделей на test)
и сверка с results/metrics/*.csv. Код возврата 1 при расхождении.С полным кэшем results/cache/ (после make reproduce) make quick пересобирает ансамбль,
метрики, таблицы, прогноз, рисунки и отчёт за минуты. Отдельные шаги — см. Makefile.
Пост-hoc эксперименты: make reproduce-v2.
Все гиперпараметры — в configs/config.yaml: окна validation/test,
горизонты, пул ансамбля, параметры Prophet, LightGBM, CatBoost, statsforecast, список
фундаментальных моделей, детекторы сдвигов и их сетки, группы тем новостей, радиус геопривязки.
configs/config.yaml все параметры
src/common.py панель, «кубы» прогнозов (origin x horizon), метрики
src/models/ baselines, Prophet (+ сетка из 10 конфигураций), statsforecast, декомпозиция, GBM
src/fm/ адаптеры и прогон фундаментальных моделей, дообучение Chronos-2
src/cpd/ детекторы сдвигов, бенчмарк, признаки для GBM
src/news/ загрузка GDELT GKG, геопривязка к МО, признаки
src/exog/ Росстат, портал СберИндекса, производственный календарь
src/ensemble.py отбор Caruana по горизонтам (validation)
src/evaluate.py метрики validation/test, двусторонний бутстреп, DM-HLN
src/tables.py таблица выбора модели, интервалы (покрытие, WIS), таблица решений по детекторам
src/event_study.py event study паводков по реестру ЧС
src/verify.py пересчёт главных чисел из малого кэша (свежий клон)
src/check_2025.py проверка прогноза 2025 на факте портала
src/stack.py пост-hoc ансамбль v2 (приложение А)
tests/ тесты на утечку и проверка формы (make smoke)
results/metrics, results/cpd все таблицы, на которые ссылается отчёт
data/external производные открытые данные: Росстат, новости по МО и месяцам, реестр событий
make data.holidays (MIT) + постановления Правительства.При разработке кода использовались инструменты ИИ-ассистирования (Claude Code); решения и результаты проверены автором.
СберИндекс 2026: прогнозирование расходов МО и структурные сдвиги
Python
0
11 commits
updated Oct 3, 2026
Решение для направления «Прогнозирование» конкурса СберИндекса 2026. Прогноз средних безналичных расходов на жителя для 2016 МО × 6 категорий (12 096 рядов) на 1, 3, 6 и 12 месяцев и поиск точек структурных сдвигов.
report/report.pdf (исходник report/report.md)presentation/slides.pdf и лендинг presentation/index.htmlLOG.mdresults/forecast_2025.csv| Модель | h = 1 | h = 3 | h = 6 | h = 12 |
|---|---|---|---|---|
| Prophet (базовая модель организатора) | 563 | 574 | 652 | 1361 |
| Лучшая zero-shot FM на сырых уровнях (TimesFM 2.5) | 559 | 797 | 1283 | 1691 |
| TimesFM 2.5 на локальной компоненте | 296 | 522 | 493 | 729 |
| GBM (LightGBM, все признаки) | 296 | 532 | 509 | 724 |
| Ансамбль | 306 | 435 | 446 | 658 |
| Снижение MAE ансамбля к Prophet | −46% | −24% | −32% | −52% |
| 95% ДИ разницы, двусторонний бутстреп (МО × месяц) | [−511; −37] | [−302; +16] | [−353; −66] | [−1110; −430] |
Разница с Prophet значима на h = 1, 6, 12. На h = 3 ансамбль лучше в 5 из 6 месяцев test,
но 95% ДИ включает 0. Все модели в момент прогноза видят только прошлое (скользящий origin).
Веса ансамбля и параметры выбраны на validation (2024-01..06). Один раз test использован в дизайне:
правило «отдельные (k, w) для h ≤ 3» введено после первого просмотра test (записано в LOG.md).
Пост-hoc эксперименты (ансамбль v2, национальная компонента по порталу СберИндекса) — в
приложении А отчёта, в заголовок не входят.
Проверка на факте: прогноз роста 2025 для «Всех категорий», сделанный в конце 2024 г., — лог-прирост 0.135 против 0.132 по порталу СберИндекса.
| Критерий | Раздел отчёта | Код |
|---|---|---|
| Простота объяснения методологии | §1 (одна страница, 4 шага, глоссарий), §2 | — |
| Сравнение моделей, лучше Prophet | §3 (таблица выбора, все модели, сетка Prophet, по категориям) | src/ensemble.py, src/evaluate.py, src/tables.py |
| Поиск структурных сдвигов | §5 (калибровка, синтетика, таблица решений, Орск) | src/cpd/ |
| Фундаментальные модели | §4 (уровни против локальной компоненты, где помогают и где нет) | src/fm/ |
| Интеграция новостей | §6 (GDELT, реестр ЧС, правило as-of, event study) | src/news/, src/event_study.py |
| Метрики | §7 (MAE, R², R² на изменении, WAPE, интервалы, значимость) | src/common.py, src/tables.py |
| Интерпретация и воспроизводимость | §8-10 (проверка 2025, выводы, make) | Makefile, tests/, src/verify.py |
log y[i,t] = n[c,t] + d[i,t]

Нужно: macOS или Linux, uv. Для полного прогона ещё ≈ 40 ГБ трафика (новости GDELT); для сборки PDF — pandoc + XeLaTeX и Google Chrome.
make setup # .venv на Python 3.13, точные версии из requirements.lock.txt
make data # данные СберИндекса, справочник МО, Росстат, портал -> data/raw/ (в git не входят)
make quick # свежий клон: тесты на утечку + пересчёт главных чисел и сверка (≈ 2 мин)
make reproduce # полный прогон: ≈ 4-5 ч на Apple M3 Pro (FM на MPS; на CUDA быстрее)
make quick без полного кэша запускает:
make smoke — тесты без данных (секунды): прогноз в origin o и тревога детектора в месяце t не
меняются, если изменить данные после o; описание для формы ≤ 4096 символов, только ASCII и кириллица.make verify — пересчёт MAE, R², R² на изменении, MAE по категориям, ДИ двустороннего бутстрепа,
DM-HLN и прогноза 2025 из results/verify/cubes.npz (8 МБ: прогнозы 8 ключевых моделей на test)
и сверка с results/metrics/*.csv. Код возврата 1 при расхождении.С полным кэшем results/cache/ (после make reproduce) make quick пересобирает ансамбль,
метрики, таблицы, прогноз, рисунки и отчёт за минуты. Отдельные шаги — см. Makefile.
Пост-hoc эксперименты: make reproduce-v2.
Все гиперпараметры — в configs/config.yaml: окна validation/test,
горизонты, пул ансамбля, параметры Prophet, LightGBM, CatBoost, statsforecast, список
фундаментальных моделей, детекторы сдвигов и их сетки, группы тем новостей, радиус геопривязки.
configs/config.yaml все параметры
src/common.py панель, «кубы» прогнозов (origin x horizon), метрики
src/models/ baselines, Prophet (+ сетка из 10 конфигураций), statsforecast, декомпозиция, GBM
src/fm/ адаптеры и прогон фундаментальных моделей, дообучение Chronos-2
src/cpd/ детекторы сдвигов, бенчмарк, признаки для GBM
src/news/ загрузка GDELT GKG, геопривязка к МО, признаки
src/exog/ Росстат, портал СберИндекса, производственный календарь
src/ensemble.py отбор Caruana по горизонтам (validation)
src/evaluate.py метрики validation/test, двусторонний бутстреп, DM-HLN
src/tables.py таблица выбора модели, интервалы (покрытие, WIS), таблица решений по детекторам
src/event_study.py event study паводков по реестру ЧС
src/verify.py пересчёт главных чисел из малого кэша (свежий клон)
src/check_2025.py проверка прогноза 2025 на факте портала
src/stack.py пост-hoc ансамбль v2 (приложение А)
tests/ тесты на утечку и проверка формы (make smoke)
results/metrics, results/cpd все таблицы, на которые ссылается отчёт
data/external производные открытые данные: Росстат, новости по МО и месяцам, реестр событий
make data.holidays (MIT) + постановления Правительства.При разработке кода использовались инструменты ИИ-ассистирования (Claude Code); решения и результаты проверены автором.