⚙️ Физика мира — Кредитный портфель ЦБ РФ

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

1. Концепция

Мир описывает трансмиссионный механизм денежно-кредитной политики до уровня розничного кредитного портфеля. Центральный банк управляет одним рычагом — ключевой ставкой. Изменение ставки распространяется по цепочке: стоимость кредита → долговая нагрузка заёмщика → вероятность дефолта → качество портфеля. Параллельно ставка влияет на реальные доходы через канал инвестиций и занятости (с лагом). Симулятор прогоняет эти уравнения детерминированно — без LLM. DeepSeek используется только для классификации входящих сигналов в числовые шоки.

2. Акторы

IDРольСостояниеОписание
central_bankРегуляторpolicy_stance = 0.7Устанавливает ключевую ставку. Высокий policy_stance = жёсткая политика. Влияет на key_rate через экзогенный инфлоу.
commercial_banksКредиторrisk_appetite = 0.5Транслируют изменение ставки в кредитные продукты. Управляют резервами под дефолты. Связаны с ЦБ отношением "регулирует".
householdsЗаёмщикfinancial_stress = 0.35Обслуживают долг из текущих доходов. Уровень финансового стресса растёт при росте debt_burden и падении real_income.
labor_marketИсточник доходовemployment_health = 0.72Определяет занятость и зарплату. Ухудшение при высокой ставке передаётся в real_income с задержкой.

3. Ресурсы и уравнения динамики

Каждый ресурс — числовая переменная на шкале [0, 100]. Динамика линейная:

x(t+1) = a · x(t) + c + Σ w_i · x_i(t) где: a — коэффициент авторегрессии (инерция, 0 < a < 1) c — экзогенный инфлоу (внешнее "давление" к равновесию) w_i — веса связей от других ресурсов (causal coupling)

key_rate — Индекс ключевой ставки

Начальное значение: 60 (≈ 16% при линейной нормализации к шкале 100 = ~26%)
Инерция a = 0.93 — высокая: ставка меняется медленно, решения ЦБ действуют долго.
Инфлоу c = 4.0 — постоянное давление к сохранению ставки (mean-reversion).
Связей нет — экзогенная переменная, управляется только сигналами.

lending_rate — Индекс ставки кредитования

Начальное значение: 62 (немного выше ключевой — спред банка)
Инерция a = 0.88 — чуть ниже: ставки по кредитам обновляются быстрее, чем решение ЦБ.
Инфлоу c = 3.0
Связь: key_rate → lending_rate, вес +0.07
На каждые 10 пунктов роста ключевой ставки lending_rate вырастает на ~0.7 пункта за шаг.

lending_rate(t+1) = 0.88 · lending_rate(t) + 3.0 + 0.07 · key_rate(t)

real_income — Индекс реальных доходов

Начальное значение: 70
Инерция a = 0.90 — доходы инерционны: рынок труда реагирует на ставку с задержкой.
Инфлоу c = 5.0 — высокий: доходы имеют тенденцию к восстановлению.
Связь: key_rate → real_income, вес -0.04
Высокая ставка угнетает инвестиции и занятость → доходы падают. Лаг ~2–3 шага встроен в инерцию.

real_income(t+1) = 0.90 · real_income(t) + 5.0 - 0.04 · key_rate(t)

debt_burden — Индекс долговой нагрузки (PTI)

Начальное значение: 42 (≈ 42% дохода уходит на обслуживание долга — выше нормы)
Инерция a = 0.91 — PTI меняется медленно: кредиты долгосрочные.
Инфлоу c = 2.0
Связи:
— lending_rate → debt_burden +0.05: дороже кредит → выше платёж → выше PTI
— real_income → debt_burden -0.03: выше доход → ниже относительная нагрузка

debt_burden(t+1) = 0.91 · debt_burden(t) + 2.0 + 0.05 · lending_rate(t) - 0.03 · real_income(t)

default_probability — Индекс вероятности дефолта (PD)

Начальное значение: 22 — исходно умеренный уровень риска
Инерция a = 0.87 — самая низкая: дефолты реагируют быстрее остальных переменных.
Инфлоу c = 1.5
Связи:
— debt_burden → default_probability +0.06: нагрузка → дефолты (сильная связь)
— real_income → default_probability -0.05: доход защищает от дефолта (сильная)

