基于SEIRD和元胞自动机(CA)模型的传染病发展趋势预测
目錄
- 前言
- 一、模型假設
- 二、符號說明
- 三、SEIRD模型
- 1. 模型求解
- 四、元胞自動機(CA)模型
- 1. 模型求解
- 2. 城市居民減少外出對疫情發展的影響
- 3. 城市間人口流動對疫情發展的影響
- 五 基于防疫政策的修正模型
- 2 “全民戴口罩”
- “早發現,早隔離”
- “全民打疫苗”
- 總結
前言
前段時間參加了校內組織的數學建模比賽,主要是建模預測傳染病的發展趨勢,下面將模型分享一下:
一、模型假設
將人群分為5類,分別是:易感人群(未感染過病毒的人群),潛伏期人群,感染人群,免疫人群(感染后康復人群)和死亡人群。根據該傳染病特征的分析,對問題進行了以下假設:
易感人群與潛伏期人群接觸不具有感染可能性;
易感人群與感染人群接觸后有感染可能性;
免疫人群具有終身免疫性,只要治愈,就不會再次被感染;
死亡人群不具有傳染可能性;
不考慮在傳染病傳播期間,人口的遷入遷出以及自然出生和自然死亡對研究區域人口總人數的影響;
只考慮人與人之間傳播的途徑,不考慮環境傳播;
在疫情的第一天,免疫人群數量和死亡人群數量都為0。
二、符號說明
SSS 易感人群,指未得病,但缺乏免疫力,易在接觸感染者后受到感染
EEE 潛伏期人群,指已感染,但無明顯感染癥狀的群體
III 感染人群,指染上傳染病的人,可以傳播給SSS類成員,將其變為EEE類或者III類成員
RRR 康復人群,指染上傳染病的后康復而具有免疫力的人,RRR類成員不會重新變為SSS類
DDD 死亡人群,指染上傳染病后死亡的人群
α\alphaα 表示易感人群接觸感染人群后被轉化為潛伏期人群的概率
β\betaβ 表示潛伏期人群轉化為感染人群的概率
γ\gammaγ 表示感染人群轉化為免疫人群的概率
ω\omegaω 表示感染人群轉化為死亡人群的概率\
三、SEIRD模型
SEIRSEIRSEIR模型是一種經典的傳染病動力學模型,按照傳染病的傳播順序,將傳染病流行范圍內的人分為四類,通過不同的感染率、康復率等實現四類人群的互相轉化,以對傳染病的傳播規模和傳播時間進行模擬。但考慮到題目中給出的傳染病潛伏期較長的情況,于是對SEIRSEIRSEIR模型進行改進,增加了死亡人群這一群體。則傳染病流行區域內的人群被分為555類,分別是:易感人群、潛伏期人群、感染人群、免疫人群和死亡人群,各類人群按照一定的概率進行轉化。
SEIRDSEIRDSEIRD模型的動力學過程如圖1所示,
其基本思想是:
(1)(1)(1)在不考慮出生、自然死亡、遷入遷出等各種因素的情況下,假設人群總數NNN不變,ttt時刻各類人群的人數分別記為S(t),E(t),I(t),R(t)S(t),E(t),I(t),R(t)S(t),E(t),I(t),R(t)和D(t)D(t)D(t),則N=S(t)+E(t)+I(t)+R(t)+D(t)N=S(t)+E(t)+I(t)+R(t)+D(t)N=S(t)+E(t)+I(t)+R(t)+D(t)。
(2)(2)(2)假設人群中人與人之間的接觸是隨機的,接觸到感染人群(I)的人會以概率α\alphaα變成潛伏者,則在單位時間ttt內,接觸到感染者變成潛伏者的人數為αISN\frac{\alpha IS}{N}NαIS?。
(3)(3)(3)潛伏者以概率 β變成感染者,則在單位時間\beta 變成感染者,則在單位時間β變成感染者,則在單位時間t內,由潛伏者變成感染者的人數為βE內,由潛伏者變成感染者的人數為\beta E內,由潛伏者變成感染者的人數為βE。
(4)(4)(4)感染者恢復的概率為γ,則在單位時間\gamma,則在單位時間γ,則在單位時間t內,由感染者變成康復者的人數為γI內,由感染者變成康復者的人數為\gamma I內,由感染者變成康復者的人數為γI。
(4)(4)(4)感染者死亡的概率為ω\omegaω,則在單位時間ttt內,因感染傳染病而死亡的人數為ωI\omega IωI。
綜上所述,五類人群的人數隨時間的變化情況可用如下的動力學方程表示:
1. 模型求解
為求解微分方程組\ref{eq:1},我們將其轉化為迭代形式,具體過程如下。
對
dSdt=?αISN,\frac{dS}{dt}=-\frac{\alpha I S}{N},dtdS?=?NαIS?,
移項得到
dS=?αISNdt,dS=-\frac{\alpha I S}{N}dt,dS=?NαIS?dt,
我們在方程兩端對ttt從n?1n-1n?1到nnn進行積分
∫n?1ndS=∫n?1n?αISNdt.\int_{n-1}^{n}dS=\int_{n-1}^{n}-\frac{\alpha I S}{N}dt.∫n?1n?dS=∫n?1n??NαIS?dt.
由左矩形公式∫abg(x)≈(b?a)g(a)\int_{a}^g(x)\approx (b-a)g(a)∫ab?g(x)≈(b?a)g(a),可得
S(n)?S(n?1)=?[n?(n?1)]αI(n?1)S(n?1)N.S(n)-S(n-1)=-[n-(n-1)]\frac{\alpha I(n-1)S(n-1)}{N}.S(n)?S(n?1)=?[n?(n?1)]NαI(n?1)S(n?1)?.
記Sn=S(n?1),In=In?1S_n=S(n-1),I_n=I_{n-1}Sn?=S(n?1),In?=In?1?,得到
Sn?Sn?1=?αIn?1Sn?1N.S_n-S_{n-1}=-\frac{\alpha I_{n-1}S_{n-1}}{N}.Sn??Sn?1?=?NαIn?1?Sn?1??.
整理得
Sn=Sn?1?αIn?1Sn?1N.S_n=S_{n-1}-\frac{\alpha I_{n-1}S_{n-1}}{N}.Sn?=Sn?1??NαIn?1?Sn?1??.
同理可得
En=En?1+αIn?1Sn?1N?βEn?1,E_n=E_{n-1}+\frac{\alpha I_{n-1} S_{n-1}}{N}-\beta E_{n-1},En?=En?1?+NαIn?1?Sn?1???βEn?1?,
In=In?1+βEn?1?γIn?1?ωIn?1,I_n=I_{n-1}+\beta E_{n-1}-\gamma I_{n-1}-\omega I_{n-1},In?=In?1?+βEn?1??γIn?1??ωIn?1?,
Rn=Rn?1+γIn?1,R_{n}=R_{n-1}+\gamma I_{n-1},Rn?=Rn?1?+γIn?1?,
Dn=Dn?1+ωIn?1.D_n=D_{n-1}+\omega I_{n-1}.Dn?=Dn?1?+ωIn?1?.
由以上式子可以看出,只要給定初始值,就可以求出SEIRDSEIRDSEIRD模型的數值結果。
將模型的初始值設定為S0=N?E0?I0?R0?D0,E0=57,I0=47,R0=0,D0=0S_0=N-E_0-I_0-R_0-D_0,E_0=57,I_0=47,R_0=0,D_0=0S0?=N?E0??I0??R0??D0?,E0?=57,I0?=47,R0?=0,D0?=0,城市AAA的總人口數N=100N=100N=100萬。
圖2中展示了SEIRDSEIRDSEIRD模型結果。圖中結果表明:在該地區,傳染病在疫情發生半年期間,感染人數會出現爆發式增長,在第181181181天,感染人數達到峰值636527636527636527;此后,感染人群開始逐漸下降,直到傳染病消失。最終的免疫人群達到942356942356942356人,最終死亡人數為572215722157221人。
四、元胞自動機(CA)模型
人員流動時,因該傳染病只通過人與人的接觸傳播,因此每個人的狀態只與周圍人員的狀態相關。
假設某個體所處位置為(i,j)(i,j)(i,j),如果個體的身體是健康的,但是周圍存在感染者,則個體會以概率α\alphaα變成潛伏者;
如果個體是潛伏者,會以概率β\betaβ變成感染者;如果個體是感染者,會以概率γ\gammaγ變成康復者或以概率ω\omegaω死亡。
于是通過初始化城市中的人口位置,并放置傳染源,可模擬出該傳染病的傳染過程。
在城市中,根據人口流動程度,可將元胞劃分為靜態元胞和動態元胞。靜態元胞處的值始終為-1,并保持不變,表示此處人口流量為0;動態元胞的值在0到4之間轉化,表示由于人口流動導致的病毒傳播。在目標區域中,用此區域中動態元胞和靜態元胞數目之比表示該區域的人口流動密度,動態元胞越多,表示此處人口流動密度越大;反之,表示人口流動密度越小。將城市內的人口分布情況初始化,然后城市內每個人在自己所處位置附近流動。如圖3所示,用不同顏色表示個體所處狀態,白色表示靜態元胞,可認為該個體為居家隔離狀態;綠色表示處于流動狀態的易感者;黃色表示處于流動狀態的潛伏者;紅色表示處于流動狀態的感染者;藍色表示處于流動狀態的免疫者;黑色表示死亡狀態。
假設人口流動遵循以下規則:
(1)(1)(1)當且僅當個體周圍位置為有人狀態時,人口流動才有可能發生;
(2)(2)(2)人口流動僅在個體所處位置附近發生;
(3)(3)(3)個體狀態的改變是個隨機過程,可隨機確定,由其鄰居的狀態隨機決定。
假設該地區一共有nnn個城市,則Sk,Ek,Ik,Rk,DkS_k,E_k,I_k,R_k,D_kSk?,Ek?,Ik?,Rk?,Dk?分別表示第kkk個城市中的易感人群、潛伏期人群、感染人群、康復人群和死亡人群。
每個城市內的各類人群按照一定的概率進行轉化,此時的SEIRDSEIRDSEIRD模型的基本思想為:
(1)(1)(1)在不考慮出生、自然死亡、遷入遷出等各種因素的情況下,假設nnn個城市的人群總數NNN不變,ttt時刻第kkk個城市中各類人群的人數分別記為Sk(t),Ek(t),Ik(t),Rk(t)S_k(t),E_k(t),I_k(t),R_k(t)Sk?(t),Ek?(t),Ik?(t),Rk?(t)和Dk(t)D_k(t)Dk?(t),則N=∑k=1n[Sk(t)+Ek(t)+Ik(t)+Rk(t)+Dk(t)]N=\sum_{k=1}^{n}[S_k(t)+E_k(t)+I_k(t)+R_k(t)+D_k(t)]N=∑k=1n?[Sk?(t)+Ek?(t)+Ik?(t)+Rk?(t)+Dk?(t)]。
(2)(2)(2)假設人群中人與人之間的接觸是隨機的,接觸到感染者的人會以概率α變成潛伏者,則在單位時間\alpha 變成潛伏者,則在單位時間α變成潛伏者,則在單位時間t內,第內,第內,第k個城市中接觸到感染者變成潛伏者的人數為個城市中接觸到感染者變成潛伏者的人數為個城市中接觸到感染者變成潛伏者的人數為αIkSkN\frac{\alpha I_kS_k}{N}NαIk?Sk??。
(3)(3)(3)潛伏者以概率β變成感染者,則在單位時間\beta 變成感染者,則在單位時間β變成感染者,則在單位時間t內,第內,第內,第k個城市中由潛伏者變成感染者的人數為個城市中由潛伏者變成感染者的人數為個城市中由潛伏者變成感染者的人數為βEk\beta E_kβEk?。
(4)(4)(4)感染者恢復的概率為γ\gammaγ,則在單位時間ttt內,第kkk個城市中由感染者變成康復者的人數為γIk\gamma I_kγIk?。
(4)(4)(4)感染者死亡的概率為ω\omegaω,則在單位時間ttt內,第kkk個城市中因感染傳染病而死亡的人數為ωIk\omega I_kωIk?。
(5)(5)(5)因人口流動導致的易感者、潛伏者、感染者和康復者的人口數量差為ΔnS,ΔnE,ΔnI,ΔnR\Delta n_S,\Delta n_E,\Delta n_I,\Delta n_RΔnS?,ΔnE?,ΔnI?,ΔnR?。
此時,五類人群的人數隨時間的變化情況可用如下的動力學方程表示:
1. 模型求解
使用二維元胞自動機方法,假設種群總數目為NNN×\times×NNN的元胞空間,每一個元胞代表一個種群個體,元胞的領域采用半徑為111的VonNeumannVon NeumannVonNeumann鄰居,每一個元胞在下一時刻的狀態取決于自身及其領域中的元胞在當前時刻的狀態,個體的狀態逐步影響到周圍鄰居,從而導致整個元胞空間的變化。
采用s(i,j,t,k)s(i,j,t,k)s(i,j,t,k)表示城市kkk、坐標為(i,j)(i,j)(i,j)的元胞在ttt時刻的狀態。
每個元胞有666種狀態:
(1)(1)(1)空置狀態,此狀態下元胞不可被個體占據,始終保持此狀態不變;
(2)(2)(2)健康狀態,在某個元胞的領域內如果存在感染者,那么該元胞會以概率α\alphaα成為潛伏者;
(3)(3)(3)潛伏者,在某個元胞的領域內如果存在感染者,那么該元胞會以概率β\betaβ成為感染者;
(4)(4)(4)感染者,感染者以概率γ\gammaγ獲得免疫,成為康復者;以概率ω\omegaω死亡,成為死亡者;
(5)(5)(5)康復者,獲得絕對免疫的人,將不會再受到該類傳染病的傳染;
(6)(6)(6)死亡者,感染者因病死亡,成為死亡者。
2. 城市居民減少外出對疫情發展的影響
當居民和城市有較強的防疫意識時,會進行居家隔離,于是城市中的人口流動密度(動態元胞減少)降低。我們研究并比較了三組不同人口流動密度時的疫情發展規律。如圖4所示,三組圖分別表示人口流動密度為0.8,0.6和0.4時的傳染病傳播動態變化。
流動密度較低時,相對應的圖中的白色元胞越多,說明居家隔離措施執行嚴格,市民大多數處于靜態狀態。模擬結果顯示,在人口密度依次取0.8、0.6以及0.4時,單日最大感染人數分別為31380、16296和97,最終死亡人數分別為11281、8497和16,兩者都大大降低。因此,市民居家隔離,減少外出能降低疫情傳播,是全民參與抗疫的主要方式。
3. 城市間人口流動對疫情發展的影響
為了研究城市間人口流動對疫情發展的影響,我們在人群總人數為N=25N=25N=25萬的元胞空間中建立了5個城市,研究不同城市間的人口流量密度與病毒擴散的關系。如圖5所示,我們假設病毒在中心城市爆發,我們分別設置城市間通道的人口流量密度為0.8,0.6,0.4,0.2,發現當人口流量密度越大,即兩個城市間人口流動越大時,感染人數越多;當人口流動密度為0.6和0.8(大于0.6)時,病毒的擴散不受影響,仍然會在城市間傳播;當人口流動密度為0.2和0.4(小于0.4)時,能有效抑制病毒在城市中的擴散。由此,我們發現,降低城市間的人口流動,實行城市封控政策對抗擊疫情具有重要作用。
五 基于防疫政策的修正模型
自2019年以來,新冠突襲無疑成為人類史上的一大災難,所幸我國政策制定者采取了有效的政策,舉國抗疫,遏制了疫情的發展,保護了人民的生命財產安全。這些政策和手段也為我們建立模型提供了參考。
(1)當病毒在人群之間傳播時,感染者和易感者戴口罩都能有效遏制病毒的傳播;
(2)當病毒在大范圍人群中爆發時,所有人居家隔離,宅家抗疫是對疫情傳播的有效打擊;
(3)當病毒在大范圍人群中爆發時,對該范圍地區及時封控,能阻斷病毒向其他地區擴散;
(4)實行“早發現,早隔離”,增大檢疫次數,并將潛伏者和感染者集中治療(建立方艙醫院)能有效控制疫情;
(4)人們及時注射病毒疫苗,能增加人群的整體免疫能力。
現實生活中,人們會因疫情的變化而做出相對應的政策調整,以此來實現病毒的“動態清零”。通過上面的分析,考慮人們帶口罩,實行“早發現,早隔離”政策以及全民打疫苗時的情況。
由所建立的SEIRDSEIRDSEIRD模型可知,如果能通過政府制定的政策影響到模型中的系數α,β,γ,ω\alpha,\beta,\gamma,\omegaα,β,γ,ω,則可間接達到影響到傳染病傳播的目的。
假設政府實施如下政策:
(1)所有人口非必要不外出,即使外出在公共場所也必須佩戴口罩,并加緊研發傳染病疫苗等,則所有人被感染的概率將會降低λ1\lambda_1λ1? ;
(2)將與感染者密接后的潛伏者全部集中隔離并進行治療,降低其轉化為感染者的概率,使潛伏者以概率λ2\lambda_2λ2?直接康復;
(3)將所有感染者集中隔離管理與治療,使其康復幾率提升λ3\lambda_3λ3?,死亡幾率降低λ4\lambda_4λ4?。
基于如上假設,得到修正的SEIRDSEIRDSEIRD模型如下:
2 “全民戴口罩”
研究人員發現,感染者戴口罩和易感者不帶口罩與感染者不戴口罩和易感者戴口罩導致的病毒感染概率并不相同。我們只研究全民(5類人群)戴口罩時的病毒傳播情況。戴口罩能降低感染人群將病毒傳染給易感人群的概率,為此,在SEIRD模型的基礎上,減小α\alphaα的值。取α=0.05,β=0.5263,γ=0.00861538,ω=0.000522308\alpha =0.05,\beta =0.5263,\gamma=0.00861538,\omega=0.000522308α=0.05,β=0.5263,γ=0.00861538,ω=0.000522308,如圖6為全民戴口罩時疫情的發展趨勢,結果表明,疫情在291天時達到最大感染人數,當天感染人數為501135,最終的免疫人群數量為937702人,死亡人數為56938人。戴口罩能推遲疫情爆發的時間點,較小程度的降低感染人數和死亡人數,不能從根本上阻斷病毒的傳播。
“早發現,早隔離”
“早發現,早隔離”是控制感染源的一種抗疫措施,通過病毒檢疫發現感染者并將其集中隔離與治療。此措施能降低α\alphaα、β\betaβ和ω\omegaω,增大γ\gammaγ。取α=0.04,β=0.4,γ=0.02,ω=0.0002\alpha =0.04,\beta =0.4,\gamma=0.02,\omega=0.0002α=0.04,β=0.4,γ=0.02,ω=0.0002,如圖7為采取該措施時疫情的發展趨勢。結果表明,感染人數在503天時達到峰值,當天有143433人感染,最終有7801人死亡。與SEIRD結果相比,該措施有顯著抗疫效果,其不僅能大大降低感染人數和死亡人數,也能推遲疫情爆發期,使人們在疫情爆發前做好防疫措施。
我們也研究了在疫情爆發前加強防疫措施對疫情發展的影響,上述疫情在503天時感染人數達到峰值,為了降低該數值,在400天時嚴格執行“早發現,早隔離”的防疫措施。如圖8為在400天時加強抗疫后的疫情趨勢,結果表明,感染人數在445天時感染人數達到峰值,當天有83245人感染,最終有3825人死亡。與在疫情爆發前不加強防疫相比,感染人數和死亡人數大大降低。因此,在疫情爆發前嚴格落實防疫政策,加強防疫措施是防疫重要舉措。
“全民打疫苗”
城市全體居民注射疫苗是抗擊病毒的最有效措施,也是根本措施。在SEIRD模型中,假設疫苗只對易感人群有效,當易感人群注射疫苗后直接轉化為免疫人群,于是SEIRD模型動力學微分方程變為:
在該模型中,我們取與SEIRD相同的參數來研究全民注射疫苗后的疫情發展趨勢,其中,η\etaη=0.01,即每天有0.01×\times×S 數量的易感者注射疫苗并轉化為免疫者。如圖9為注射疫苗后的疫情發展趨勢,結果表明,當疫情經過500天時基本結束,單日最大感染人數為10698人,最終死亡人數為1526人。與SEIRD結果相比,注射疫苗是抗擊疫情的絕對途徑,能將感染人數與死亡人數降至最低,是控制疫情的最有效措施。
總結
國家帶領全國民眾成功狙擊病毒的政策和舉措為我們建立模型提供了參考。帶口罩,居家隔離,城市封控,方艙醫院 (“早發現,早隔離”), 疫苗等防疫措施和政策共同實現了病毒的“動態清零”。戴口罩不是消滅病毒的根本方法,但其能大大推遲疫情爆發的時間,實行“早發現,早隔離”是抗擊病毒傳播的有效方式,“全民打疫苗”是結束疫情的最有效方式并且在單日感染人數達到峰值前加強抗疫措施能改變疫情走勢,降低感染人數和死亡人數。
本文所涉及到的matlab CA 代碼已經在GITHUB開源,鏈接如下:
https://github.com/Bigfoots/Epidemic-model-based-on-Cell-automatic
求解微分方程的代碼網上有許多,我用的PYTHON求解微分方程。
總結
以上是生活随笔為你收集整理的基于SEIRD和元胞自动机(CA)模型的传染病发展趋势预测的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java fast math,Java
- 下一篇: Redhat7.3安装配置Telnet详