新冠數據整理和簡單分析(三)—— 使用Anylogic進行仿真實驗

新冠數據整理和簡單分析(三)—— 使用Anylogic進行仿真實驗

簡單介紹

在上一篇文章中我試圖使用Optuna的超參數擬合技術來求更復雜的SIR模型變種,但是遇到了數據無法觀測的問題(潛伏期和無症狀患者無法觀測),因此在這篇文章中,我們換一個角度,使用系統動力學模型來仿真更復雜並且貼近現實的COVID-19傳染情景,便於大家瞭解病毒的傳播過程。

模型介紹

SIR

首先,先構建一個最簡單的SIR模型。SIR模型假設總人口(隨時間不變的常數)是由三種類型的人羣組成的,分別是易感染者、感染者、移除者,其中移除者包括痊癒人羣和死亡人羣兩類。我們先來看一下這個模型大概的結構。
SIR
在這個模型中我們要注意兩個Flow過程,分別對應感染和移除。感染是從易感者進入感染者人羣的過程。假設初始狀態下感染者1人,易感者人數即爲總人口-1人,在本例中是等於9999。而一個感染者一天接觸10個人,並且感染概率是0.05的話,那麼一天實際上一個感染者就可以感染半個人。但是需要注意的,如果隨着感染人數增加,那麼感染者每天接觸的人羣中也可能會出現感染者,而我們知道感染者之間無法進行互相傳播二次染病,因此我們還要考慮感染者接觸人羣中易感者的人數,可由易感者/總人口求得。最後,我們就可以得到感染過程的表達式:
當前感染人數 = 每天接觸人數 * 當前易感者人數 / 總人口 * 感染概率 * 當期感染者人數
接下來分析一下移除流的具體過程。移除流反映從感染者進入移除者的過程。爲了簡化問題,我們假設這個病毒沒有致死性,那麼的話病好只是一個時間的過程。假設該病疾病週期爲7天,也就是說從得病到康復只需要7天的時間,那麼的話,每天我們都恢復了“1/7的健康”。從這個角度講,我們就可以將每天的移除流定義爲:
當期移除人數 = 感染者 * 1 / 疾病週期
以上,我們便構建了整個動力學模型的流程,接下來看一下仿真結果。
SIR結果

SEAIR-C

這是一個更復雜的自定義模型。我將總人口進一步區分爲易感者、潛伏者、有症狀感染者、無症狀感染者、康復和死亡,同時我還加入了政府管控力度的模擬。但是這個模型只供參考,其數據和參數設置沒有任何現實意義。我們來看一下這個模型的構造。
SEAIR-C
在我的參數設置下(按照珍珠號給出的統計報告,無症狀患者佔總感染者的40%左右),仿真出來的結果大概是這樣的:
SEAIR-C結果
這個圖像模擬的是政府在初期不防控,在時刻45時達到防控最高峯的情況,防空力度的具體函數是一個隨時間變化的weibull distribution。根據我的多次模擬結果顯示,無症狀患者比例越高,那麼該病對生命的威脅就越小,但是,卻會出現遲遲無法完全消除該病的情況(函數爲長尾)。相反,如果有症狀患者比例高,那麼該病在爆發期所產生的死亡量就大,但是這些有症狀患者更容易被發現,隔離和移除,所以往往這種情況下病情在相同管制力度下持續的時間更短。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章