default_probability(t+1) = 0.87 · default_probability(t) + 1.5 + 0.06 · debt_burden(t) - 0.05 · real_income(t)

portfolio_quality — Индекс качества портфеля

Начальное значение: 74 — умеренно здоровый портфель
Инерция a = 0.92 — высокая: качество портфеля деградирует медленно, накопленный эффект.
Инфлоу c = 4.0 — высокий: банки активно управляют портфелем (погашения, рефинансирование).
Связи:
— default_probability → portfolio_quality -0.07: самая сильная связь в модели
— real_income → portfolio_quality +0.03: доходы улучшают платёжеспособность

portfolio_quality(t+1) = 0.92 · portfolio_quality(t) + 4.0 - 0.07 · default_probability(t) + 0.03 · real_income(t)

4. Полный каузальный граф

🏛 key_rate

+0.07
lending_rate

+0.05
debt_burden

+0.06
default_probability

-0.07
portfolio_quality↓
🏛 key_rate

-0.04
real_income↓

-0.03
debt_burden↑
 и 
real_income↓

-0.05
default_prob↑
Нелинейность через взаимодействие: при одновременном росте key_rate и падении real_income эффекты перемножаются через debt_burden и default_probability. Это даёт нелинейный отклик при стагфляционном шоке: портфель деградирует быстрее, чем предсказывает линейная экстраполяция.

5. Исходы и scoring

Вероятность каждого исхода считается как взвешенная сумма ресурсов, нормализованная через softmax:

🟢 stable_servicing
score = +0.06·portfolio_quality + 0.04·real_income - 0.05·default_probability

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

🟠 portfolio_stress
score = +0.05·debt_burden + 0.06·default_probability - 0.04·portfolio_quality

Растёт при умеренном повышении ставки (+100–300 бп). Нагрузка растёт, NPL нарастает, но катастрофы нет.

🔴 mass_default_wave
score = +0.08·default_probability - 0.05·real_income + 0.04·debt_burden

Доминирует при стагфляционном шоке или экстренном повышении +500 бп. Самый экстремальный сценарий.

🟡 forced_restructuring
score = +0.06·debt_burden - 0.05·portfolio_quality + 0.03·lending_rate

Возникает при высокой нагрузке с относительно низкими дефолтами — заёмщики не дефолтируют, но портфель под давлением. Сигнал для регуляторных интервенций.

6. Как шок от сигнала меняет мир

Когда DeepSeek классифицирует сигнал, он возвращает outcome_modifiers — мультипликаторы для вероятностей исходов. Например, для сигнала "ЦБ поднял ставку +500 бп":

outcome_modifiers = { "stable_servicing": 0.5, # вероятность снижается вдвое "portfolio_stress": 1.8, # растёт в 1.8 раза "mass_default_wave": 2.5, # резкий рост "forced_restructuring": 2.2 # высокое давление }

Симулятор применяет эти коэффициенты к текущим scoring_weights и прогоняет несколько шагов симуляции. Новое состояние мира сохраняется в граф знаний с полной трассировкой.

Численная устойчивость: если после применения шока любой ресурс выходит за пределы [0, 100], система откатывается на базовое состояние и применяет ослабленный шок (shock_decay). Это предотвращает взрывную нестабильность при экстремальных сценариях.

7. Равновесное состояние без шоков

При нулевых шоках система стремится к равновесию (фиксированной точке). Из начальных условий (симуляция 20 шагов, seed=42):

РесурсНачалоРавновесиеИзменение
key_rate60.0~57.1-2.9 (ставка медленно снижается)
lending_rate62.0~59.3-2.7
real_income70.0~72.8+2.8 (доходы растут)
debt_burden42.0~39.1-2.9 (нагрузка снижается)
default_probability22.0~18.7-3.3 (дефолты снижаются)
portfolio_quality74.0~78.3+4.3 (портфель улучшается)
В равновесии без внешних шоков мир дрейфует к stable_servicing — это соответствует нормальному функционированию рынка. Агент переключает фокус на отслеживание угроз, которые могут вывести мир из этого равновесия.