Спроектируйте модель SIR для распространения эпидемии на графе контактов: опишите уравнения или стохастическую симуляцию, объясните, как оценить параметры модели по наблюдаемым данным, какие методы чувствительности и валидации использовать, и как учитывать неоднородности популяции и вмешательства (вакцинация, локдауны)
Краткая формулировка модели, способы симуляции, оценивания, валидации и учёта неоднородностей/вмешательств. 1) Постановка на графе - Граф контактов G=(V,E)G=(V,E)G=(V,E), матрица смежности A=(Aij)A=(A_{ij})A=(Aij) (взвешенная или 0/1). Для каждого узла iii состояния S,I,RS,I,RS,I,R (числа или вероятности). - Узловой (NIMFA) детерминированный приближённый ODE для долей/вероятностей Si(t),Ii(t),Ri(t)S_i(t),I_i(t),R_i(t)Si(t),Ii(t),Ri(t): dSidt=−βSi∑jAijIj,dIidt=βSi∑jAijIj−γIi,dRidt=γIi.
\frac{dS_i}{dt} = -\beta S_i \sum_j A_{ij} I_j, \qquad \frac{dI_i}{dt} = \beta S_i \sum_j A_{ij} I_j - \gamma I_i, \qquad \frac{dR_i}{dt} = \gamma I_i. dtdSi=−βSij∑AijIj,dtdIi=βSij∑AijIj−γIi,dtdRi=γIi.
(Здесь Si+Ii+Ri=1S_i+I_i+R_i=1Si+Ii+Ri=1 если это вероятности.) 2) Стохастическая модель (точная CTMC на графе) - Правила: для любого инфицированного узла jjj и соседнего восприимчивого iii событие заражения Si→IiS_i\to I_iSi→Ii происходит с интенсивностью βAij\beta A_{ij}βAij; восстановление Ii→RiI_i\to R_iIi→Ri с интенсивностью γ\gammaγ. - Интенсивность заражения восприимчивого iii в момент ttt: λi(t)=β∑jAij1{j инфекц. в t}.
\lambda_i(t)=\beta\sum_j A_{ij}\mathbf{1}_{\{j\ \text{инфекц. в }t\}}. λi(t)=βj∑Aij1{jинфекц. вt}.
- Симуляция: алгоритм Гиллеспи / реакционно-сетевой SSA: 1. Вычислить все текущие интенсивности (вызовы заражения и восстановления). 2. Сгенерировать время до следующего события эксп(∑intens\sum \text{intens}∑intens). 3. Выбрать тип/узел события с вероятностью пропорционально интенсивности; обновить состояния и интенсивности; повторять. 3) Оценивание параметров (β,γ\beta,\gammaβ,γ) по наблюдениям - Полные наблюдения (времена заражения/выздоровления для узлов): максимальное правдоподобие. Общая форма правдоподобия для CTMC: L(β,γ)=∏k∈инф. событияλik(tk) exp(−∫0T∑i∈S(t)λi(t) dt)×∏r∈восст.γexp(−γΔtr).
L(\beta,\gamma)=\prod_{k\in\text{инф. события}}\lambda_{i_k}(t_k)\,\exp\Big(-\int_0^T\sum_{i\in S(t)}\lambda_i(t)\,dt\Big) \times \prod_{r\in\text{восст.}} \gamma \exp(-\gamma \Delta t_r). L(β,γ)=k∈инф. события∏λik(tk)exp(−∫0Ti∈S(t)∑λi(t)dt)×r∈восст.∏γexp(−γΔtr).
Максимизировать по параметрам или брать байесовскую апостериорную оценку. - Частичные/агрегированные данные (дневные случаи, неполное тестирование): методы частичной информации - Частичная правдоподобная оптимизация с восстановлением скрытых траекторий (EM, data augmentation MCMC). - Частично наблюдаемые фильтры (particle filter / Sequential Monte Carlo) для оценивания и фильтрации параметров. - Approximate Bayesian Computation (ABC) при невозможности вычислить правдоподобие. - Учёт недоучёта/задержек: ввести параметр отчётности ρ\rhoρ (вероятность, что событие зафиксировано), моделировать задержки отчетов как распределение времени наблюдения. 4) Чувствительность и идентифицируемость - Локальная чувствительность: численные производные/градиенты целевой метрики y(θ)y(\theta)y(θ) по параметрам θ\thetaθ (например, конечный размер эпидемии, peak time): ∂y/∂θ\partial y/\partial\theta∂y/∂θ. - Профильное правдоподобие для выявления идентифицируемости (фиксировать один параметр, оптимизировать остальные). - Глобальная чувствительность: Sobol, Morris — варьировать параметры в пределах априорных интервалов и смотреть вклад в дисперсию выходов. - Анализ «sloppy parameters»: собственные значения матрицы Фишера (Fisher Information) — показатели, насколько параметры идентифицируемы. - Валидация параметров: параметрическая бутстрэп, кросс-валидация по временам/регионам, posterior predictive checks (сравнить распределения симуляций с данными). 5) Валидация модели - Разделение данных: калибровка на тренировочном интервале, тестирование прогноза на отложенном периоде. - Posterior predictive checks: моделировать траектории с полученным распределением параметров и сравнивать с наблюдаемыми статистиками (накопленные случаи, пиковые значения, временные профили). - ROC/precision для предсказания отдельных узлов (если есть лейблы заражений по узлам). - Сравнение альтернативных моделей (AIC, BIC, WAIC, LOO-CV для байесовских моделей). 6) Учёт неоднородностей - Пер-ребро и пер-узел трансмиссивности: ввести веса βij\beta_{ij}βij или узловые коэффициенты βi\beta_iβi, тогда интенсивность заражения λi(t)=∑jβijAij1{j инфекц.}.
\lambda_i(t)=\sum_j \beta_{ij} A_{ij}\mathbf{1}_{\{j\ \text{инфекц.}\}}. λi(t)=j∑βijAij1{jинфекц.}.
- Групповая структура / возраст: разбить на подпопуляции a,ba,ba,b и использовать контактную матрицу CabC_{ab}Cab; агрегированные ODE: dIadt=∑bβCabSaIbNb−γIa.
\frac{dI_a}{dt}=\sum_b \beta C_{ab} S_a \frac{I_b}{N_b}-\gamma I_a. dtdIa=b∑βCabSaNbIb−γIa.
- Вариабельность восприимчивости/вирусовыделения: вводить распределения βi∼\beta_i\simβi∼ (например, гамма) или стохастические весы; учитывать супершреддеров. - Ассимптоматические/латентные стадии: добавить компартмент(ы) EEE (exposed), AAA (асимп.) с отдельными параметрами перехода и инфективности. 7) Моделирование вмешательств - Вакцинация: - Снижение доли восприимчивых: для вакцинированного узла iii снизить Si→(1−ei)SiS_i\to(1-e_i)S_iSi→(1−ei)Si или удалить узел (стерильная иммунность). - Снижение передачи: уменьшить βij→(1−eijtrans)βij\beta_{ij}\to(1-e^{\text{trans}}_{ij})\beta_{ij}βij→(1−eijtrans)βij. - Стратегии: случайная, таргетированная по степени (удаление/вакцинация узлов с максимальной степенью kkk), по центральности. - Локдауны / сокращение контактов: - Временное изменение весов/матрицы: Aij(t)=c(t)AijA_{ij}(t)=c(t)A_{ij}Aij(t)=c(t)Aij или для подгрупп cab(t)c_{ab}(t)cab(t). - Удаление/реорганизация краёв между кластерами, временное снижение степени. - Тестирование и изоляция: введение быстрого удаления инфицированных (увеличение γ\gammaγ для выявленных) или переводом в отдельный компартмент с нулевой инфективностью. - Комбинации и time‑dependent параметры: модель с β(t)\beta(t)β(t), γ(t)\gamma(t)γ(t), A(t)A(t)A(t). 8) Практические рекомендации - Для больших сетей (миллионы узлов): использовать NIMFA/парные аппроксимации или агрегацию по классам; для важной локальной динамики — стохастические симуляции на подграфах. - Для частичных данных: предпочтительны particle MCMC / SMC или ABC; если есть много данных и сеть неизвестна — оценивать эффективную контактную матрицу из мобильности/опросов. - Проверяйте идентифицируемость перед интерпретацией параметров, проводите глобальную чувствительность и posterior predictive validation. Если надо, могу привести компактный псевдокод для Gillespie на графе или пример правдоподобия/EM для частичных наблюдений.
1) Постановка на графе
- Граф контактов G=(V,E)G=(V,E)G=(V,E), матрица смежности A=(Aij)A=(A_{ij})A=(Aij ) (взвешенная или 0/1). Для каждого узла iii состояния S,I,RS,I,RS,I,R (числа или вероятности).
- Узловой (NIMFA) детерминированный приближённый ODE для долей/вероятностей Si(t),Ii(t),Ri(t)S_i(t),I_i(t),R_i(t)Si (t),Ii (t),Ri (t):
dSidt=−βSi∑jAijIj,dIidt=βSi∑jAijIj−γIi,dRidt=γIi. \frac{dS_i}{dt} = -\beta S_i \sum_j A_{ij} I_j,
\qquad
\frac{dI_i}{dt} = \beta S_i \sum_j A_{ij} I_j - \gamma I_i,
\qquad
\frac{dR_i}{dt} = \gamma I_i.
dtdSi =−βSi j∑ Aij Ij ,dtdIi =βSi j∑ Aij Ij −γIi ,dtdRi =γIi . (Здесь Si+Ii+Ri=1S_i+I_i+R_i=1Si +Ii +Ri =1 если это вероятности.)
2) Стохастическая модель (точная CTMC на графе)
- Правила: для любого инфицированного узла jjj и соседнего восприимчивого iii событие заражения Si→IiS_i\to I_iSi →Ii происходит с интенсивностью βAij\beta A_{ij}βAij ; восстановление Ii→RiI_i\to R_iIi →Ri с интенсивностью γ\gammaγ.
- Интенсивность заражения восприимчивого iii в момент ttt:
λi(t)=β∑jAij1{j инфекц. в t}. \lambda_i(t)=\beta\sum_j A_{ij}\mathbf{1}_{\{j\ \text{инфекц. в }t\}}.
λi (t)=βj∑ Aij 1{j инфекц. в t} . - Симуляция: алгоритм Гиллеспи / реакционно-сетевой SSA:
1. Вычислить все текущие интенсивности (вызовы заражения и восстановления).
2. Сгенерировать время до следующего события эксп(∑intens\sum \text{intens}∑intens).
3. Выбрать тип/узел события с вероятностью пропорционально интенсивности; обновить состояния и интенсивности; повторять.
3) Оценивание параметров (β,γ\beta,\gammaβ,γ) по наблюдениям
- Полные наблюдения (времена заражения/выздоровления для узлов): максимальное правдоподобие. Общая форма правдоподобия для CTMC:
L(β,γ)=∏k∈инф. событияλik(tk) exp(−∫0T∑i∈S(t)λi(t) dt)×∏r∈восст.γexp(−γΔtr). L(\beta,\gamma)=\prod_{k\in\text{инф. события}}\lambda_{i_k}(t_k)\,\exp\Big(-\int_0^T\sum_{i\in S(t)}\lambda_i(t)\,dt\Big)
\times
\prod_{r\in\text{восст.}} \gamma \exp(-\gamma \Delta t_r).
L(β,γ)=k∈инф. события∏ λik (tk )exp(−∫0T i∈S(t)∑ λi (t)dt)×r∈восст.∏ γexp(−γΔtr ). Максимизировать по параметрам или брать байесовскую апостериорную оценку.
- Частичные/агрегированные данные (дневные случаи, неполное тестирование): методы частичной информации
- Частичная правдоподобная оптимизация с восстановлением скрытых траекторий (EM, data augmentation MCMC).
- Частично наблюдаемые фильтры (particle filter / Sequential Monte Carlo) для оценивания и фильтрации параметров.
- Approximate Bayesian Computation (ABC) при невозможности вычислить правдоподобие.
- Учёт недоучёта/задержек: ввести параметр отчётности ρ\rhoρ (вероятность, что событие зафиксировано), моделировать задержки отчетов как распределение времени наблюдения.
4) Чувствительность и идентифицируемость
- Локальная чувствительность: численные производные/градиенты целевой метрики y(θ)y(\theta)y(θ) по параметрам θ\thetaθ (например, конечный размер эпидемии, peak time): ∂y/∂θ\partial y/\partial\theta∂y/∂θ.
- Профильное правдоподобие для выявления идентифицируемости (фиксировать один параметр, оптимизировать остальные).
- Глобальная чувствительность: Sobol, Morris — варьировать параметры в пределах априорных интервалов и смотреть вклад в дисперсию выходов.
- Анализ «sloppy parameters»: собственные значения матрицы Фишера (Fisher Information) — показатели, насколько параметры идентифицируемы.
- Валидация параметров: параметрическая бутстрэп, кросс-валидация по временам/регионам, posterior predictive checks (сравнить распределения симуляций с данными).
5) Валидация модели
- Разделение данных: калибровка на тренировочном интервале, тестирование прогноза на отложенном периоде.
- Posterior predictive checks: моделировать траектории с полученным распределением параметров и сравнивать с наблюдаемыми статистиками (накопленные случаи, пиковые значения, временные профили).
- ROC/precision для предсказания отдельных узлов (если есть лейблы заражений по узлам).
- Сравнение альтернативных моделей (AIC, BIC, WAIC, LOO-CV для байесовских моделей).
6) Учёт неоднородностей
- Пер-ребро и пер-узел трансмиссивности: ввести веса βij\beta_{ij}βij или узловые коэффициенты βi\beta_iβi , тогда интенсивность заражения
λi(t)=∑jβijAij1{j инфекц.}. \lambda_i(t)=\sum_j \beta_{ij} A_{ij}\mathbf{1}_{\{j\ \text{инфекц.}\}}.
λi (t)=j∑ βij Aij 1{j инфекц.} . - Групповая структура / возраст: разбить на подпопуляции a,ba,ba,b и использовать контактную матрицу CabC_{ab}Cab ; агрегированные ODE:
dIadt=∑bβCabSaIbNb−γIa. \frac{dI_a}{dt}=\sum_b \beta C_{ab} S_a \frac{I_b}{N_b}-\gamma I_a.
dtdIa =b∑ βCab Sa Nb Ib −γIa . - Вариабельность восприимчивости/вирусовыделения: вводить распределения βi∼\beta_i\simβi ∼ (например, гамма) или стохастические весы; учитывать супершреддеров.
- Ассимптоматические/латентные стадии: добавить компартмент(ы) EEE (exposed), AAA (асимп.) с отдельными параметрами перехода и инфективности.
7) Моделирование вмешательств
- Вакцинация:
- Снижение доли восприимчивых: для вакцинированного узла iii снизить Si→(1−ei)SiS_i\to(1-e_i)S_iSi →(1−ei )Si или удалить узел (стерильная иммунность).
- Снижение передачи: уменьшить βij→(1−eijtrans)βij\beta_{ij}\to(1-e^{\text{trans}}_{ij})\beta_{ij}βij →(1−eijtrans )βij .
- Стратегии: случайная, таргетированная по степени (удаление/вакцинация узлов с максимальной степенью kkk), по центральности.
- Локдауны / сокращение контактов:
- Временное изменение весов/матрицы: Aij(t)=c(t)AijA_{ij}(t)=c(t)A_{ij}Aij (t)=c(t)Aij или для подгрупп cab(t)c_{ab}(t)cab (t).
- Удаление/реорганизация краёв между кластерами, временное снижение степени.
- Тестирование и изоляция: введение быстрого удаления инфицированных (увеличение γ\gammaγ для выявленных) или переводом в отдельный компартмент с нулевой инфективностью.
- Комбинации и time‑dependent параметры: модель с β(t)\beta(t)β(t), γ(t)\gamma(t)γ(t), A(t)A(t)A(t).
8) Практические рекомендации
- Для больших сетей (миллионы узлов): использовать NIMFA/парные аппроксимации или агрегацию по классам; для важной локальной динамики — стохастические симуляции на подграфах.
- Для частичных данных: предпочтительны particle MCMC / SMC или ABC; если есть много данных и сеть неизвестна — оценивать эффективную контактную матрицу из мобильности/опросов.
- Проверяйте идентифицируемость перед интерпретацией параметров, проводите глобальную чувствительность и posterior predictive validation.
Если надо, могу привести компактный псевдокод для Gillespie на графе или пример правдоподобия/EM для частичных наблюдений.