@@ -31,11 +31,9 @@ kernelspec:
31
31
* [ NBER工作论文第26867号] ( https://www.nber.org/papers/w26867 )
32
32
* [ COVID-19工作论文和代码] ( https://sites.google.com/site/andyatkeson/home?authuser=0 )
33
33
34
- 他的这些笔记主要是介绍了定量建模
34
+ 他的这些笔记主要是介绍了定量建模传染病动态研究。
35
35
36
- 传染病动态研究。
37
-
38
- 疾病传播使用标准SIR(易感者-感染者-移除者)模型进行建模。
36
+ 疾病传播使用标准SIR(易感者-感染者-移出者)模型进行建模。
39
37
40
38
模型动态用常微分方程组表示。
41
39
@@ -67,17 +65,17 @@ from scipy.integrate import odeint
67
65
68
66
## SIR模型
69
67
70
- 在我们将要分析的SIR模型版本中有四个状态。
71
-
72
- 假设人群中的所有个体都处于这四种状态之一。
73
-
74
- 这些状态是:易感者(S)、潜伏者(E)、感染者(I)和移除者(R)。
68
+ 我们要分析的是一个包含四个状态的SIR模型。在这个模型中,每个人都必须处于以下四种状态之一:
75
69
76
- 说明:
70
+ - 易感者(S):尚未感染,可能被感染的人群
71
+ - 潜伏者(E):已感染但尚未具有传染性的人群
72
+ - 感染者(I):已感染且具有传染性的人群
73
+ - 移出者($R$):已经康复或死亡的人群
77
74
78
- * 处于R状态的人已经被感染并且已经康复或死亡。
79
- * 康复的人被假定已获得免疫力。
80
- * 处于潜伏期的群体尚未具有传染性。
75
+ 需要注意的是:
76
+ - 一旦康复,就会获得免疫力,不会再次感染
77
+ - 处于移出状态($R$)的人包括康复者和死亡者
78
+ - 潜伏期的人虽然已感染,但还不能传染给他人
81
79
82
80
### 时间路径
83
81
@@ -98,9 +96,9 @@ from scipy.integrate import odeint
98
96
\begin{aligned}
99
97
\dot s(t) & = - \beta(t) \, s(t) \, i(t)
100
98
\\
101
- \dot e(t) & = \beta(t) \, s(t) \, i(t) - σ e(t)
99
+ \dot e(t) & = \beta(t) \, s(t) \, i(t) - \sigma e(t)
102
100
\\
103
- \dot i(t) & = σ e(t) - γ i(t)
101
+ \dot i(t) & = \sigma e(t) - \gamma i(t)
104
102
\end{aligned}
105
103
```
106
104
@@ -119,24 +117,22 @@ from scipy.integrate import odeint
119
117
120
118
(即所有已感染或曾经感染的人)。
121
119
122
- 系统{eq}` sir_system ` 可以用向量形式表示为
120
+ 对于适当定义的$F$(见下面的代码), 系统{eq}` sir_system ` 可以用向量形式表示为
123
121
124
122
``` {math}
125
123
:label: dfcv
126
124
127
125
\dot x = F(x, t), \qquad x := (s, e, i)
128
126
```
129
127
130
- 对于适当定义的$F$(见下面的代码)。
131
-
132
128
### 参数
133
129
134
- $\sigma$和$\gamma$都被视为固定的、由生物学决定的参数 。
130
+ 参数 $\sigma$和$\gamma$由病毒的生物学特性决定,因此被视为固定值 。
135
131
136
- 按照Atkeson的说明,我们设定
132
+ 根据Atkeson的笔记,我们采用以下参数值:
137
133
138
- * $\sigma = 1/5.2$,反映平均潜伏期为5 .2天。
139
- * $\gamma = 1/18$,对应平均病程18天。
134
+ * $\sigma = 1/5.2$ - 这意味着平均潜伏期为5 .2天
135
+ * $\gamma = 1/18$ - 这表示患者平均需要18天才能康复或死亡
140
136
141
137
传播率被构造为
142
138
@@ -173,11 +169,11 @@ def F(x, t, R0=1.6):
173
169
"""
174
170
s, e, i = x
175
171
176
- # 易感人群的新暴露
172
+ # 计算新增感染人数
177
173
β = R0(t) * γ if callable(R0) else R0 * γ
178
174
ne = β * s * i
179
175
180
- # 时间导数
176
+ # 导数
181
177
ds = - ne
182
178
de = ne - σ * e
183
179
di = σ * e - γ * i
@@ -190,7 +186,7 @@ def F(x, t, R0=1.6):
190
186
初始条件设置为
191
187
192
188
``` {code-cell} ipython3
193
- # initial conditions of s, e, i
189
+ # 初始条件
194
190
i_0 = 1e-7
195
191
e_0 = 4 * i_0
196
192
s_0 = 1 - i_0 - e_0
@@ -207,9 +203,7 @@ x_0 = s_0, e_0, i_0
207
203
``` {code-cell} ipython3
208
204
def solve_path(R0, t_vec, x_init=x_0):
209
205
"""
210
- 通过数值积分求解i(t)和c(t),
211
- 给定R0的时间路径。
212
-
206
+ 给定R0的时间路径,计算感染人数i(t)和累计病例c(t)的演变轨迹。
213
207
"""
214
208
G = lambda x, t: F(x, t, R0)
215
209
s_path, e_path, i_path = odeint(G, x_init, t_vec).transpose()
@@ -339,16 +333,18 @@ plot_paths(i_paths, labels)
339
333
plot_paths(c_paths, labels)
340
334
```
341
335
342
- ## 解除封锁
336
+ ## 解除封锁措施的影响分析
343
337
344
- 以下复现了Andrew Atkeson关于解除封锁时机的 [ 额外研究结果 ] ( https://drive.google.com/file/d/1uS7n-7zq5gfSgrL3S0HByExmpq4Bn3oh/view ) 。
338
+ 接下来我们将基于Andrew Atkeson的 [ 研究 ] ( https://drive.google.com/file/d/1uS7n-7zq5gfSgrL3S0HByExmpq4Bn3oh/view ) ,探讨不同时机解除封锁措施对疫情发展的影响 。
345
339
346
- 考虑以下两种缓解情景 :
340
+ 我们对比两种解封方案 :
347
341
348
- 1 . 前30天 $R_t = 0.5$,之后17个月 $R_t = 2$。这相当于30天后解除封锁。
349
- 2 . 前120天 $R_t = 0.5$,之后14个月 $R_t = 2$。这相当于4个月后解除封锁。
342
+ 1 . 短期封锁方案:实施30天严格封锁( $R_t = 0.5$),之后17个月放开管控( $R_t = 2$)
343
+ 2 . 长期封锁方案:实施120天严格封锁( $R_t = 0.5$),之后14个月放开管控( $R_t = 2$)
350
344
351
- 这里考虑的参数设置模型的初始状态为25,000个活跃感染者,以及75,000个已经接触病毒因此即将具有传染性的个体。
345
+ 模型的初始条件设定为:
346
+ - 25,000名活跃感染者
347
+ - 75,000名处于潜伏期的感染者(已感染但尚未具有传染性)
352
348
353
349
``` {code-cell} ipython3
354
350
# 初始条件
@@ -402,4 +398,4 @@ paths = [path * ν * γ * pop_size for path in i_paths]
402
398
plot_paths(paths, labels)
403
399
```
404
400
405
- 如果能找到疫苗,将曲线峰值推迟到更远的未来可能会减少累计死亡人数 。
401
+ 如果我们能够将感染高峰推迟到疫苗研发出来之前,就有可能大幅降低最终的死亡人数 。
0 commit comments