# Прогноз населения Беларуси 2026–2075, v2026.4 (проверяемый пакет)

Уровни 0–3: страна, 6 областей, Минск, 118 районов, ~200 городов;
три детерминированных сценария; **вероятностный веер** (квантили Монте-Карло
траекторий СКР/ОПЖ) для базового на уровнях 0–1; два стартовых ряда —
official и adjusted (WP-F3: поправка на незарегистрированную эмиграцию
2020–2026).

## Главный вывод

При любом из трёх сценариев население Беларуси продолжит сокращаться:
с 9,06 млн (01.01.2026) до 7,53 млн к 2050 в базовом сценарии
(80% интервал 7,04–8,04) и до 5,97 млн к 2075 (5,04–7,04). По ансамблю
из 600 симуляций убыль к 2050 практически достоверна (100% реализаций
ниже старта), вероятность опуститься ниже 6 млн к 2075 ≈ 50%.
Оптимистический
сценарий даёт 7,11 млн к 2075, негативный (продолжение эмиграционной
волны) — 4,33 млн. Внутри страны — поляризация: пригороды Минска растут
при любом сценарии (Минский район: 287 тыс. → ~655 тыс. к 2075 в базовом),
периферия теряет население вдвое-втрое быстрее среднего (Хойникский
район: 17,7 → 7,7 тыс.); доля Минска и облцентров в населении страны
растёт при общей убыли.

Ряд **adjusted** (WP-F3): официальный старт завышен на
незарегистрированную эмиграцию 2020–2026 — интервальная оценка из
зеркальной статистики 178–416 тыс., центральная 270 тыс. (~3,0%
населения). Со скорректированного старта базовый сценарий даёт 7,24 млн
к 2050 и 5,75 млн к 2075 (−3,8%/−3,7% к official: уехали молодые — эффект
нарастает через потерянные рождения). Методика и чувствительность —
`docs/notes/adjustment.md`.

## Методика (кратко)

**Уровни 0–1**: когортно-компонентный метод (CCMPP), 5-летние группы,
шаг 5 лет, раздельно по областям (страна = сумма). Рождаемость: областные
ASFR-профили 2018 г., масштабируемые к сценарной национальной траектории
СКР. Смертность: таблицы дожития HMD-2018, масштабируемые к сценарным e0.
Миграция: внутренняя — профиль межобластной матрицы переписи-2019 с
калиброванным объёмом; международная — сценарное сальдо по ключам
концентрации. Базовый сценарий следует допущениям UN WPP 2024 medium.

**Вероятностный слой** (`etl/forecast/probabilistic.py`): веер квантилей
(q05…q95) базового сценария — симуляция, а не пропорциональный перенос
интервала. Для каждой из 600 реализаций сэмплируются персистентные
(сохраняющиеся по горизонту) отклонения траекторий СКР и ОПЖ от медианы
WPP (по одному шоку z∼N(0,1) на реализацию, амплитуда растёт к 2075),
реализация прогоняется через тот же CCMPP, по ансамблю берутся
эмпирические квантили. Амплитуды шоков **калибр­ованы** так, что 80%
интервал страны совпадает с 80% PI WPP-2024 на 2050 (6,7% против 7,1%) и
2075 (16,5% против 16,3%) — гейт в `checks/`. То есть на страновом уровне
ширина 80%-полосы по построению ≈ WPP; самостоятельная новизна веера —
не в независимой оценке ширины, а в декомпозиции (веер проходит через
возрастную структуру и на области) и вероятностных утверждениях
(P(убыли), P(<X)) на страновом уровне. **Оговорка по областям**: шок
СКР/ОПЖ — один общий на страну, поэтому области делят общий национальный
фактор; идиосинкратическая областная неопределённость (своя СКР/ОПЖ/
миграция) не сэмплируется, и областные интервалы — нижняя оценка
истинной (вероятностные утверждения по областям не даются). Сид
фиксирован (20260712) → веер воспроизводим байт-в-байт. Миграция
оставлена детерминированной; её неопределённость коммуницируется
отдельным рядом adjusted.

**Уровень 2 (118 районов + города обл. подчинения)**: метод
Гамильтона–Перри — коэффициенты когортного изменения (CCR) 2009→2019 по
полу, сдвиг когорты на две 5-летние группы за шаг 10 лет; когорты 0–4/5–9
через child-woman ratio; shrinkage малых когорт к областному профилю
(w = n/(n+1000)); чернобыльские районы классов 1–2 — вес CCR ≤ 50% и
floor 0,6 областного; пять облцентров — собственные CCMPP с
имплицированной миграцией 2009–2019 (затухание до 40% к 2060).
Стартовая калибровка к официальным оценкам 01.01.2026; IPF-согласование
к областному CCMPP по (пол × группа) на каждый год — суммы сходятся точно.

**Уровень 3 (~190 городов и гп)**: логистический тренд доли города в
районе по ряду 1970–2026, прогноз = доля × район сценария; город ≤ 92%
района (кэпы применяются до целочисленного округления экспорта). Все допущения — `params/assumptions.yaml` и
`etl/forecast/scenarios/*.yaml` (с обоснованием каждого значения).

## Как воспроизвести

Требования: Python ≥ 3.10, PyYAML (`pip install -r code/requirements.lock`),
bash. Время: ~2 минуты.

```bash
bash code/run.sh
```

Скрипт: (1) прогоняет прогноз уровней 0–3 + вероятностный веер →
`data/curated/forecast_v2026_4.csv` и `web/public/data/forecast.json`;
(2) бэктест уровней 0–1 (2009→2019: национальный итог −0,41% при гейте
±2%; MAPE 2,39% против 4,13% наивной); (3) бэктесты уровней 2–3 (районы
2019→2026: MAPE 2,12% против 2,76%; города, доля ≤2009→2019: 6,7% против
10,9%); (4) чувствительность; (5) инварианты (в т.ч. сумма районов =
область, город ≤ района, adjusted < official, монотонность веера и
калибровка по WPP); (6) сверку с `checks/expected_results.json`
(30 метрик, включая полуширины 80% интервала и вероятностные утверждения).
Первым шагом воспроизводится сам интервал поправки (`python3 -m etl.mirror`
из завендоренного сырья Eurostat/UDSC/ЦНИ).

## Валидация

Отчёт — `docs/notes/validation.md` (§6 — бэктесты уровней 2–3, снятие
отступлений этапа 3); машиночитаемые таблицы — `docs/notes/
backtest_results.json`, `backtest_sub.json`, `sensitivity.json`.

## Состав

`etl/forecast/` — код модели (идентичен репозиторию; `etl/common.py` —
мини-шим путей): `run.py` + `sub.py` (уровни 2–3) + `backtest*.py`;
`data/curated/` — входы (структуры 2026, переписи 2009/2019 по районам,
ASFR, таблицы дожития, миграционная матрица, привязка город–район,
реестр чернобыльских классов); `web/public/data/data.json` — ряды
населения районов и городов 1897–2026 (база проекта);
`data/raw/wpp2024|wcde/` — контрольные прогнозы; `sources/registry.csv` —
реестр первоисточников.

## Живая версия

https://by-population-maps.vercel.app — слайдер за 2026 год переключает
карту в прогнозный режим на всех уровнях (области, районы, города).

## Версия

v1.3.0 пакета = прогноз v2026.4 (2026-07-12), git-тег
`artifact-forecast-v1.3.0`. Медианы и сценарии всех уровней идентичны
v1.2.0 (детерминированный CCMPP не изменился); новое — вероятностный
веер вместо пропорционального переноса 80% PI WPP. История — CHANGELOG.md.
