模型描述
SEICR 模型是一种用于描述具有慢性期的传染病传播规律的数学模型。该模型将人群分为五个部分,分别是易感个体(Susceptible,S)、潜伏期个体(Exposed,E)、急性期感染个体(Infected,I)、慢性期个体(Chronic,C)以及恢复个体(Recovered,R)。在 SEICR 模型中,通过一系列经过参数化的传播、进展和恢复速率,详细描绘了易感个体被感染的初始阶段、潜伏期个体逐渐发展为急性感染的过程、急性感染个体转变为慢性感染状态以及最终所有感染个体逐步恢复的整个疾病传播与演变历程。
模型假设
-
感染力假设 :急性感染病例与慢性感染病例在传播疾病方面具有相同的感染力,无论个体处于急性感染阶段还是慢性感染阶段,其传染他人的能力系数均用 β 来表示。
-
潜伏期与进展速率 :设定潜伏期的时长为 1/ω,基于此,在 t 时刻,从潜伏期状态(E)进展到急性感染状态(I)的人数计算方式为 ωEt。
-
慢性期进展与恢复 :假定感染个体中进入慢性期的比例为 p。对于处于急性感染期(I)的个体,以速率 γ 向两个方向转变:一部分(pγI)进展为慢性感染状态(C),另一部分(1-p)γI 则进入恢复状态(R)。
-
急性感染期存活假设 :考虑到急性感染期的患者通常症状相对较轻,并不会面临生命危险,因此在模型构建过程中,急性感染期不考虑因该疾病导致的死亡情况发生。
-
人口更新与病死率 :假设所有新生儿均为易感个体,自然出生率用 br 表示,同时存在自然死亡率 dr,此外,针对该疾病还单独设定有病死率 f,用于综合衡量疾病对人群生存的影响。
模型介绍
手搓代码
% 模型参数
N = 100000; % 总人数
I0 = 36; % 初始急性期感染人数
C0 = 0; % 初始慢性期感染人数
R0 = 0; % 初始康复人数
E0 = 100; % 初始暴露人数
S0 = 99864; % 初始易感人数
omega = 1 / 1.5; % 暴露转化速率
p = 0.7; % 感染者进入慢性期的比例
gamma = 1 / 6; % 康复速率
f = 0.15; % 病死率
br = 0.00021; % 人口自然出生率
dr = 0.00016; % 人口自然死亡率
num_days = 120; % 模拟天数
I_obs = [36, 37, 58, 55, 39, 52, 56, 38, 54, 34, 48, 51, 34, 38, 46, 49, 40, 65, 55, 61,...59, 46, 57, 85, 64, 41, 78, 72, 67, 75, 63, 74, 77, 56, 81, 71, 52, 69, 83, 100,...112, 95, 97, 114, 103, 90, 102, 106, 82, 70, 118, 113, 131, 120, 120, 153, 156, 124,...117, 138, 139, 124, 149, 171, 176, 182, 176, 165, 200, 150, 186, 186, 165, 115, 219,...234, 218, 235, 269, 191, 232, 176, 254, 282, 189, 132, 265, 246, 238, 257, 235, 254,...249, 244, 250, 270, 180, 182, 296, 252, 266, 293, 271, 253, 247, 239, 284, 269, 252,...145, 320, 304, 308, 267, 290, 300, 303, 244, 361, 339];beta_initial = 0.01; % 传染率
lb = 0.01;
ub = 1;
options = optimoptions('lsqcurvefit', 'Display', 'iter');
[beta_optimal, resnorm] = lsqcurvefit(@(beta, t) forecast(N, I0, C0, R0, E0, S0, beta, omega, p, gamma, f, br, dr, num_days),...beta_initial,...1: num_days,...I_obs',...lb,...ub,...options);% x(1):急性期感染人群I,
% x(2):慢性期感染人群C
% x(3):易感人群S,
% x(4):康复人群R,
% x(5):暴露人群E
dxdt = @(t, x) [omega * x(5) - gamma * x(1) - dr * x(1); % dIdtp * gamma * x(1) - (dr + f) * x(2); % dCdtbr * N - beta_optimal * x(3) * (x(2) + x(1)) / N - dr * x(3); % dSdt(1 - p) * gamma * x(1) - dr * x(4); % dRdtbeta_optimal * x(3) * (x(2) + x(1)) / N - omega * x(5) - dr * x(5); % dEdt];[t, y] = ode45(dxdt, 1: num_days, [I0, C0, S0, R0, E0]);
subplot(1, 2, 1)
plot(t, y(:, 3));
legend('易感人数S')
subplot(1, 2, 2)
hold on
plot(t, y(:, 1));
plot(t, y(:, 2));
plot(t, y(:, 4));
plot(t, y(:, 5));
legend('急性期感染人群I', '慢性期感染人群C', '康复人群R', '暴露人群E');
这段代码同样根据观测数值来拟合最佳beta。因此,下面放上forecast函数。
function I_extracted = forecast(N, I0, C0, R0, E0, S0, beta, omega, p, gamma, f, br, dr, num_days)% x(1):急性期感染人群I,% x(2):慢性期感染人群C% x(3):易感人群S, % x(4):康复人群R,% x(5):暴露人群Edxdt = @(t, x) [omega * x(5) - gamma * x(1) - dr * x(1); % dIdtp * gamma * x(1) - (dr + f) * x(2); % dCdtbr * N - beta * x(3) * (x(2) + x(1)) / N - dr * x(3); % dSdt(1 - p) * gamma * x(1) - dr * x(4); % dRdtbeta * x(3) * (x(2) + x(1)) / N - omega * x(5) - dr * x(5); % dEdt];[~, y] = ode45(dxdt, 1: num_days, [I0, C0, S0, R0, E0]);I_extracted = y(:, 1);
end
效果展示
结果解读
-
易感人群(S) :研究结果显示,易感人群数量呈现出一种持续减少的趋势,具体是从接近 10 万人的规模逐渐下降,最终降低到约 8.4 万人左右。这一变化的原因在于易感人群不断通过暴露(E)这一环节,转化为感染者(I)或者慢性患者(C),从而使得总易感人群的规模不断缩减。从公共卫生的角度来看,这一结果明显地反映了疾病正在社区中持续传播,原本健康的个体逐渐面临着被暴露于疾病风险的严峻形势,这很可能是因为该疾病的传染性较强,或者人群之间的接触率相对较高,导致易感人群难以避免地接触到病原体,进而增加了感染的可能性。
-
暴露人群(E) :暴露人群在观察期间表现出缓慢上升的态势,但总体数量一直处于较低的水平,始终没有出现大规模的累积。这从侧面反映出该疾病的暴露阶段相对较短,个体在暴露之后会迅速转化为感染者(I)。再结合对丙肝传播规律的认识,这也与丙肝潜伏期较短的特性相符合,说明模型在一定程度上能够准确地模拟出该疾病在特定阶段内的传播特点,以及不同状态人群之间的转换关系。
-
感染人群(I) :感染人群呈现出十分显著的增长趋势,经过大约 60 个月(也就是 5 年的时间),感染人群的数量达到了一个高峰,随后其增长的速度逐渐变缓。这一现象可能提示我们在疾病传播的初期,由于易感人群基数较大、传播途径尚未得到有效控制等因素,导致感染人数快速上升。而在达到高峰之后,可能由于部分患者康复、易感人群的自然减少或者防控措施逐渐发挥作用等原因,使得感染人群的增长势头得到了一定程度的遏制。不过,从长期的视角来看,仍然需要关注感染人群的动态变化,以防出现二次增长或者其他复杂的传播情况。
-
慢性患者(C) :慢性患者人数呈现出缓慢增加的趋势,一直持续到 120 个月(即 10 年)时才达到一个相对稳定的数值。从医学角度来看,这表明该疾病中存在一部分急性感染者会逐渐转化为慢性患者,这与丙肝的典型特点相吻合——其具有较高的急性转慢性几率。这一结果也提醒我们在面对此类疾病时,不仅要关注急性感染期的治疗和控制,还要重视对慢性患者的长期管理和治疗,以减少慢性感染所带来的更严重的健康危害和社会负担。
-
恢复人群(R) :恢复人群在整个观察期间表现出显著的增长趋势,到了 120 个月的时候,已经成为所有人群分类中规模最大的一个群体。这主要得益于通过自然免疫机制以及采取的各种治疗措施,使得感染疾病的人群逐步康复,并且能够在一定程度上形成免疫,从而有效地阻断了疾病的进一步传播,减少了传播链的延续。这也反映出在疾病防控过程中,通过合理的医疗干预和公共卫生措施,可以有效地促进患者恢复健康,进而改善整体的疫情状况,这对于制定长期的疾病防控战略具有重要的参考意义。