SEIAR-SEA-SEA-W模型(多种群多途径动态模型,MMDM)

使用Python实现SEIAR-SEA-SEA-W模型,模拟病毒在“人群-媒介-宿主-环境”四个部分之间的传播


日期

1 概述

该模型是基于SEIAR-SEA-SEA-W的多种群多途径动态模型(MMDM)。此案例将基于该模型,模拟病毒在“人群-媒介-宿主-环境”四个部分之间的传播,并分别用下标1、2、3和w表示。

1.1 模型假设

在构建基于SEIAR-SEA-SEA-W的多种群多途径动态模型(MMDM)时,做出以下假设:

(1) 系统划分

(2) 人群部分的假设

(3) 媒介部分的假设

(4) 宿主部分的假设

(5) 环境部分的假设

(6) 传播动力学假设

1.2 模型描述

1.3 模型参数含义

参数符号 含义
β1 人与人之间的传播系数
κ 无症状感染相对传染系数
p 潜伏感染的比例
1/ω1 潜伏期
1/γ 显性感染的感染期
1/γ' 潜伏感染期
f 致死率
br 出生率
dr 死亡率
β2 媒介之间的传播系数
β21 媒介对人传播的传播系数
β23 媒介对宿主传播的传播系数
1/ω2 媒介的潜伏期
β3 宿主之间的传播系数
β31 宿主对人的传播系数
β32 宿主对媒介的传播系数
1/ω3 宿主的潜伏期
j 宿主向环境传播的速率
βw 环境对人和宿主的传播系数
W 环境中的媒介密度

2 模型流程图及方程

$$ \begin{cases} \frac{dS_1}{dt} = br \cdot N - dr \cdot S_1 - \beta_1 \cdot S_1 \cdot (I_1 + \kappa \cdot A_1) - \beta_{2-1} \cdot S_1 \cdot A_2 - \beta_w \cdot S_1 \cdot W_{env} - \beta_{3-1} \cdot S_1 \cdot A_3 \\
\frac{dE_1}{dt} = \beta_1 \cdot S_1 \cdot (I_1 + \kappa \cdot A_1) + \beta_w \cdot S_1 \cdot W_{env} + \beta_{2-1} \cdot S_1 \cdot A_2 + \beta_{3-1} \cdot S_1 \cdot A_3 - dr \cdot E_1 - p \cdot \omega_1 \cdot E_1 - (1 - p) \cdot \omega_1 \cdot E_1 \\
\frac{dA_1}{dt} = p \cdot \omega_1 \cdot E_1 - dr \cdot A_1 - \gamma' \cdot A_1 \\
\frac{dI_1}{dt} = (1 - p) \cdot \omega_1 \cdot E_1 - \gamma \cdot I_1 - (dr + f) \cdot I_1 \\
\frac{dR_1}{dt} = \gamma' \cdot A_1 + \gamma \cdot I_1 - dr \cdot R_1 \\
\frac{dW_{env}}{dt} = j \cdot A_3 \\
\frac{dS_2}{dt} = -\beta_2 \cdot S_2 \cdot A_2 - \beta_{3-2} \cdot S_2 \cdot A_3 \\
\frac{dE_2}{dt} = \beta_2 \cdot S_2 \cdot A_2 + \beta_{3-2} \cdot S_2 \cdot A_3 - \omega_2 \cdot E_2 \\
\frac{dA_2}{dt} = \omega_2 \cdot E_2 \\
\frac{dS_3}{dt} = -\beta_w \cdot S_3 \cdot W_{env} - \beta_3 \cdot S_3 \cdot A_3 - \beta_{2-3} \cdot S_3 \cdot A_2 \\
\frac{dE_3}{dt} = \beta_3 \cdot S_3 \cdot A_3 + \beta_{2-3} \cdot S_3 \cdot A_2 + \beta_w \cdot S_3 \cdot W_{env} - \omega_3 \cdot E_3 \\
\frac{dA_3}{dt} = \omega_3 \cdot E_3 \end{cases} $$

3 适用疾病流行条件

这个基于SEIAR-SEA-SEA-W的多种群多途径动态模型(MMDM)适用于描述通过多种途径传播的疾病,特别是那些涉及人群、媒介、宿主和环境之间复杂相互作用的传染病。以下是该模型适用的疾病条件:

  1. 多途径传播

    • 疾病通过多种途径传播,包括人与人之间的直接接触、媒介叮咬、宿主传播以及环境传播。这些途径在疾病传播中起到重要作用。
  2. 媒介传播

    • 疾病必须通过媒介(如蜱虫、蚊子等)在人群中传播。媒介作为病毒的中间宿主,能够在人群和宿主之间传播病原体。
  3. 宿主传播

    • 疾病可以通过宿主(如动物)传播给人类。宿主作为病毒的储存宿主,能够在媒介和人群之间传播病原体。
  4. 环境传播

    • 疾病可以通过环境(如水源、土壤等)传播给人类和宿主。环境中的病毒可以通过接触感染人群和动物。
  5. 潜伏期和传染期

    • 疾病在人群、媒介和宿主中都有明确的潜伏期和传染期。潜伏期是指从感染到出现症状的时间,传染期是指感染者能够传播病毒的时间。
  6. 无症状感染

    • 疾病在人群中存在无症状感染者,这些感染者虽然不表现出症状,但仍具有传染能力。

适用于该模型的典型疾病包括发热伴血小板减少综合征等,这些疾病会通过媒介、宿主和环境在人群中传播。

4 代码(Python)

4.1 条件设定

4.2 代码

import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import solve_ivp

