您好,登錄后才能下訂單哦!
這篇文章主要介紹了怎么用Python進行預測疫情,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
編程環境:anaconda下Spyder。
數據來源:整理自國家衛生健康委員會官網。
需要安裝的依賴庫有:scipy。scipy是一個用于數學、科學等領域的開源科學計算庫,其建立在Numpy之上,可用于處理積分、優化、常微分方程數值解的求解、信號處理等問題。本文主要用于函數擬合。
1).理論解釋
如何預測新冠肺炎的累計確診人數,目前常用的方法有基于SIR的傳染病模型,以及基于Logistic方程的方法等。SIR模型實現起來相對較復雜,本文將基于一個更簡單的模型——利用Logistic方程進行預測。
Logistic方程可用于描述,物種增長模型,當一個物種遷入到一個新生態系統中后,若該物種在非理想生態系統(存在天敵,食物、空間等資源緊缺等)中存在生存阻力,則物種數量大致呈現S型增長。開始產生一個緩慢的增長期,慢慢的呈現指數型爆發,后期隨著環境阻力的變化,逐漸趨于穩定。
用函數可以表示為:
參數的含義如下:
:表示隨著時間的變化,環境中物種的數量。
:表示環境中物種能達到的極限值。
:表示環境開始時期,物種的數量。
:表示增長速率,在圖形中展現的就是曲線的陡峭程度,越大,物種數量越快逼近N值。
:表示時間。
2).程序實現
程序中,首先定義待擬合函數,然后獲取“累計確診”人數數據,并利用curve_fit()函數進行參數擬合,得出需要擬合的參數。最后將擬合曲線和實際確診人數在同一圖中顯示,直觀觀測出模型效果。
通過將1月20日至2月8日的數據進行Logistic方程擬合,在2月9-11日三天預測數據和實際數據較為吻合。但在2月12日,官方的數據突然激增,這讓我們的模型失效。
在重新調整訓練數據,我們選擇將1月20日至2月26日的數據作為訓練數據,2月27-28日數據作為對照數據,可得到新的擬合曲線,預測值和實際值都相對較為吻合。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“怎么用Python進行預測疫情”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。