Ситуация моделирования: вам нужно смоделировать распространение нового патогена в сети городов, где транспортная сеть представлена графом с гетерогенными контактными интенсивностями и сезонной вариабельностью. Опишите выбор модели (агентный, SIR, метапопуляционная ODE и т.д.), как задать параметры и неопределённости, какие численные методы и валидация подойдут, и какие выводы можно сделать для принятия политических решений с учётом ограниченных данных
Кратко и по существу — выбор модели, параметризация и неопределённость, численные методы и валидация, практические выводы для политики при ограниченных данных. 1) Выбор модели — критерии и рекомендации - Критерии: размер и разбиение популяции, доступность данных (популяционные серии случаев, мобильность), роль случайности, требуемая детализация интервенций. - Рекомендация: - Для сети городов с гетерогенными контактами и сезонностью: метапопуляционная SEIR/SEIQR-ODE с движением между узлами как базовый быстрый подход (баланс точности/скорости). - Если важны случайные завозы и малые очаги — стохастическая метапопуляционная модель (Gillespie / tau-leaping). - Для оценки локальных мер (локдаун, тест/изоляция, контакт-трейсинг) в конкретных городах — гибрид: агентная модель для нескольких ключевых узлов + метапопуляционная ODE/стохастика для остальных. - Если есть детальные данные контактов/транспорта — полноценная агентная модель; если данных мало — не стоит перегружать модель агентным уровнем. 2) Математическая формулировка (пример метапопуляционной SEIR с сезонностью и мобильностью) S˙i=−βi(t)Si∑jCijIjNj+∑jMjiSj−∑jMijSi,E˙i=βi(t)Si∑jCijIjNj−σEi+∑jMjiEj−∑jMijEi,I˙i=σEi−γIi+∑jMjiIj−∑jMijIi,R˙i=γIi+∑jMjiRj−∑jMijRi,
\begin{aligned} \dot S_i &= -\beta_i(t) S_i \sum_j \frac{C_{ij} I_j}{N_j} + \sum_j M_{ji} S_j - \sum_j M_{ij} S_i,\\ \dot E_i &= \beta_i(t) S_i \sum_j \frac{C_{ij} I_j}{N_j} - \sigma E_i + \sum_j M_{ji} E_j - \sum_j M_{ij} E_i,\\ \dot I_i &= \sigma E_i - \gamma I_i + \sum_j M_{ji} I_j - \sum_j M_{ij} I_i,\\ \dot R_i &= \gamma I_i + \sum_j M_{ji} R_j - \sum_j M_{ij} R_i, \end{aligned} S˙iE˙iI˙iR˙i=−βi(t)Sij∑NjCijIj+j∑MjiSj−j∑MijSi,=βi(t)Sij∑NjCijIj−σEi+j∑MjiEj−j∑MijEi,=σEi−γIi+j∑MjiIj−j∑MijIi,=γIi+j∑MjiRj−j∑MijRi,
где CijC_{ij}Cij — матрица контактных интенсивностей (может быть асимметричной), MijM_{ij}Mij — матрица потоков (число людей в единицу времени), сезонность задаётся через βi(t)\beta_i(t)βi(t), например βi(t)=β0,i(1+aisin (2πtT+ϕi)).
\beta_i(t)=\beta_{0,i}\Big(1+a_i\sin\!\big(\tfrac{2\pi t}{T}+\phi_i\big)\Big). βi(t)=β0,i(1+aisin(T2πt+ϕi)).
Базовое репродуктивное число для сети через следующую генерацию: Kij=β0,iSi0CijγNj,R0=ρ(K),
K_{ij}=\frac{\beta_{0,i} S_i^0 C_{ij}}{\gamma N_j},\qquad R_0=\rho(K), Kij=γNjβ0,iSi0Cij,R0=ρ(K),
где ρ(⋅)\rho(\cdot)ρ(⋅) — спектральный радиус. 3) Параметры и неопределённости — как задать - Параметры: β0,i\beta_{0,i}β0,i, aia_iai, ϕi\phi_iϕi, σ\sigmaσ (1/инфекционный латентный период), γ\gammaγ (выздоровление), элементы CijC_{ij}Cij, MijM_{ij}Mij, уровни подотчётности/запаздывания. - Источники оценки: мобильность (мобильные данные, транспортные потоки), демография, эпидсериалы, госпитализации, серопробы. - Неопределённости: - Ввести иерархические априорные распределения по узлам: β0,i∼LogNormal(μβ,σβ)\beta_{0,i}\sim \text{LogNormal}(\mu_\beta,\sigma_\beta)β0,i∼LogNormal(μβ,σβ) и т.д. - Наблюдательная модель: если наблюдаются случаи yi,ty_{i,t}yi,t, yi,t∼NegBin(ρi(t)⋅new_infectionsi,t, k),
y_{i,t}\sim \text{NegBin}\big(\rho_i(t)\cdot \text{new\_infections}_{i,t},\,k\big), yi,t∼NegBin(ρi(t)⋅new_infectionsi,t,k),
где ρi(t)\rho_i(t)ρi(t) — доля выявления, kkk — параметр сверхдисперсии. - Моделировать подотчётность, задержки и изменение тестирования во времени. 4) Оценка параметров и алгоритмы под неопределённость - Если данные агрегированы/слишком шумны: ABC или Approximate Bayesian methods. - Для детальной подгонки: particle MCMC, iterated filtering (IF2), или PMMH; для больших систем — Ensemble Kalman Filter / EAKF для онлайн-оценки. - Предположения/приоритеты: использовать иерархическую валидацию (общие гиперпараметры плюс локальные отклонения). - Провести глобальный анализ чувствительности (Sobol, FAST) и локальный (PRCC) по ключевым параметрам. 5) Численные методы и реализация - Детерминированная ODE-часть: жёсткие решатели (CVODE/Sundials) при больших разностях временных шкал. - Случайная модель: Gillespie для малых популяций; tau-leaping или τ-LEAP для ускорения; hybrid tau-leap/ODE для комбинированных систем. - Агентные модели: оптимизировать с помощью скомпилированного кода (C++, Java) и параллелизации; для экспериментов — Mesa/Repast. - Для многократных сценариев и байесовского вывода — массовая параллельная прогонка ансамблей на кластере/облаке. - Контроль численной точности: сравнение шагов, тесты на сохранение населения, воспроизводимость. 6) Валидация модели - Hindcasting: подгонка по части исторического периода, прогнозирование в вёрстке на отложенный период. - Posterior predictive checks: сравнить распределения наблюдений и симуляций. - Кросс-валидация по узлам (оставить города для проверки). - Сопоставление с независимыми источниками: госпитализации, смертность, серопробы, данные по мобильности. - Оценка предсказательной вероятности событий (вероятность пика > порог) — калибровка вероятностных прогнозов. 7) Выводы для принятия решений при ограниченных данных - Формат результата: сценарный ансамбль с неопределённостями, не единственная траектория. - Полезные метрики: Reff(t)R_\text{eff}(t)Reff(t) по узлам, вероятность появления крупного очага в узле, ожидаемая нагрузка на госпитали, время и высота пика, суммарный атак-рейд/доля инфицированных. - Рекомендации политике: - Принять решения на основе сценариев и порогов (например, если P(пик>мощности)=>0.1 — активировать меры). - При нехватке данных — ориентироваться на «no-regret» меры: усиление целевой тестирования, защита здравсистемы, приоритет вакцинации/терапии в узлах с высокой центральностью в матрице MMM или высокими CiiC_{ii}Cii. - Использовать локализованные NPIs в городах с высоким вкладом в мета-спред (высокая исходящая мобильность), вместо общенационального lockdown, когда цель — задержать распространение. - Инвестиции в сбор данных: регулярные серosurveys, sentinel-госпитали, агрегированная мобильность — наибольшая ценность для уменьшения неопределённости. - Оценка стоимости информации (Value of Information): какие сборы данных дадут наибольшее снижение неопределённости для решения. 8) Практические советы по рабочему процессу - Начать с простого метапопуляционного SEIR, провести чувствительность и идентифицируемость параметров; при необходимости усложнять. - Вести ансамбль моделей (ODE, стохастика, агентная) для оценки структурной неопределённости. - Документировать все допущения, варианта наблюдательной модели и сценарии тестирования. - Готовить понятные выводы для власти: вероятностные пороги, ключевые неопределённости и рекомендации по дополнительным данным. Коротко: используйте метапопуляционную SEIR/стохастику с матрицами контактов CijC_{ij}Cij и мобильности MijM_{ij}Mij, задавайте сезонную βi(t)\beta_i(t)βi(t), оценивайте параметры через байесовские/частичные фильтры с наблюдательной моделью (NegativeBinomial + подотчётность), проверяйте через hindcast и независимые данные, давайте политике ансамблевые сценарии и рекомендации по сбору данных и целевым мерам.
1) Выбор модели — критерии и рекомендации
- Критерии: размер и разбиение популяции, доступность данных (популяционные серии случаев, мобильность), роль случайности, требуемая детализация интервенций.
- Рекомендация:
- Для сети городов с гетерогенными контактами и сезонностью: метапопуляционная SEIR/SEIQR-ODE с движением между узлами как базовый быстрый подход (баланс точности/скорости).
- Если важны случайные завозы и малые очаги — стохастическая метапопуляционная модель (Gillespie / tau-leaping).
- Для оценки локальных мер (локдаун, тест/изоляция, контакт-трейсинг) в конкретных городах — гибрид: агентная модель для нескольких ключевых узлов + метапопуляционная ODE/стохастика для остальных.
- Если есть детальные данные контактов/транспорта — полноценная агентная модель; если данных мало — не стоит перегружать модель агентным уровнем.
2) Математическая формулировка (пример метапопуляционной SEIR с сезонностью и мобильностью)
S˙i=−βi(t)Si∑jCijIjNj+∑jMjiSj−∑jMijSi,E˙i=βi(t)Si∑jCijIjNj−σEi+∑jMjiEj−∑jMijEi,I˙i=σEi−γIi+∑jMjiIj−∑jMijIi,R˙i=γIi+∑jMjiRj−∑jMijRi, \begin{aligned}
\dot S_i &= -\beta_i(t) S_i \sum_j \frac{C_{ij} I_j}{N_j} + \sum_j M_{ji} S_j - \sum_j M_{ij} S_i,\\
\dot E_i &= \beta_i(t) S_i \sum_j \frac{C_{ij} I_j}{N_j} - \sigma E_i + \sum_j M_{ji} E_j - \sum_j M_{ij} E_i,\\
\dot I_i &= \sigma E_i - \gamma I_i + \sum_j M_{ji} I_j - \sum_j M_{ij} I_i,\\
\dot R_i &= \gamma I_i + \sum_j M_{ji} R_j - \sum_j M_{ij} R_i,
\end{aligned}
S˙i E˙i I˙i R˙i =−βi (t)Si j∑ Nj Cij Ij +j∑ Mji Sj −j∑ Mij Si ,=βi (t)Si j∑ Nj Cij Ij −σEi +j∑ Mji Ej −j∑ Mij Ei ,=σEi −γIi +j∑ Mji Ij −j∑ Mij Ii ,=γIi +j∑ Mji Rj −j∑ Mij Ri , где CijC_{ij}Cij — матрица контактных интенсивностей (может быть асимметричной), MijM_{ij}Mij — матрица потоков (число людей в единицу времени), сезонность задаётся через βi(t)\beta_i(t)βi (t), например
βi(t)=β0,i(1+aisin (2πtT+ϕi)). \beta_i(t)=\beta_{0,i}\Big(1+a_i\sin\!\big(\tfrac{2\pi t}{T}+\phi_i\big)\Big).
βi (t)=β0,i (1+ai sin(T2πt +ϕi )). Базовое репродуктивное число для сети через следующую генерацию:
Kij=β0,iSi0CijγNj,R0=ρ(K), K_{ij}=\frac{\beta_{0,i} S_i^0 C_{ij}}{\gamma N_j},\qquad R_0=\rho(K),
Kij =γNj β0,i Si0 Cij ,R0 =ρ(K), где ρ(⋅)\rho(\cdot)ρ(⋅) — спектральный радиус.
3) Параметры и неопределённости — как задать
- Параметры: β0,i\beta_{0,i}β0,i , aia_iai , ϕi\phi_iϕi , σ\sigmaσ (1/инфекционный латентный период), γ\gammaγ (выздоровление), элементы CijC_{ij}Cij , MijM_{ij}Mij , уровни подотчётности/запаздывания.
- Источники оценки: мобильность (мобильные данные, транспортные потоки), демография, эпидсериалы, госпитализации, серопробы.
- Неопределённости:
- Ввести иерархические априорные распределения по узлам: β0,i∼LogNormal(μβ,σβ)\beta_{0,i}\sim \text{LogNormal}(\mu_\beta,\sigma_\beta)β0,i ∼LogNormal(μβ ,σβ ) и т.д.
- Наблюдательная модель: если наблюдаются случаи yi,ty_{i,t}yi,t ,
yi,t∼NegBin(ρi(t)⋅new_infectionsi,t, k), y_{i,t}\sim \text{NegBin}\big(\rho_i(t)\cdot \text{new\_infections}_{i,t},\,k\big),
yi,t ∼NegBin(ρi (t)⋅new_infectionsi,t ,k), где ρi(t)\rho_i(t)ρi (t) — доля выявления, kkk — параметр сверхдисперсии.
- Моделировать подотчётность, задержки и изменение тестирования во времени.
4) Оценка параметров и алгоритмы под неопределённость
- Если данные агрегированы/слишком шумны: ABC или Approximate Bayesian methods.
- Для детальной подгонки: particle MCMC, iterated filtering (IF2), или PMMH; для больших систем — Ensemble Kalman Filter / EAKF для онлайн-оценки.
- Предположения/приоритеты: использовать иерархическую валидацию (общие гиперпараметры плюс локальные отклонения).
- Провести глобальный анализ чувствительности (Sobol, FAST) и локальный (PRCC) по ключевым параметрам.
5) Численные методы и реализация
- Детерминированная ODE-часть: жёсткие решатели (CVODE/Sundials) при больших разностях временных шкал.
- Случайная модель: Gillespie для малых популяций; tau-leaping или τ-LEAP для ускорения; hybrid tau-leap/ODE для комбинированных систем.
- Агентные модели: оптимизировать с помощью скомпилированного кода (C++, Java) и параллелизации; для экспериментов — Mesa/Repast.
- Для многократных сценариев и байесовского вывода — массовая параллельная прогонка ансамблей на кластере/облаке.
- Контроль численной точности: сравнение шагов, тесты на сохранение населения, воспроизводимость.
6) Валидация модели
- Hindcasting: подгонка по части исторического периода, прогнозирование в вёрстке на отложенный период.
- Posterior predictive checks: сравнить распределения наблюдений и симуляций.
- Кросс-валидация по узлам (оставить города для проверки).
- Сопоставление с независимыми источниками: госпитализации, смертность, серопробы, данные по мобильности.
- Оценка предсказательной вероятности событий (вероятность пика > порог) — калибровка вероятностных прогнозов.
7) Выводы для принятия решений при ограниченных данных
- Формат результата: сценарный ансамбль с неопределённостями, не единственная траектория.
- Полезные метрики: Reff(t)R_\text{eff}(t)Reff (t) по узлам, вероятность появления крупного очага в узле, ожидаемая нагрузка на госпитали, время и высота пика, суммарный атак-рейд/доля инфицированных.
- Рекомендации политике:
- Принять решения на основе сценариев и порогов (например, если P(пик>мощности)=>0.1 — активировать меры).
- При нехватке данных — ориентироваться на «no-regret» меры: усиление целевой тестирования, защита здравсистемы, приоритет вакцинации/терапии в узлах с высокой центральностью в матрице MMM или высокими CiiC_{ii}Cii .
- Использовать локализованные NPIs в городах с высоким вкладом в мета-спред (высокая исходящая мобильность), вместо общенационального lockdown, когда цель — задержать распространение.
- Инвестиции в сбор данных: регулярные серosurveys, sentinel-госпитали, агрегированная мобильность — наибольшая ценность для уменьшения неопределённости.
- Оценка стоимости информации (Value of Information): какие сборы данных дадут наибольшее снижение неопределённости для решения.
8) Практические советы по рабочему процессу
- Начать с простого метапопуляционного SEIR, провести чувствительность и идентифицируемость параметров; при необходимости усложнять.
- Вести ансамбль моделей (ODE, стохастика, агентная) для оценки структурной неопределённости.
- Документировать все допущения, варианта наблюдательной модели и сценарии тестирования.
- Готовить понятные выводы для власти: вероятностные пороги, ключевые неопределённости и рекомендации по дополнительным данным.
Коротко: используйте метапопуляционную SEIR/стохастику с матрицами контактов CijC_{ij}Cij и мобильности MijM_{ij}Mij , задавайте сезонную βi(t)\beta_i(t)βi (t), оценивайте параметры через байесовские/частичные фильтры с наблюдательной моделью (NegativeBinomial + подотчётность), проверяйте через hindcast и независимые данные, давайте политике ансамблевые сценарии и рекомендации по сбору данных и целевым мерам.