├── .ipynb_checkpoints
└── 2019-nCoV感染动力学分析及防护的必要性-checkpoint.ipynb
├── 2019-nCoV感染动力学分析及防护的必要性.ipynb
├── README.md
└── markdown
├── 2019-nCoV感染动力学分析及防护的必要性.md
├── 2019-nCoV感染动力学分析及防护的必要性(更新后).pdf
├── output_12_0.png
├── output_15_0.png
├── output_19_0.png
├── output_23_0.png
├── output_26_0.png
├── output_32_0.png
├── output_35_0.png
├── output_38_0.png
└── output_39_0.png
/README.md:
--------------------------------------------------------------------------------
1 | # Analysis-of-2019-nCoV-propagation-based-on-Model
2 | 通过建模分析了本次新型冠状病毒的传播机理,使用python编程跑了几组对比试验分析各种预防策略对病毒传播的影响。
3 |
4 | 【Feb.15,2020】加入了死亡模型
5 |
--------------------------------------------------------------------------------
/markdown/2019-nCoV感染动力学分析及防护的必要性.md:
--------------------------------------------------------------------------------
1 |
2 | # 2019-nCoV感染动力学分析及防护的必要性
3 |
4 | Author:Hehao
5 |
6 | data:2020-02-05
7 |
8 | tools:python
9 |
10 | ## 1.前言
11 |
12 | 2019岁末,当大家还在热火朝八卦故宫开大G新闻时,突如其来的新型冠状病毒2019-nCoV抢走了热搜,改变了这个春节,也改变了全中国人的生活节奏。为了自己安全,也为了不给社会添乱,这些天一直很自觉的居家隔离,关注着疫情发展,通过校友会渠道捐了善款,闲时在微信群做科普、辟谣言,尽自己所能,有一份力尽一份力吧。
13 |
14 | 昨天在B站上看到一个视频讲的运用流行病学模型解释此次新冠病毒传播机理,很有意思,极大地激发了我对研究它的兴趣。隔离闲着也是闲着,于是乎我写点代码跑了几组对照试验,记录下了这次研究过程,权当是学习。
15 |
16 | ## 2.病毒传播的动力学分析
17 |
18 | 通过对传染病传播进行数学建模,研究传染病的传播速度、空间范围、传播途径、动力学机理等问题,以指导对传染病的有效地预防和控制。查阅维基百科,常见的传染病模型按照传染病类型分为 SI、SIR、SIRS、SEIR 模型等。按照传播机理又分为基于常微分方程、偏微分方程、网络动力学的不同类型。
19 |
20 | ### 2.1传染模型的基本假设
21 |
22 | 通常,把病毒传染空间范围内的人群分为如下4类:
23 |
24 | * S类(Susceptible),易感者,指的是未被传染的健康者,但缺乏免疫力,与感染者接触后容易被感染;
25 |
26 | * E类(Exposed),暴露者,指接触过感染者,但暂时无能力传染他人,适用于潜伏期长的病毒;
27 |
28 | * I类(Infectious),感染者,指已经确诊的感染人群,可以传染S类人群将其变为E类或者I类群体;
29 |
30 | * R类(Recovered),康复者,指因隔离或痊愈后有免疫力的人群。
31 |
32 |
33 |
34 | ### 2.2 SEIR模型对本次病毒传染分析
35 |
36 | 根据此次新型冠状病毒传播感染的特点,选择SEIR模型进行传播感染分析。按照SEIR模型,将人群分为易感者S,暴露者E(以下称为潜伏者),感染者I,康复者R,四类人群的人数分别为S、E、I、R。
37 |
38 | 易感者S一开始先成为潜伏者E经历一段潜伏期,一段时间之后才会成为感染者I,感染者I被发现后经治疗或依靠自身免疫成为康复者R。
39 |
40 | 假设一个地区总人数为N,I个感染者如不隔离,每人每天会碰到r个人,以概率$\beta$传染这r个人;潜伏者E会有概率$\alpha$成为感染者;同时感染者因治疗或免疫有$\gamma$的概率成为康复者R,可以建立如下方程组:
41 | $$
42 | \left\{
43 | \begin{array}{c}
44 | \frac{dS}{dt}=-\frac{r \beta I S}{N} \\
45 | \frac{dE}{dt}=\frac{r \beta I S}{N}-aE \\
46 | \frac{dI}{dt}=aE-\gamma I \\
47 | \frac{dR}{dt}=\gamma I \\
48 | N = S+E+I+R
49 | \end{array}
50 | \right.
51 | $$
52 | 上述方程组没有解析解,但是可以利用计算机软件得到其数值解。我们假设一个地区总人数N=10000,最开始有一个感染者,没有潜伏者,没有康复者,即:
53 | $I_0=1,E_0=0,R_0=0,S_0=9999$
54 |
55 |
56 | ```python
57 | import numpy as np
58 | import matplotlib.pyplot as plt
59 | from pylab import mpl
60 | mpl.rcParams['font.sans-serif']=['FangSong']
61 | mpl.rcParams['axes.unicode_minus']=False
62 | ```
63 |
64 |
65 | ```python
66 | def SEIR(seir,para,steps):
67 | S,E,I,R = seir
68 | r,beta,alpha,gamma,N = para
69 | dS = -(r*beta*I*S)/N
70 | dE = (r*beta*I*S)/N - alpha*E
71 | dI = alpha*E - gamma*I
72 | dR = gamma*I
73 | return [S+dS*steps, E+dE*steps, I+dI*steps, R+dR*steps]
74 | ```
75 |
76 |
77 | ```python
78 | def SEIR_II(seir,para,steps):
79 | S,E,I,R = seir
80 | r,r2,beta,beta2,a,gamma,N = para
81 | dS = -(r*beta*I*S)/N - (r2*beta2*E*S)/N
82 | dE = (r*beta*I*S)/N - a*E + (r2*beta2*E*S)/N
83 | dI = a*E - gamma*I
84 | dR = gamma*I
85 | return [S+dS*steps, E+dE*steps, I+dI*steps, R+dR*steps]
86 | ```
87 |
88 |
89 | ```python
90 | """
91 | func:模型
92 | seri:模型的SERI群体
93 | para:模型参数
94 | intervene_N:第N天进行干预戒严
95 | """
96 | def calculate(func,seri,para,intervene_N):
97 | steps = 1
98 | t = np.arange(0,200,steps)
99 | res=[]
100 | for itm in t:
101 | if intervene_N!=0:
102 | if itm>intervene_N:
103 | para[0]=4
104 | para[1]=4
105 | seri=func(seri,para,steps)
106 | res.append(seri)
107 | return np.array(res)
108 | ```
109 |
110 |
111 | ```python
112 | def plot_1graph(np_res):
113 | plt.figure()
114 | plt.plot(np_res[:,0])
115 | plt.plot(np_res[:,1])
116 | plt.plot(np_res[:,2])
117 | plt.plot(np_res[:,3])
118 | plt.legend(['易感人群','潜伏人群','感染者','康复者'])
119 | plt.xlabel("日期/天")
120 | plt.ylabel("人数/人")
121 | plt.show()
122 | ```
123 |
124 | ### 2.2.1 参照试验
125 |
126 |
127 | ```python
128 | """
129 | 参数修改区
130 | """
131 | steps = 1
132 | seri0 = [9999, #S
133 | 0, #E
134 | 1, #I
135 | 0] #R
136 | seri = seri0
137 | para = [20, # I每天接触的人 r
138 | 0.03, # S和E被感染的概率 beta
139 | 0.1, # 潜伏者变为感染者的概率 alpha
140 | 0.1, # 康复/治愈概率 gamma
141 | 10000] # 总人数
142 | ```
143 |
144 |
145 | ```python
146 | res = calculate(SEIR,seri,para,0)
147 | plot_1graph(res)
148 | ```
149 |
150 |
151 | 
152 |
153 |
154 | 上述参照试验,感染者若不加隔离每天出去接触20个人,S和E被感染的概率$\beta$为0.03,潜伏者变为感染者的概率$\alpha$为0.1,可以看到随时间推移,潜伏者(也即疑似病例)会先达到顶峰,之后随着潜伏者发病成为感染者,感染者后达到增长拐点,随着治疗和自身免疫,潜伏者和感染者人数降低,康复者人数增加。
155 |
156 | ### 2.2.2对照试验一(戴口罩)
157 |
158 | 我们知道,戴口罩可以有效降低被感染的概率,假设戴口罩可以降低1/2感染率,将参数$\beta$由0.03改为0.015运行程序
159 |
160 |
161 | ```python
162 | """
163 | 参数修改区
164 | """
165 | steps = 1
166 | seri0 = [9999, #S
167 | 0, #E
168 | 1, #I
169 | 0] #R
170 | seri = seri0
171 | para = [20, # I每天接触的人 r
172 | 0.015, # S和E被感染的概率 beta
173 | 0.1, # 潜伏者变为感染者的概率 alpha
174 | 0.1, # 康复/治愈概率 gamma
175 | 10000] # 总人数
176 |
177 | res = calculate(SEIR,seri,para,0)
178 | plot_1graph(res)
179 | ```
180 |
181 |
182 | 
183 |
184 |
185 | **结论**
186 |
187 | 从上述曲线可以看出,相同情况下出门戴口罩,潜伏者和感染者增量及增速被大大抑制。敲黑板!!!出门戴口罩为自己,为大家,为国家。
188 |
189 | ### 2.2.3对照试验二(居家隔离)
190 |
191 | 如果坚持不出门,实施居家隔离,把参数r由20设置为3,再次运行代码进行仿真
192 |
193 |
194 | ```python
195 | """
196 | 参数修改区
197 | """
198 | steps = 1
199 | seri0 = [9999, #S
200 | 0, #E
201 | 1, #I
202 | 0] #R
203 | seri = seri0
204 | para = [3, # I每天接触的人 r
205 | 0.03, # S和E被感染的概率 beta
206 | 0.1, # 潜伏者变为感染者的概率 alpha
207 | 0.1, # 康复/治愈概率 gamma
208 | 10000] # 总人数
209 | ```
210 |
211 |
212 | ```python
213 | res = calculate(SEIR,seri,para,0)
214 | plot_1graph(res)
215 | ```
216 |
217 |
218 | 
219 |
220 |
221 | **结论**
222 |
223 | 真是Amazing啊!!!感染者和潜伏者几乎没了。敲黑板!!!居家隔离不出门是打赢疫情防控阻击战决胜因素,听钟院士的话,告诉你的家人朋友,不出门就是为国家做贡献。
224 |
225 | ### 2.3 改进后的SEIR模型
226 |
227 | 事实上,我们知道本次新型冠状病毒在潜伏期具有传染性,因此需要将潜伏者的传染性也要考虑进去。假设潜伏者以概率$\beta_2$将易感者S感染成新的潜伏者,潜伏者每天接触的人数为$r_2$,对模型进行改进,建立传染模型方程组:
228 | $$
229 | \left\{
230 | \begin{array}{c}
231 | \frac{dS}{dt}=-\frac{r \beta I S}{N}-\frac{r_2 \beta_2 E S}{N} \\
232 | \frac{dE}{dt}=\frac{r \beta I S}{N}-aE+\frac{r_2 \beta_2 E S}{N} \\
233 | \frac{dI}{dt}=aE-\gamma I \\
234 | \frac{dR}{dt}=\gamma I \\
235 | N = S+E+I+R
236 | \end{array}
237 | \right.
238 | $$
239 | ### 2.3.1参照试验
240 |
241 | 对加入潜伏者传染这一因素后,假设潜伏者每天接触人数$r_2=20$,潜伏者传染易感者的概率$\beta_2=0.03$,其他条件保持不变,运行程序
242 |
243 |
244 | ```python
245 | steps = 1
246 | seri0 = [9999, #S
247 | 0, #E
248 | 1, #I
249 | 0] #R
250 |
251 | seri = seri0
252 | paraII = [20, # 感染者每天接触的人 r
253 | 20, # 潜伏者每天接触的人 r2
254 | 0.03, # 感染者传染的概率 beta
255 | 0.03, # 潜伏者传染的概率 beta2
256 | 0.1, # 潜伏者变为感染者的概率 a
257 | 0.1, # 康复/治愈概率 gamma
258 | 10000]
259 |
260 | res = calculate(SEIR_II,seri,paraII,0)
261 | plot_1graph(res)
262 | ```
263 |
264 |
265 | 
266 |
267 |
268 | **结论**
269 |
270 | 对比2.2.1的参照试验,发现潜伏者一旦具有传染性之后,潜伏(疑似)和感染者(确诊)会以很快的速度提前爆发,忒可怕了-_-///
271 |
272 | ### 2.3.2 对照试验(封城停运戒严)
273 |
274 | 2.3.1的参照试验我们可以看出在第12-25天左右潜伏者(疑似)和感染者(确诊)开始爆发,如果我们根据模型提前知道这一事实,可以实施封城封村,交通停运,就可以提前遏制潜伏者和感染者的数量,假设我们在第10天开始戒严防控,即潜伏者和感染者活动范围小了,假设接触人由20设为4,修改程序仿真:
275 |
276 |
277 | ```python
278 | res = calculate(SEIR_II,seri,paraII,10)
279 | plot_1graph(res)
280 | ```
281 |
282 |
283 | 
284 |
285 |
286 | **结论**
287 |
288 | 对比2.3.1的参照试验,可以看到潜伏者和感染者爆发的时间由第12-25天推迟到第120天,这为医务人员和药企赢得了宝贵的时间,而且感染人数和潜伏人数也降低了一半,大大降低了医疗卫生资源的消耗使用。村长挖断路设路障不让你出不让人进,那是保护全村人,为村长点赞!
289 |
290 | ### 2.4 扩展SEIR引入死亡者D的分析(Feb.15,2020)
291 |
292 | 前段时间Preprint Server for Biology网站[bioRxiv](https://www.biorxiv.org/)上传了一篇paper[Beware of asymptomatic transmission: Study on 2019-nCoV prevention and control measures based on extended SEIR model](https://www.biorxiv.org/content/10.1101/2020.01.28.923169v1),受此启发,对2.3节模型进行扩展性探索,在SEIR模型基础之上引入死亡者D进行建模分析,称之为SEIRD模型。
293 |
294 | SEIRD模型中,我们假设感染人群I有两种情况,一类是未治疗未隔离以$\psi$的概率死亡成为D群体,显然另一类则是以$(1-\psi)$的概率康复成为R群体,因此对2.3节引入死亡者D的传播动力学模型为:
295 | $$
296 | \left\{
297 | \begin{array}{c}
298 | \frac{dS}{dt}=-\frac{r \beta I S}{N}-\frac{r_2 \beta_2 E S}{N} \\
299 | \frac{dE}{dt}=\frac{r \beta I S}{N}-aE+\frac{r_2 \beta_2 E S}{N} \\
300 | \frac{dI}{dt}=aE-\gamma I \\
301 | \frac{dR}{dt}=(1-\psi) \gamma I \\
302 | \frac{dD}{dt}=\psi \gamma I\\
303 | N = S+E+I+R+D
304 | \end{array}
305 | \right.
306 | $$
307 |
308 | ```python
309 | def SEIRD(seird,para,steps):
310 | S,E,I,R,D= seird
311 | r,r2,beta,beta2,a,gamma,psi,N = para
312 | dS = -(r*beta*I*S)/N - (r2*beta2*E*S)/N
313 | dE = (r*beta*I*S)/N - a*E + (r2*beta2*E*S)/N
314 | dI = a*E - gamma*I
315 | dR = (1-psi)*gamma*I
316 | dD = psi*gamma*I
317 | return [S+dS*steps, E+dE*steps, I+dI*steps, R+dR*steps, D+dD*steps]
318 | ```
319 |
320 |
321 | ```python
322 | def plot_2graph(np_res):
323 | plt.figure()
324 | plt.plot(np_res[:,0])
325 | plt.plot(np_res[:,1])
326 | plt.plot(np_res[:,2])
327 | plt.plot(np_res[:,3])
328 | plt.plot(np_res[:,4])
329 | plt.legend(['易感人群','潜伏人群','感染者','康复者','死亡者'])
330 | plt.xlabel("日期/天")
331 | plt.ylabel("人数/人")
332 | plt.show()
333 | ```
334 |
335 | ### 2.4.1 参照试验
336 |
337 | 假设被感染群体I未接受治疗的死亡率$f_1=0.1$,接受治疗后的死亡率$f_1=0.0201$为[引自中国医疗网,全国死亡率2.01%](http://med.china.com.cn/content/pid/159483/tid/1026),其他条件与2.3.1节保持一致,运行代码
338 |
339 |
340 | ```python
341 | steps = 1
342 | serid0 = [9999, #S
343 | 0, #E
344 | 1, #I
345 | 0, #R
346 | 0] #D
347 |
348 | serid = serid0
349 | paraIII = [20, # 感染者每天接触的人 r
350 | 20, # 潜伏者每天接触的人 r2
351 | 0.03, # 感染者传染的概率 beta
352 | 0.03, # 潜伏者传染的概率 beta2
353 | 0.1, # 潜伏者变为感染者的概率 a
354 | 0.1, # 康复/治愈概率 gamma
355 | 0.1, # 感染者的死亡率 psi
356 | 10000]
357 | """
358 | func:模型
359 | seri:模型的SERI群体
360 | para:模型参数
361 | intervene_N:第N天进行干预戒严
362 | receive_Treat_N
363 | """
364 | def calculateII(func,serid,para,intervene_N,receive_Treat_N):
365 | steps = 1
366 | t = np.arange(0,200,steps)
367 | res=[]
368 | for itm in t:
369 | if intervene_N!=0:
370 | if itm>intervene_N:
371 | para[0]=4 #封城后接触人人数降低
372 | para[1]=4
373 | if receive_Treat_N!=0:
374 | if itm>receive_Treat_N:
375 | para[0]=1 #隔离收治后接触人数继续降低
376 | para[1]=1
377 | para[6]=0.0201 #隔离收治治疗后死亡率降低
378 | serid=func(serid,para,steps)
379 | res.append(serid)
380 | return np.array(res)
381 |
382 | res = calculateII(SEIRD,serid,paraIII,0,0)
383 | plot_2graph(res)
384 | print("最终的死亡人数为{0}:".format(res[199,4]))
385 | ```
386 |
387 |
388 | 
389 |
390 |
391 | 最终的死亡人数为999.9995058341118:
392 |
393 |
394 | 【结论】:打印第199天的死亡人数可以看到,如果不加隔离和不加治疗,10000人最终会死亡1000人,这个结果是非常令人震惊的。
395 |
396 | ### 2.4.2 对照试验一(封城措施)
397 |
398 | 本组对照试验同2.3.2节保持一致,但未经治疗,再来分析死亡情况
399 |
400 |
401 | ```python
402 | steps = 1
403 | serid0 = [9999, #S
404 | 0, #E
405 | 1, #I
406 | 0, #R
407 | 0] #D
408 |
409 | serid = serid0
410 | paraIII = [20, # 感染者每天接触的人 r
411 | 20, # 潜伏者每天接触的人 r2
412 | 0.03, # 感染者传染的概率 beta
413 | 0.03, # 潜伏者传染的概率 beta2
414 | 0.1, # 潜伏者变为感染者的概率 a
415 | 0.1, # 康复/治愈概率 gamma
416 | 0.1, # 感染者的死亡率 psi
417 | 10000]
418 |
419 | res = calculateII(SEIRD,serid,paraIII,10,0)
420 | plot_2graph(res)
421 | print("最终的死亡人数为{0}:".format(res[199,4]))
422 | ```
423 |
424 |
425 | 
426 |
427 |
428 | 最终的死亡人数为884.1414755495692:
429 |
430 |
431 | 【结论】大体结论同2.3.2节一致,但同2.4.1节参照试验对比后发现,虽未经治疗,但死亡人数得到了一定控制
432 |
433 | ### 2.4.3对照试验二(封城隔离+收治治疗)
434 |
435 | 在2.4.2节基础上,即第10天封城,第40天、第20天分别对所有感染者全部感染者收治进行隔离治疗,做几组对比试验
436 |
437 |
438 | ```python
439 | steps = 1
440 | serid0 = [9999, #S
441 | 0, #E
442 | 1, #I
443 | 0, #R
444 | 0] #D
445 |
446 | serid = serid0
447 | paraIII = [20, # 感染者每天接触的人 r
448 | 20, # 潜伏者每天接触的人 r2
449 | 0.03, # 感染者传染的概率 beta
450 | 0.03, # 潜伏者传染的概率 beta2
451 | 0.1, # 潜伏者变为感染者的概率 a
452 | 0.1, # 康复/治愈概率 gamma
453 | 0.1, # 感染者的死亡率 psi
454 | 10000]
455 |
456 | res = calculateII(SEIRD,serid,paraIII,10,40)
457 | plot_2graph(res)
458 | print("第40天收治隔离,最终的死亡人数为{0}:".format(res[199,4]))
459 | ```
460 |
461 |
462 | 
463 |
464 |
465 | 第40天收治隔离,最终的死亡人数为105.37464197718452:
466 |
467 |
468 |
469 | ```python
470 | steps = 1
471 | serid0 = [9999, #S
472 | 0, #E
473 | 1, #I
474 | 0, #R
475 | 0] #D
476 |
477 | serid = serid0
478 | paraIII = [20, # 感染者每天接触的人 r
479 | 20, # 潜伏者每天接触的人 r2
480 | 0.03, # 感染者传染的概率 beta
481 | 0.03, # 潜伏者传染的概率 beta2
482 | 0.1, # 潜伏者变为感染者的概率 a
483 | 0.1, # 康复/治愈概率 gamma
484 | 0.1, # 感染者的死亡率 psi
485 | 10000]
486 | res = calculateII(SEIRD,serid,paraIII,10,20)
487 | plot_2graph(res)
488 | print("第20天收治隔离,最终的死亡人数为{0}:".format(res[199,4]))
489 |
490 | ```
491 |
492 |
493 | 
494 |
495 |
496 | 第20天收治隔离,最终的死亡人数为20.532262158672083:
497 |
498 |
499 | 【结论】本节对照2.4.2节试验发现,**收治隔离治疗**可以大大降低死亡人数;本节两组对比试验也可以发现,**尽早的收治隔离治疗**能够进一步控制死亡人数降低。对此我们向一线的医疗人员致敬,向争分夺秒赶工期修建临时医院的工程师工人们致敬!
500 |
501 | ## 3.结论
502 |
503 | 在SEIR基本模型的假设下增加了两组对比试验,戴口罩和居家隔离,试验证明戴口罩可以有效降低疫情传播和感染人群的数量增长,居家隔离就更厉害了,只要跟家窝着不出门,病毒总会有消失的那一天。在SEIR模型之上加入潜入者传染这一特点,与SEIR基础模型作对比试验,实验证明由于潜伏者具有传染性,病毒的传播和爆发会提前,感染人数也更多,在此之上增加一组对照试验,即封城封村限制潜伏人群和感染人群的活动范围,实验结果表明村长这一举措真是very well啊,不仅推迟了爆发期为药企和医务人员争取时间进行药物研发和治疗研究。
504 |
505 | [Feb.15,2020 added]2.4节中对模型引入了死亡者D进行不同情景下的对比实验。分析结果表明,如不加治疗不加隔离,最终死亡者人数会以未经治疗的死亡率收敛。如果提前进行封城措施缩小人员活动范围,死亡人数得到一定控制,如果再加以隔离治疗,死亡人数会大大降低,越早收治,死亡人数会越少。
506 |
507 | **最后声明:** 本着科普和趣味,本文只是从流行病学传播机理理论上对本次新型冠状病毒进行仿真分析,对本次新型冠状病毒病毒不具有最终指导意义,事实上每一种传染病都有它独有的特性和模型参数,这需要专家大量工作和调研结果来支撑。
508 |
509 | ## 4.参考资料
510 |
511 | [1] https://baike.baidu.com/item/%E4%BC%A0%E6%9F%93%E7%97%85%E6%A8%A1%E5%9E%8B/5130035?fr=aladdin#3
512 |
513 | [2] https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology
514 |
515 |
--------------------------------------------------------------------------------
/markdown/2019-nCoV感染动力学分析及防护的必要性(更新后).pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Harrison-Ho/Analysis-of-2019-nCoV-propagation-based-on-Model/4a0693ab7a149590edd1bb1638b37aafe87163ff/markdown/2019-nCoV感染动力学分析及防护的必要性(更新后).pdf
--------------------------------------------------------------------------------
/markdown/output_12_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Harrison-Ho/Analysis-of-2019-nCoV-propagation-based-on-Model/4a0693ab7a149590edd1bb1638b37aafe87163ff/markdown/output_12_0.png
--------------------------------------------------------------------------------
/markdown/output_15_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Harrison-Ho/Analysis-of-2019-nCoV-propagation-based-on-Model/4a0693ab7a149590edd1bb1638b37aafe87163ff/markdown/output_15_0.png
--------------------------------------------------------------------------------
/markdown/output_19_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Harrison-Ho/Analysis-of-2019-nCoV-propagation-based-on-Model/4a0693ab7a149590edd1bb1638b37aafe87163ff/markdown/output_19_0.png
--------------------------------------------------------------------------------
/markdown/output_23_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Harrison-Ho/Analysis-of-2019-nCoV-propagation-based-on-Model/4a0693ab7a149590edd1bb1638b37aafe87163ff/markdown/output_23_0.png
--------------------------------------------------------------------------------
/markdown/output_26_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Harrison-Ho/Analysis-of-2019-nCoV-propagation-based-on-Model/4a0693ab7a149590edd1bb1638b37aafe87163ff/markdown/output_26_0.png
--------------------------------------------------------------------------------
/markdown/output_32_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Harrison-Ho/Analysis-of-2019-nCoV-propagation-based-on-Model/4a0693ab7a149590edd1bb1638b37aafe87163ff/markdown/output_32_0.png
--------------------------------------------------------------------------------
/markdown/output_35_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Harrison-Ho/Analysis-of-2019-nCoV-propagation-based-on-Model/4a0693ab7a149590edd1bb1638b37aafe87163ff/markdown/output_35_0.png
--------------------------------------------------------------------------------
/markdown/output_38_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Harrison-Ho/Analysis-of-2019-nCoV-propagation-based-on-Model/4a0693ab7a149590edd1bb1638b37aafe87163ff/markdown/output_38_0.png
--------------------------------------------------------------------------------
/markdown/output_39_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Harrison-Ho/Analysis-of-2019-nCoV-propagation-based-on-Model/4a0693ab7a149590edd1bb1638b37aafe87163ff/markdown/output_39_0.png
--------------------------------------------------------------------------------