|
什么是传染病动力学?numpy和matplotlib用python实现传染病模型SI模型SIS模型SIR模型SEIR模型 什么是传染病动力学?最近,在报道疫情的众多新闻中,相信大家也看到过一些来预测新型冠状病毒会导致感染肺炎的人数。你一定好奇,这个人数要怎么预测呢?预测人数又有什么用呢? 事实上,从学科方向来说,这类研究属于传染病动力学,就是用数学模型去描述传染病在人群中传播的规律,从而预测患病人数,进而指导政府制定措施和政策去控制传染病的传播。0 \# t! b: f4 {7 L1 _
这类研究最早可追溯到18世纪Daniel Bernoulli对天花的研究,而我们今天所要介绍的SIR模型是1927年Kermack与McKendrick在为了研究伦敦黑死病而提出的,是传染病动力学中最基础的模型。 介绍了传染病模型的背景信息,不知道现在你对传染病模型更有兴趣,还是执着地对python更有兴趣呢?不论哪种,这篇文章会满足你所有的好奇心。 numpy和matplotlib首先,安装一下这节课我们需要使用的两个python包,numpy和matplotlib。3 @9 f$ e1 ?' A; Z& G4 j
numpy-是python进行科学和矩阵运算最常用的包。 用numpy建立一维数组,存储和计算每天传染病人数的数据。
* L8 [0 ~3 c: x5 q* S8 Y6 timport numpy as np import matplotlib.pyplot as plt 用matplotlib绘制传染病人数随天数变化的曲线,给出模型预测人数变化的直观认识。 好啦,下面开始用python实现传染病模型吧。 用python实现传染病模型为了让大家能够更好地理解,我们先不直接说SIR模型,我们从最简单的开始。 SI模型首先想象这样一个场景,一个城市有 个人,假设没有人出生和死亡,忽然有一天有 个人感染了病毒成为了患者,如果每天每个患者能够有效传染 个人,那么第二天患病人数是多少呢?最简单的答案是: ,也就是说每天都会新增 个患者。那这样以来,在无限远的将来会有无穷多的人被感染,显然这是不合理的,那错在哪里?仔细思考,你一定发现了,已经患病的人就不能再被传染了,所以我们有必要把人群分为两类,易感者(S-susceptiable)和感染者(I-infective)(你猜的没错,这就是SIR中S和I的含义,R的含义之后介绍再讲)。为了之后方便计算我们记易感者和感染者在人群中的比例为 ,那么 。我们重新考虑上面的问题,顺便来个示意图: Image Name这样的话,每天新增的患者数为 ,也就是总传染人数乘以易感者所占的人群比例。
$ D, \" V# R) a那么每天的感染者比例的增加量就是 。我们假设城市有一千万(N=10的7次方)人,每个患者每天接触感染每天0.8人(lamda=0.8),初始感染人数为45人(i0 = 45/N),我们来模拟70天(T=70)的情况。 # population
6 v4 t8 d K9 B1 i) L3 K: LN = 1e7! h) t) { q5 b7 f' i, j+ Q
# simuation Time / Day& `* C2 h5 T9 b/ z
T = 70
# x! z W/ ]+ u! W$ A8 N+ D# susceptiable ratio
( i* t# `: p1 j& ?& ~6 Gs = np.zeros([T])& ~6 r3 ^$ |$ d
# infective ratio
, }* M3 h0 ^( `i = np.zeros([T])5 F! ]: C# y2 T* ]
# contact rate7 g8 l, o* b( b9 m9 a$ f
lamda = 0.80 w- F }" n6 Q1 u# L& @
& W/ g0 X0 ^- m f7 |; m2 F- c( ]1 s
# initial infective people& O9 S5 V, S- C
i[0] = 45.0 / N
+ V, S I3 {8 I2 T$ q' X( e' u
* M: Y* i* W& g0 f# qfor t in range(T-1):
6 W5 |6 D1 ?4 \ i[t + 1] = i[t] + i[t] * lamda * (1.0 - i[t])
8 D) P! o/ A- R& H, ` y
, x$ N! ?$ h' H) ^, D" x( j7 x
$ r$ B6 Y/ h- c# M0 Q; x' R6 d2 V
( ~1 _# _5 R0 m& Q" C# a相信其他语句大家都明白,新知识是这两行:
( b+ c( a) n; t9 U. U5 F0 s# }' d/ X$ ]. u
& n, N$ r1 F" S0 m" i: `
s = np.zeros([T])
7 S8 ~" E2 Z* L+ i5 E( Ji = np.zeros([T])
" m, {- m2 w% L- V( ~5 d$ O8 s( k5 I2 m7 l1 w
这两句话的意思是一样的,就是利用numpy(已被我们重新命名为np)的函数(zeros())来建立一个所有元素都是零的数组,而给的参数决定了这个数组的维度。比如:
' ]! ]7 U3 [) Z: n H
6 W( K6 m2 C _; b% ~a = np.zeros([2,3]). E0 k4 ?' ? L; y. F
a
" x+ j U4 d; F- b- }5 x6 |
) [) f2 Y4 E" K4 q4 i4 n) q* o2 rarray([[0., 0., 0.],- @1 W0 Q; A" ^. q% E6 U; D
[0., 0., 0.]])
B5 ]& { O J0 [" U5 l8 x2 f4 [+ K* J$ D- D
* W! [* `5 U- Z& |array([0., 0., 0., 0., 0.])
& K6 O2 I' B: K6 M
1 F; T7 s8 v! s( y
% l) @& o( h/ c/ m9 d0 f8 `; D R) f& t' k类似的还有产生元素全部是1的数组的函数np.ones():
% H+ G8 f, i! ]& _4 k, j }9 q5 p4 }; r; U
a = np.ones([5])
8 U+ R4 o/ m( r: K1 qa
' V! S6 L C6 f! X
* W" l9 x# n* }( S/ @1 Warray([1., 1., 1., 1., 1.])% `! p f7 ~ y
/ S& e- i) e$ f- m# y; u5 |8 m3 q6 W9 Y8 s0 l
a = np.ones([2,3])6 E# i- S, m$ H
a/ }$ l2 Z' W7 F" E# o
6 m1 z6 V! b( q. D9 |# X
5 a8 ~( S6 _& q- U" G+ x' c. ?array([[1., 1., 1.],
. s; b- X5 F& _! U [1., 1., 1.]])) G3 L. n. g f x2 [- v& n% @! M" F
$ n) q$ a* J! N, a
0 H( a- K8 Q$ r
plt.plot(i)
- T' U8 ]& O. z! C/ P# n# e9 y \3 |, [( c$ B
# z( X$ a. v, \2 Z- O1 n- g[<matplotlib.lines.Line2D at 0x7f0c2768d6d8>]
3 |: m2 [$ k2 O/ |/ p& j/ m
0 D# d5 f- \3 y8 b. w. h- E3 v: w& i! t
![]()
$ y1 v* N2 w9 h& |$ O; E
3 n% B. R8 s1 R+ k9 B7 X7 k0 D- k8 Y6 b( k
实现SI模型的核心代码是第三个cell的第11,12行:
! T4 l1 D( c( G
0 t' K, B7 `$ k7 ^for t in range(T-1):: Z+ Q5 I$ o; p" j# J* ]$ _
i[t + 1] = i[t] + i[t] * lamda * (1.0 - i[t])
1 z( g* j* u$ x( r. [5 _/ \: O9 f Q
: H+ _# H% d( f" c- h! q: A* v就是我们建立的数学模型,利用python的for循环语句累加迭代的方式把每天的增加量叠加到感染者比例上。 运行代码完成计算,我们利用matplotlib的pyplot来画出感染者的随天数的变化曲线: 5 t5 Y2 K) ~% x! O1 s# Z' f, ?
fig, ax = plt.subplots(figsize=(8,4))
: G$ i) W1 _: M; Z) Iax.plot(i, c='r', lw=2)% u# H5 E- w2 `7 f
ax.set_xlabel('Day',fontsize=20)
2 v d( L) }% s0 [; `+ max.set_ylabel('Infective Ratio', fontsize=20)
* n4 y2 c+ N |: H8 F' a. uax.grid(1)
, T" a; i2 `8 j$ l9 d9 h2 uplt.xticks(fontsize=20)
- R# y: p) W5 j, r( {2 X! t" J( L! pplt.yticks(fontsize=20);
' M) y0 F+ e. o& Z7 r. ^5 K+ }, O* v9 p3 Y1 T* A+ E7 e
d2 o) E$ M3 w9 s0 V! r
![]()
4 R* r. ^& c C2 Y
; L. h6 N- J9 k7 a/ N1 f从这个结果看到,大约在25天左右,全部人群都会变成感染者,感染率 。
, a1 f2 A) {/ n( w8 k0 [* I在程序中我们假设每天每个患者传染0.8个人,你可以改变lamda的值,观察全部人群感染的天数的变化。
# L9 l9 _, i3 f认真思考你会知道,lamda的现实意义就是该城市的卫生水平,衡量的是消毒,隔离这些措施执行得怎么样。回到传染病模型,按照SI模型计算的结果,我们全人类都会患病,这好可怕!原因是我们忽略了一个很重要的因素,那就是我们有奋斗在一线的医护人员,我们会被治愈!所以SI模型只适合研究具有高传染风险又不能被治愈的病(比如HIV)。 但是对于其他病,我们是可以靠医疗和自身免疫系统康复的,那么紧接着的一个问题就是,被治愈后还会再被传染上嘛?根据这个问题的回答不同,我们有了两个不同的模型,SIR 和 SIS。现在可以揭晓,SIR的R的含义了,就是移出者(Removed),现实含义就是指被治愈后不会再被感染的人。而SIS表示治愈后仍然还是易感者。下面我们用python来分别实现这两个模型。 SIS模型为了实现这个模型,我们需要引入新的一个参数,治愈率 。好啦,先上我们的新示意图: Image Name和SI模型做比较,区别就是计算感染者的增加数时要减去被治愈的人数。) y4 z+ k+ Y$ B$ l6 ]- Q8 m
所以这时候每天的增加的感染者为: ,* N1 T/ r" u R {
增加的感染率为: 。
7 }- m; P7 y( [, W) ?* T) v模型完成啦,修改python代码:
. Q0 T9 d: d: E& w/ x, M* a# susceptiable ratio9 m. Z1 {' I. S" j% G" g
s = np.zeros([T])' }8 b4 ]4 d8 S. G5 N
# infective ratio
$ z/ w( p3 W. g/ B2 X' gi = np.zeros([T])+ \' X; M: Q4 @5 n2 j; m: Q$ D' _7 I1 V
% u. o5 |5 L: i% W
# contact rate
6 g G: s2 \# _9 e) z$ F0 Clamda = 1.0
; u7 i6 b% R! X2 e' i! S2 j9 L# recover rate7 D/ D3 ?5 s8 J3 v
gamma = 0.5 # B: k7 ^# m U) O
) B+ Z- ]& j/ z# initial infective people
; P) X: W+ e' _ H( Wi[0] = 45.0 / N! h- O% v7 Z5 [7 M
# Q6 n$ [) w, F& J6 i+ b" s
for t in range(T-1):5 n, c! y$ p2 q7 Z+ w* p8 V& v# _
i[t + 1] = i[t] + i[t] * lamda * (1.0 - i[t]) - gamma*i[t]
) g: G* n B. O7 _3 J8 m# {/ v' _& r3 V1 u
1 r( E# v5 M& M% c3 h7 Z* i$ i5 z8 ?
8 [9 b+ X2 F6 o2 O8 A/ D
运行代码,我们画出曲线(代码和SI模型的画图完全一样):
, P( B$ `% ?+ q6 v$ i" F' {, O- a& S4 k. S/ h: o0 N
fig, ax = plt.subplots(figsize=(8,4))3 Z3 O; E) a+ H, [* z l( Q
ax.plot(i, c='r', lw=2)
" y' n7 ]" w0 @) Q* g+ f, Hax.set_xlabel('Day',fontsize=20)
) G4 c, c' C g' l& @# i8 dax.set_ylabel('Infective Ratio', fontsize=20)
* g% P7 n$ n5 i- w& cax.grid(1)( q9 h6 D/ R. j: e. Z
plt.xticks(fontsize=20), t1 A1 p. j7 r, C: M5 f4 W
plt.yticks(fontsize=20);* _2 e% d9 S: V3 ^' i# K6 k% A
9 F! e0 k. R: v7 N# J7 z 7 j1 }+ q/ X. i
( v/ n1 R) W& \5 L2 p( }& W- \/ G! L( z( x3 k; C2 V& u2 e
行代码,我们画出曲线(代码和SI模型的画图完全一样)6 v8 f" k0 D- v# T7 D
可以看到,达到最大感染率的时间退后10天左右,最后感染和治愈达到动态平衡,人群中有始终有一半的人感染着。所以,SIS模型适合研究具有传染性和反复性的流行病,比如常见流感。同样的,感兴趣的话,改变lamda和gamma的值,观察曲线的变化。和lamda不同的是,gamma的现实意义就是对这种疾病的治疗水平。 SIR模型加入了移出者,被治愈的病人不会再被传染,先上我们的新示意图: Image NameSIR 模型
- s6 [. X) S+ }* t; C注意到这里,人群被分成了三类,不再只有I和S,所以相比于之前的模型,我们需要找到新的约束关系。现在我们需要分别计算三种人每天的增加量了: 1 i# J1 L- Q. H; [
- 易感者:每天都在被传染,所以一直在减少,减少量为被传染的人数:
- 感染者:增加了被感染的人,减少了治愈的人:
- 移出者:增加了治愈的人:
) J) u1 d; p5 @/ @. {) c
建模完成,修改python代码,并且假设人群普遍易感,新型疾病,初始没有移出者。
, v: X- x: {2 F# population" b U% h7 j5 U" M( n! M, K e
N = 1e7 + 10 + 5
1 e# r$ e0 @8 J0 g, x: S* q6 g# simuation Time / Day- I" w, A' x* @- |4 c9 {
T = 170: p' _' a9 R& ?3 w2 y' Y1 i
# susceptiable ratio, O( l% t2 u) c) Q
s = np.zeros([T])
' `# N% n2 k3 e) Y& z# infective ratio+ i1 T: ?& ?8 Q' Q; `% j1 r8 U
i = np.zeros([T])7 B8 [+ k$ ~0 K0 S5 ?% Z! F3 S
# remove ratio
) t6 ^% e5 s$ m3 qr = np.zeros([T])' O [* _& V! X- u( [
9 B. b' t' Q, Z; ^% D# contact rate
: q* C5 o$ ~2 C! ?: T6 jlamda = 0.2586
6 \0 x4 B/ K+ N9 j# _# recover rate" ~, @( ]7 \' X. r
gamma = 0.0821
( j& q7 w* Y2 j% ?1 n+ o t& A8 W- l* k$ e( m7 u
# initial infective people ^9 X5 I+ T6 r( S6 `" i
i[0] = 10.0 / N; W; B6 W7 u1 ^
s[0] = 1e7 / N
w- S( S1 a+ u( a6 |1 n% Yfor t in range(T-1):
D5 K0 [$ T, t7 c( g6 A( g i[t + 1] = i[t] + i[t] * lamda * s[t] - gamma*i[t]
. v* O" X8 D9 J& a7 b2 k( m6 W0 F. Z s[t + 1] = s[t] - lamda * s[t] * i[t]
+ D, f$ g( u% X* @3 ?/ a; V" F3 K t r[t + 1] = r[t] + gamma*i[t]/ g- ?+ X8 {# o, ~% t
7 B+ Z) r! F8 R- w6 S
fig, ax = plt.subplots(figsize=(10,6))% d3 V A& T( P F4 \! S: o; `
ax.plot(s, c='b', lw=2, label='S')
; K. [! G6 J, n1 g n: ^$ f; w7 Gax.plot(i, c='r', lw=2, label='I')
$ }$ g+ k; c6 Kax.plot(r, c='g', lw=2, label='R')
$ s5 }# y# R' G; a' s4 J r/ w! sax.set_xlabel('Day',fontsize=20) o, k6 k' F' `6 M. \
ax.set_ylabel('Infective Ratio', fontsize=20)$ F& k5 @- g) O1 q6 J8 t' H8 K" ^
ax.grid(1)6 B8 a1 w' r6 H1 r( Q1 e, E$ @
plt.xticks(fontsize=20)
$ |0 N* g! c/ J* |* o$ mplt.yticks(fontsize=20)- h( F$ j; c; [3 Y+ E- f( k% G4 K( V
plt.legend();- |. k1 I; Y/ {% }- }; R3 H
- @( ^) l$ j. U8 K0 }# ]) l; ]" l! \+ d- m! z' e, K8 v
![]()
- X9 u* O v/ m- @* |( W$ z) q# [, ~1 c
感染人数峰值发生在一个月左右,最大感染人数不到人群的20%, 但是最终人群的80%都会得此病(就是最终的移出者的比例)。SIR模型适合研究没有潜伏期的急性传染病,治疗后能够痊愈并具有抗病性。 到这里,虽然不准确,我们也可以先用SIR模型来分析一下此次疫情,武汉新型冠状病毒的传染病动力学! 模型有了,其实就是确定参数的问题。一开始就有人做了这个工作: Image Name于教授给的参数是参考了非典的, ,初始易感人数为一千万, 初始感染10人,初始移出者5人,那么我们的城市总人数 , 带入我们的模型得到结果:重现于教授的模型
# `" Z0 p8 i/ D& a' v# z; ^- O高峰和尾声日期的推测基本相符。 . g J# t% d) n2 o- l
# susceptiable ratio
& A3 j3 y! ?! Ms = np.zeros([T])0 l2 j# e* h& C* P' L8 G
# infective ratio u, t6 n! W/ ?0 f: c- X
i = np.zeros([T])
+ O' K+ O+ m4 c! o) v$ Z# l3 s# removed ratio
+ @( X8 Y) v: `r = np.zeros([T])
) P: l' |% Q( Y0 V/ {2 t; J" P4 }- o1 |" M
# birth ratio+ A- b% B# H$ Q' o5 j+ i# i( g
b = 20.0 / N' L. [9 L. i* ?" D
# death ratio6 F& L" s% y$ Y c& z; C" O
d = 10.0 / N8 i" w. C7 Y8 w
& f$ s+ b! h# ]5 G+ ]6 X# contact rate
9 q& H) k8 g/ f* @y = 1.5
; M& \8 f) r$ q9 m# recover rate
& t7 B) u5 L* F# |u = 0.8 # 1 / infective_period2 w5 a1 K! q2 X/ { \/ O% b! Q
9 j! D+ D0 v9 d1 U5 G/ F4 Q# sigma = y / u
- R$ q2 D9 Q+ `5 p, a$ k, r% H6 C+ W' ]* ^
# initial infective people! U' w) Q$ _8 J: k! r I$ j
i[0] = 45.0 / N `- S# y0 k& k5 ] g2 Y, C
s[0] = 1 - i[0]# k6 q8 [5 D: u* h" V& F
for t in range(T-1):
( Y! I+ e" i6 v# ^( b# B' Y' S9 Z i[t+1] = i[t] + i[t] * y * s[t] - u*i[t] - d*i[t]
4 m8 z) a+ t3 n$ M" H. d R s[t+1] = s[t] - y * s[t] * i[t] + b - d*s[t]
, q; D0 {, N" T( s, X% ^) v r[t+1] = r[t] + u*i[t] - d*r[t]
# ]* }5 A' [' i" M; x" G8 @8 t. c1 k' O- R! ?
plt.plot(i)
7 Q1 n: P# f Y- |* f4 V/ P3 C8 }plt.plot(s)
0 j; i, |/ G! k6 }1 K& Eplt.plot(r)
: C" D0 Y% U; Qplt.plot(np.diff(i),ls='--'). ?" ?) s4 y/ z/ \) m) k9 P
q3 \/ L) J' C* A" S4 t G, f* d
% t0 d" U3 F# S3 Y; O# H$ H[<matplotlib.lines.Line2D at 0x7f77796e8518>]
; b. V* k% e% K+ t+ s8 x
& w+ E1 [* z5 Y! K1 J% p# E& A 0 s3 X e8 ~' n: u$ R
; t. q6 d K. g0 E. C$ y( e$ i
SEIR模型但是,SIR模型和实际情况的出入会比较大,因为忽略了太多因素了,比如说潜伏期,比如说政策调控,药物,出生死亡等等。下面我们可以和前面一样,把潜伏期考虑进去,新增一个人群,叫潜伏者E(exposed): Image NameSEIR模型
9 H$ @- S, F3 Q$ w, |+ f, x( I6 s同样的我们需要计算各人群每天的增加量: S:每天减少: ( J. F& u8 _" b+ Y
E:每天增加传染,减少发病: 6 U% G$ n8 U* }# v0 R5 m# j% b
I:每天增加发病,减少治愈:
! p) g$ C$ O+ D; ]/ s/ G$ GR:每天增加治愈:
6 N0 T$ @, V+ R0 u建模完成,修改我们的python程序,这里的 可以理解为潜伏期的倒数。给的4天。新型冠状病毒给目前临床的潜伏期是3-14天。" V# r1 p# I5 X# l) `
# population
9 E# U& i5 g/ ~5 ~- ?7 e, z5 kN = 1e7 + 10 + 5
8 \& ~7 P, W0 \$ G+ p5 o5 ?# simuation Time / Day
, E5 k7 k' A1 Z' oT = 170
" C# o- [7 \/ O/ p5 w. T/ f# susceptiable ratio5 @. U: _- [ }0 J- ?; N! W9 v
s = np.zeros([T])6 z; u/ B5 z$ {- ?5 M+ Y
# exposed ratio
) W' ?! ^& ~0 t2 H3 be = np.zeros([T])# V- l$ @7 Y2 T2 J9 l/ `
# infective ratio5 C' Z9 j6 s. D0 F/ z0 T% c
i = np.zeros([T])6 D" j* `8 @/ U* M9 _
# remove ratio- n6 Q. b, x" l+ `% Y0 I
r = np.zeros([T])3 ~& ?* T, `/ w' S
# {+ Z- c+ [# m! |* M$ H" Q e# contact rate% G5 l [' U) G- ]+ u: o* b
lamda = 0.5% J+ n6 x/ p! `) _' c
# recover rate! ~* ~7 c: n* x% G3 z
gamma = 0.0821
# L% R- }7 I& U4 ?4 ?# h. `8 z1 b# exposed period4 {$ A4 m' f+ W6 |8 K. _
sigma = 1 / 4- }8 m6 i- c: m! t
& {# W2 W: f3 Y, b# S
# initial infective people
. c( f$ F/ F8 G4 [i[0] = 10.0 / N
/ E( h. H- U5 {$ xs[0] = 1e7 / N) X4 w' w0 [% B6 T! D) @$ L
e[0] = 40.0 / N
( I: V* ~5 x) X' |for t in range(T-1):
; M& C7 F! x- R, q s[t + 1] = s[t] - lamda * s[t] * i[t]
) N& W# l; c& ^2 B e[t + 1] = e[t] + lamda * s[t] * i[t] - sigma * e[t]! K6 l1 h( X, z% O# U, I& z7 R# [
i[t + 1] = i[t] + sigma * e[t] - gamma * i[t]
) Y3 x- O$ G6 G9 A0 O$ u r[t + 1] = r[t] + gamma * i[t]
* p$ |' u* c1 l- M6 ^7 M! z( J1 D0 W& w5 G1 P p9 t* D' M2 {
; K) d8 e0 \ O
fig, ax = plt.subplots(figsize=(10,6)). x+ J7 ?4 p+ p! s k( F; y
ax.plot(s, c='b', lw=2, label='S')# a3 F0 S% X2 P; Z$ [
ax.plot(e, c='orange', lw=2, label='E')2 H5 C* ^8 G# l2 D
ax.plot(i, c='r', lw=2, label='I')
0 i2 i- S5 t% Q) Kax.plot(r, c='g', lw=2, label='R')
0 Z0 S6 s6 A7 uax.set_xlabel('Day',fontsize=20)+ \$ _% \8 \3 r+ _0 ?' u
ax.set_ylabel('Infective Ratio', fontsize=20)
* V4 s. L- V4 _& Hax.grid(1)8 |0 X5 r5 S$ p
plt.xticks(fontsize=20)8 z1 @. H! J! L# H* M
plt.yticks(fontsize=20), o+ j5 S) y- C0 c0 r3 V3 T
plt.legend();0 t/ J; h8 b$ t
3 q2 b/ J6 V0 V* P
5 W1 N4 Q4 q( F. d+ @. T* s
( A* h7 Z" y8 s1 _9 l+ {
9 j1 _- W0 M5 s* w5 Z按照模型的结果,此次疫情可能真的要持续到 三四月份。这个接触率 真的非常影响表现,模型给的是个常数,但是由于政府措施的原因,这应该是个变化的值。
1 j# x4 Y" K& u6 i, s0 L还有治愈率 也是。没有完美的模型,但是随着考虑因素的增多,就会越来越接近实际情况,从而指导政府的疫情方针政策的制定。 t6 ?& y& j' j$ s" m
5 M+ ^4 h7 z7 |) t
$ C5 R# Y6 w0 q0 d
5 B. d% Z7 N8 e# U1 d/ |0 m. v4 A, z2 a1 L R- o" g
|