# 参数设置
br = 0.00009173  # 出生率
dr = 0.00007523  # 自然死亡率
κ = 1          # 无症状感染相对传染系数
p = 0.043      # 潜伏感染的比例
f = 0.16       # 致死率

# 潜伏期和感染期(单位:天)
ω1 = 1 / 11
γ = 1 / 14
γ_prime = 1 / 14

# 媒介相关参数
β2 = 0         # 媒介之间的传播系数
ω2 = 1 / 7

# 宿主相关参数
ω3 = 1 / 12
j = 10         # 宿主向环境传播的速率

# 环境相关
W = 0.048      # 环境中的媒介密度

# 定义 β 的季节性变化函数
def beta_seasonal(t, beta0, alpha, T):
    return beta0 * (1 + np.sin(2 * np.pi * (t + alpha) / T))

# 定义动力学模型的微分方程
def MMDM_model(t, Y, beta0, alpha, T, br, dr, κ, p, f, ω1, γ, γ_prime, β2, ω2, ω3, j, W):
    S1, E1, A1, I1, R1, W_env, S2, E2, A2, S3, E3, A3, X = Y

    N = S1 + E1 + A1 + I1 + R1  # 人口总数

    β1 = beta_seasonal(t, beta0, alpha, T)  # 计算季节性β
    β21 = 8 * β1
    β23 = 8 * β1
    β3 = 2 * β1
    β31 = 2 * β1
    β32 = 8 * β1
    βw = 9 * β1

    # 微分方程
    dS1_dt = br * N - dr * S1 - β1 * S1 * (I1 + κ * A1) / N - β21 * S1 * A2 / N - βw * S1 * W_env / N - β31 * S1 * A3 / N
    dE1_dt = β1 * S1 * (I1 + κ * A1) / N + βw * S1 * W_env / N + β21 * S1 * A2 / N + β31 * S1 * A3 / N - dr * E1 - p * ω1 * E1 - (1 - p) * ω1 * E1
    dA1_dt = p * ω1 * E1 - dr * A1 - γ_prime * A1
    dI1_dt = (1 - p) * ω1 * E1 - γ * I1 - (dr + f) * I1
    dR1_dt = γ_prime * A1 + γ * I1 - dr * R1
    dW_env_dt = j * A3

    dS2_dt = -β2 * S2 * A2 / N - β32 * S2 * A3 / N
    dE2_dt = β2 * S2 * A2 / N + β32 * S2 * A3 / N - ω2 * E2
    dA2_dt = ω2 * E2

    dS3_dt = -βw * S3 * W_env / N - β3 * S3 * A3 / N - β23 * S3 * A2 / N
    dE3_dt = β3 * S3 * A3 / N + β23 * S3 * A2 / N + βw * S3 * W_env / N - ω3 * E3
    dA3_dt = ω3 * E3

    dX_dt = (1 - p) * ω1 * E1  # 新发病例数

    return [dS1_dt, dE1_dt, dA1_dt, dI1_dt, dR1_dt, dW_env_dt, dS2_dt, dE2_dt, dA2_dt, dS3_dt, dE3_dt, dA3_dt, dX_dt]

# 初始值设置
S1_0 = 10000  # 初始易感人群
E1_0 = 0    # 初始潜伏期人群
A1_0 = 0     # 初始无症状感染者
I1_0 = 10     # 初始有症状感染者
R1_0 = 0      # 初始康复人群
W_env_0 = 0   # 初始环境中的媒介密度
S2_0 = 1000   # 初始媒介易感者
E2_0 = 0      # 初始媒介潜伏者
A2_0 = 1      # 初始媒介感染者
S3_0 = 1000   # 初始宿主易感者
E3_0 = 0      # 初始宿主潜伏者
A3_0 = 1      # 初始宿主感染者
X_0 = 0       # 初始新发病例数

Y0 = [S1_0, E1_0, A1_0, I1_0, R1_0, W_env_0, S2_0, E2_0, A2_0, S3_0, E3_0, A3_0, X_0]

# 时间范围 (单位:天)
t_span = (0, 365)

# 其他参数
beta0 = 0.0005  # 基础传播率
alpha = 0       # 相位偏移
T = 365         # 周期 (一年)

# 求解微分方程
sol = solve_ivp(MMDM_model, t_span, Y0, args=(beta0, alpha, T, br, dr, κ, p, f, ω1, γ, γ_prime, β2, ω2, ω3, j, W), method='RK45', t_eval=np.linspace(0, 365, 365))

4.3 结果

# 可视化结果
plt.figure(figsize=(12, 8))
plt.plot(sol.t, sol.y[0], label='S1 (Susceptible)')
plt.plot(sol.t, sol.y[1], label='E1 (Exposed)')
plt.plot(sol.t, sol.y[2], label='A1 (Asymptomatic)')
plt.plot(sol.t, sol.y[3], label='I1 (Infected)')
plt.plot(sol.t, sol.y[4], label='R1 (Removed)')
plt.xlabel('Time (days)')
plt.ylabel('Population')
plt.title('MMDM Simulation')
plt.legend()

4.4 结果分析

结果图展示了多种群多途径动态模型(MMDM)在1年(365天)内的模拟结果。模型包含以下五个群体:

结果清晰地展示了疾病传播过程中的时间动态,从以易感人群为主逐渐过渡到移除人群的稳定状态。

5 扩展

为了更全面地描述疾病传播过程并评估干预措施的效果,可以在现有SEIAR-SEA-SEA-W模型的基础上进行扩展。以下是几种可能的扩展方向:

5.1 加入干预措施

干预措施是控制疾病传播的重要手段。可以在模型中引入以下干预措施:

5.2 改变仓室流向

可以通过改变仓室之间的流向来模拟不同的疾病传播机制:

王冰冰
正在飞的泡泡