8 f9 e. m* |; ^' w8 [# t首先,我用python爬虫爬取了丁香医生官方数据,一共5534条数据 特征包括感染、死亡、治愈的总数,当日感染、死亡、治愈新增,疑似病例,时间,省份等14个特征- Z3 y. U; n2 P3 O1 y2 p; D
1 N; Z5 J; f0 L r' f# z. n1 U
9 W2 E: B# s+ g& [% [ 5 i& V5 O8 D: @* f $ D: b) J, G. C) C( o然后用python进行数据提取,提取了较为典型的湖北省的数据作为我的参考依据 $ J3 ~& \/ E t6 k9 F6 O2 Q5 N- F; E3 D, b: W
" S: N; r; T+ \1 O8 \+ s1 Z. f: M* B+ p' }9 E
/ X6 w/ L5 ^3 G O H) N1 a3 i: V然后用python对数据进行清洗,提取出了患病总数,现存患者总数,死亡总数,治愈总数,时间,省份这几个特征 , n/ V2 d- N1 _# `& m9 o6 B8 |- E: K
5 [5 Z- t& A U4 N! B o! N. P' L6 x
对日期格式进行修改,值保留月和日,并与死亡人数的位置交换! ^2 C+ M- [7 V* z/ @7 i. F% K: u! q# ^$ h
2 J; M. v( [# O: C# n
, c1 k: m: d6 a, h! N ' n0 \3 O1 d2 Y: X可以知道初值, J* j# U' x8 `3 l
i ( 0 ) = i 0 . s ( 0 ) = s 0 i(0)=i_0.s(0)=s_0i(0)=i 2 Q2 n9 R" h. e2 [* R( r0 $ V' [. o# m7 @; M: r- G# Z 2 |3 {- e1 g6 B& j, m .s(0)=s 3 u+ X0 b( t8 ]9 s3 ]' ^' p" i8 m- s6 D
08 k+ e, v( ?- U" J% J# N1 q
) {5 a- i4 E$ f# y2 u& z # @$ { s, ~7 R$ o
因为一开始治愈的和死亡的肯定很少,所以r0可以看为0,于是就有:# O: O4 a: j9 u, k" @% i$ c: Z
i 0 + s 0 = 1 i_0+s_0=1i 0 }) M) w1 Q/ \. W. t
0/ p& u0 d4 _- r
% F' \: }. y, h: \ }
+s * H; g+ Q4 \0 T ^& o/ E$ v0 J) c) K) U. }5 [ * t3 H a$ d- J) A- s
=1+ R9 Y( X* b1 t8 c. Y9 n
通过解以上微分方程我们可以根据经验假设λ \lambdaλ (日接触率)和 μ \muμ(日治愈率)的值分别为1和0.5(也就是每个患者可能使1个正常人患病,患者可能有0.5的概率被治愈);由于一开始患者肯定比正常人少很多,所以我们设i0=0.01,s0=0.99。对其求解可以得到s(t), i(t), r(t),的变化图像 8 W- `' J q1 a1 M' g6 e; @1 O; x3 b3 ]: b8 O
1 @' W, W- W0 G* i6 S
, Z6 f3 @( P: W. c j4 I" L E
, v* `0 \" x6 q' u3 V
MATLAB程序如下 / E( ]2 a3 |% e/ }0 zts=0:40; 4 V2 @1 v k% rx0=[0.01, 0.99]; 0 D" ` Z7 N% ^! B1 @! i[t,x]=ode45(‘ill’,ts,x0);8 q4 h) R7 P' e; ?' `
r=1-x(:,1)-x(:,2); / p! h% g- \& M- N: F) Lplot(t,x(:,1),t,x(:,2),ts,r,ts,x(:,1)/x(:,2)) - X. ^5 S% s+ X" H$ Q& \legend(‘i(t)’,‘s(t)’,‘r(t)’) 3 d8 }" e6 t' S% j : K$ G7 X7 a$ |: L8 y # A" ]* r) f( A' m. A5 D& ?: Lfunction y=ill( t,x)# d9 l7 R2 ~4 o; s
a=1;/ h; K; o5 h2 e, m" [1 z
b=0.5;7 W. x0 H& E) F1 M
y=[ax(1)x(2)-bx(1);-ax(1)*x(2)]; - C- G/ {* b4 x; D. s( x 9 Z6 J4 ^; Z: }7 z- W2 M- y% s _$ L6 x, Z8 `$ e/ W, m
结果分析:患病人数肯定有个高潮,但之后高潮就会减弱,并逐步降低为0。随着医疗卫生条件的不断提升,患者的 λ \lambdaλ(日接触率)肯定降低,μ \muμ (日治愈率)肯定上升,所以我们可以把λ \lambdaλ调一点为0.8,μ \muμ调高一点为0.6,可以得到以下趋势图。所以应对传染病很关键的一点是我们要提高医疗卫生条件 . b4 K# N5 R/ z+ k1 i: p+ F8 y& \
! G9 B. @) P4 r; \5 S7 K
8 ~% i1 @# J: n, Q
模型二3 ?) m0 D2 T; b0 K8 W
3 F, i6 L4 v6 Y( v. X z: X9 {$ ~1 X
实际上,λ \lambdaλ (日接触率)和 μ \muμ(日治愈率)都是随着时间变化的,这里我们设s(t), i(t), r(t) 为第t天健康人、病人、移除者(病愈与死亡之和)的数量, s(t)+ i(t)+r(t)=N..* D n7 |: h" B1 G+ A7 B, x, a
(t), (t) ~第t天感染率, 移除率(治愈率与死亡率之和). a+ n( Q8 ?- D
有 d i / d t = λ ( t ) s ( t ) i ( t ) − ( t ) i ( t ) di/dt=\lambda (t)s(t)i(t) - (t)i(t)di/dt=λ(t)s(t)i(t)−(t)i(t)1 k" ]! x; [% x) ]9 D
因为s远大于i, r,s(t)视为常数,所以有6 I; h G+ q( a: J$ P* n- w3 E- R
9 Y" a! e1 K# m) i0 s' z8 r g4 F( L& a% w; A' ^! c2 J: ]# u