@@ -7,7 +7,20 @@ kernelspec:
77 display_name : Python 3
88 language : python
99 name : python3
10+ translation :
11+ title : 新冠病毒建模
12+ headings :
13+ Overview : 概述
14+ The SIR Model : SIR模型
15+ The SIR Model::Time Path : 时间路径
16+ The SIR Model::Parameters : 参数
17+ Implementation : 实现
18+ Experiments : 实验
19+ ' Experiments::Experiment 1: Constant R0 Case ' : 实验1:固定R0的情况
20+ ' Experiments::Experiment 2: Changing Mitigation ' : 实验2:改变缓解措施
21+ Ending Lockdown : 解除封锁
1022---
23+
1124``` {raw}
1225<div id="qe-notebook-header" align="right" style="text-align:right;">
1326 <a href="https://quantecon.org/" title="quantecon.org">
@@ -16,9 +29,9 @@ kernelspec:
1629</div>
1730```
1831
19- # 新冠病毒建模
32+ # {index} ` 新冠病毒建模 <single: Modeling COVID 19> `
2033
21- ``` {contents}
34+ ``` {contents} Contents
2235:depth: 2
2336```
2437
@@ -55,7 +68,7 @@ import numpy as np
5568from numpy import exp
5669```
5770
58- 最后,我们使用SciPy的数值例程odeint来求解微分方程 。
71+ 我们还将使用SciPy的数值例程odeint来求解微分方程 。
5972
6073``` {code-cell} ipython3
6174from scipy.integrate import odeint
@@ -65,17 +78,17 @@ from scipy.integrate import odeint
6578
6679## SIR模型
6780
68- 我们要分析的是一个包含四个状态的SIR模型。在这个模型中,每个人都必须处于以下四种状态之一:
81+ 我们要分析的这个版本的SIR模型包含四个状态。
82+
83+ 假设人口中的每个人都必须处于这四种状态之一。
84+
85+ 这些状态是:易感者(S)、暴露者(E)、感染者(I)和移出者(R)。
6986
70- - 易感者(S):尚未感染,可能被感染的人群
71- - 潜伏者(E):已感染但尚未具有传染性的人群
72- - 感染者(I):已感染且具有传染性的人群
73- - 移出者($R$):已经康复或死亡的人群
87+ 说明:
7488
75- 需要注意的是:
76- - 一旦康复,就会获得免疫力,不会再次感染
77- - 处于移出状态($R$)的人包括康复者和死亡者
78- - 潜伏期的人虽然已感染,但还不能传染给他人
89+ * 处于R状态的人已经被感染,并且已经康复或死亡。
90+ * 假设康复者已获得免疫力。
91+ * 暴露组中的人尚不具有传染性。
7992
8093### 时间路径
8194
@@ -96,47 +109,49 @@ from scipy.integrate import odeint
96109\begin{aligned}
97110 \dot s(t) & = - \beta(t) \, s(t) \, i(t)
98111 \\
99- \dot e(t) & = \beta(t) \, s(t) \, i(t) - \sigma e(t)
112+ \dot e(t) & = \beta(t) \, s(t) \, i(t) - σ e(t)
100113 \\
101- \dot i(t) & = \sigma e(t) - \gamma i(t)
114+ \dot i(t) & = σ e(t) - γ i(t)
102115\end{aligned}
103116```
104117
105118在这些方程中,
106119
107- * $\beta(t)$ 被称为* 传播率* (个体与他人接触并使其暴露于病毒的速率)。
108- * $\sigma$ 被称为* 感染率* (暴露者转变为感染者的速率)
109- * $\gamma$ 被称为* 恢复率* (感染者康复或死亡的速率)。
120+ * $\beta(t)$ 被称为** 传播率* * (个体与他人接触并使其暴露于病毒的速率)。
121+ * $\sigma$ 被称为** 感染率* * (暴露者转变为感染者的速率)
122+ * $\gamma$ 被称为** 恢复率* * (感染者康复或死亡的速率)。
110123* 点符号 $\dot y$ 表示时间导数 $dy/dt$。
111124
112125我们不需要单独建模处于 $R$ 状态的人口比例 $r$,因为这些状态构成一个分区。
113126
114127具体来说,"已移除"的人口比例为 $r = 1 - s - e - i$。
115128
116- 我们还将追踪累计病例数 $c = i + r$
129+ 我们还将追踪 $c = i + r$,即累计病例数
117130
118131(即所有已感染或曾经感染的人)。
119132
120- 对于适当定义的$F$(见下面的代码), 系统{eq}` sir_system ` 可以用向量形式表示为
133+ 系统{eq}` sir_system ` 可以用向量形式表示为
121134
122135``` {math}
123136:label: dfcv
124137
125138\dot x = F(x, t), \qquad x := (s, e, i)
126139```
127140
141+ 其中$F$的具体定义参见下面的代码。
142+
128143### 参数
129144
130145参数$\sigma$和$\gamma$由病毒的生物学特性决定,因此被视为固定值。
131146
132147根据Atkeson的笔记,我们采用以下参数值:
133148
134- * $\sigma = 1/5.2$ - 这意味着平均潜伏期为5.2天
135- * $\gamma = 1/18$ - 这表示患者平均需要18天才能康复或死亡
149+ * $\sigma = 1/5.2$ - 这意味着平均潜伏期为5.2天。
150+ * $\gamma = 1/18$ - 这表示患者平均需要18天才能康复或死亡。
136151
137152传播率被构造为
138153
139- * $\beta(t) := R(t) \gamma$,其中$R(t)$是时间$t$时的* 有效再生数* 。
154+ * $\beta(t) := R(t) \gamma$,其中$R(t)$是时间$t$时的** 有效再生数* * 。
140155
141156(这个符号表示有点令人困惑,因为$R(t)$与表示已移除状态的符号$R$不同。)
142157
@@ -203,7 +218,8 @@ x_0 = s_0, e_0, i_0
203218``` {code-cell} ipython3
204219def solve_path(R0, t_vec, x_init=x_0):
205220 """
206- 给定R0的时间路径,计算感染人数i(t)和累计病例c(t)的演变轨迹。
221+ 给定R0的时间路径,通过数值积分求解i(t)和c(t)。
222+
207223 """
208224 G = lambda x, t: F(x, t, R0)
209225 s_path, e_path, i_path = odeint(G, x_init, t_vec).transpose()
@@ -333,18 +349,17 @@ plot_paths(i_paths, labels)
333349plot_paths(c_paths, labels)
334350```
335351
336- ## 解除封锁措施的影响分析
352+ ## 解除封锁
337353
338- 接下来我们将基于Andrew Atkeson的 [ 研究 ] ( https://drive.google.com/file/d/1uS7n-7zq5gfSgrL3S0HByExmpq4Bn3oh/view ) ,探讨不同时机解除封锁措施对疫情发展的影响 。
354+ 以下内容复现了Andrew Atkeson关于解除封锁时机的 [ 附加研究结果 ] ( https://drive.google.com/file/d/1uS7n-7zq5gfSgrL3S0HByExmpq4Bn3oh/view ) 。
339355
340356我们对比两种解封方案:
341357
342- 1 . 短期封锁方案:实施30天严格封锁( $R_t = 0.5$),之后17个月放开管控( $R_t = 2$)
343- 2 . 长期封锁方案:实施120天严格封锁( $R_t = 0.5$),之后14个月放开管控( $R_t = 2$)
358+ 1 . $R_t = 0.5$持续30天,之后17个月 $R_t = 2$。这相当于30天后解除封锁。
359+ 2 . $R_t = 0.5$持续120天,之后14个月 $R_t = 2$。这相当于4个月后解除封锁。
344360
345- 模型的初始条件设定为:
346- - 25,000名活跃感染者
347- - 75,000名处于潜伏期的感染者(已感染但尚未具有传染性)
361+ 这里所考虑的参数设定模型初始时有25,000名活跃感染者,
362+ 以及75,000名已经暴露于病毒、即将具有传染性的人群。
348363
349364``` {code-cell} ipython3
350365# 初始条件
@@ -398,4 +413,4 @@ paths = [path * ν * γ * pop_size for path in i_paths]
398413plot_paths(paths, labels)
399414```
400415
401- 如果我们能够将感染高峰推迟到疫苗研发出来之前,就有可能大幅降低最终的死亡人数 。
416+ 如果我们能够将感染高峰推迟到疫苗研发出来之前,就有可能降低累计死亡人数 。
0 commit comments