最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python模擬預(yù)測一下新型冠狀病毒肺炎的數(shù)據(jù)

 更新時間:2020年02月01日 10:29:45   作者:自由民  
這篇文章主要介紹了python模擬預(yù)測一下新型冠狀病毒肺炎的數(shù)據(jù) ,需要的朋友可以參考下

大家還好嗎?

背景就不用多說了吧?本來我是初四上班的,現(xiàn)在延長到2月10日了。這是我工作以來時間最長的一個假期了??上囊踩ゲ涣恕4诩依?,沒啥事,就用python模擬預(yù)測一下新冠病毒肺炎的數(shù)據(jù)吧。要聲明的是本文純屬個人自娛自樂,不代表真實情況。

采用SIR模型,S代表易感者,I表示感染者,R表示恢復(fù)者。染病人群為傳染源,通過一定幾率把傳染病傳給易感人群,ta自己也有一定的幾率被治愈并免疫,或死亡。易感人群一旦感染即成為新的傳染源。

模型假設(shè):

①不考慮人口出生、死亡、流動等情況,即人口數(shù)量保持常數(shù)。

②一個病人一旦與易感者接觸就必然具有一定的傳染力。假設(shè) t 時刻單位時間內(nèi),一個病人能傳染的易感者數(shù)目與此環(huán)境內(nèi)易感者總數(shù)s(t)成正比,比例系數(shù)為β,從而在t時刻單位時間內(nèi)被所有病人傳染的人數(shù)為βs(t)i(t)。

③ t 時刻,單位時間內(nèi)從染病者中移出的人數(shù)與病人數(shù)量成正比,比例系數(shù)為γ,單位時間內(nèi)移出者的數(shù)量為γi(t)。
模型為



其中,β為感染系數(shù),代表易感人群與傳染源接觸被感染的概率。γ為隔離(恢復(fù))系數(shù),我們對其倒數(shù)1/γ更感興趣,代表了平均感染時間(average infectious period)。S(0)為初始易感人數(shù),I(0)為初始感染人數(shù)。

按照[1]里面的代碼模型的感染人數(shù)是這樣的


現(xiàn)在的問題就是利用現(xiàn)有的數(shù)據(jù)找到新冠肺炎的β值,γ值等數(shù)據(jù)了。先把數(shù)據(jù)拔下來吧。從[3]上扒數(shù)據(jù),由于數(shù)據(jù)不多,就手工完成吧。保存到csv文件里。

然后把數(shù)據(jù)作圖


還有一個指標(biāo)是再生數(shù)R0=β/γ,大于1時人群中大部分才被感染[4]。世衛(wèi)組織1月23日的估計是R0在1.4到2.5之間[5],最新的根據(jù)前425例發(fā)病數(shù)據(jù)的估計值為2.2[6]。

文章[7]中的按一般病毒性肺炎恢復(fù)期25天計算得到的γ值為0.04。

關(guān)于β值和初始易感人群,[7]的作者采用的方法是先估計一個區(qū)間,然后用最小二乘法找到最佳參數(shù),β≈3.57*10^-5。S[0]的范圍為5000-30000人。[7]文章里有matlab代碼,我用python改寫一下,由于對最小二乘法法的實現(xiàn)比較陌生,嘗試了半天,最后我決定用最笨的辦法——窮舉法。就是用兩個嵌套循環(huán)將范圍內(nèi)所有β值和S0值都試一遍,計算每次嘗試結(jié)果與實際數(shù)據(jù)之間差值的平方和,平方和最小的一組β值和S0值用來做預(yù)測。代碼如下:

γ值設(shè)定為0.04,即一般病程25天

用最小二乘法估計β值和初始易感人數(shù)

gamma = 0.04
S0 = [i for i in range(20000, 40000, 1000)]
beta = [f for f in np.arange(1e-7, 1e-4, 1e-7)]
# 定義偏差函數(shù)
def error(res):
 err = (data["感染者"] - res)**2
 errsum = sum(err)
 return errsum

# 窮舉法,找出與實際數(shù)據(jù)差的平方和最小的S0和beta值
minSum = 1e10
minS0 = 0.0
minBeta = 0.0
bestRes = None

for S in S0:
 for b in beta:
  # 模型的差分方程
  def diff_eqs_2(INP, t):
   Y = np.zeros((3))
   V = INP
   Y[0] = -b * V[0] * V[1]
   Y[1] = b * V[0] * V[1] - gamma * V[1]
   Y[2] = gamma * V[1]
   return Y

  # 數(shù)值解模型方程
  INPUT = [S, I0, 0.0]
  RES = spi.odeint(diff_eqs_2, INPUT, t_range)
  errsum = error(RES[:21, 1])
  if errsum < minSum:
   minSum = errsum
   minS0 = S
   minBeta = b
   bestRes = RES
   print("S0=%d beta=%f minErr=%f" % (S, b, errsum))
print("S0 = %d β = %f" % (minS0, minBeta))

結(jié)果 S0 = 39000, β = 8e-6

上述程序耗時較長,只在探索時執(zhí)行,完了就注釋掉,用最優(yōu)參數(shù)進行預(yù)測。



預(yù)測最大感染人數(shù):23769 時間是在1月10日的33天后,也就是2月12日。

本文代碼:https://github.com/zwdnet/2019-nCov-SIRmodel

與[7]作者討論,我的算法是將S0與β作為獨立的兩個變量用兩個循環(huán)嵌套分別遍歷,他的做法是用每個S0的值代入微分方程算出相應(yīng)的β值。他的算法應(yīng)該更好一些,我正在嘗試。另外在微信公眾號上看到一篇更系統(tǒng)的關(guān)于此次疫情的數(shù)學(xué)模型的文章:https://mp.weixin.qq.com/s/rgaJtA4jioLOCHs_oCauDg

再次聲明:本文只是我個人在家無聊的游戲作品,不是正兒八經(jīng)的預(yù)測。我也不是流行病學(xué)專業(yè)人士。祝疫情早日結(jié)束!武漢加油!中國加油!

總結(jié)

以上所述是小編給大家介紹的python模擬預(yù)測一下新型冠狀病毒肺炎的數(shù)據(jù),希望對大家有所幫助!

相關(guān)文章

  • Python中的re模塊之正則表達式模塊常用方法

    Python中的re模塊之正則表達式模塊常用方法

    re模塊是Python中使用正則表達式的最基礎(chǔ)的模塊,re模塊的這些功能覆蓋了正則表達式的常見用法,使用re模塊可以簡化字符串的模式匹配、信息提取、過濾替換、切分等操作,本文給大家介紹正則表達式模塊常用方法,感興趣的朋友跟隨小編一起看看吧
    2023-08-08
  • 解決Python3中的中文字符編碼的問題

    解決Python3中的中文字符編碼的問題

    Unicode是一32位編碼格式,不適合用來傳輸和存儲,所以必須轉(zhuǎn)換成utf-8,gbk等等。這篇文章主要介紹了Python3中的解決中文字符編碼的問題,需要的朋友可以參考下
    2018-07-07
  • python?Helium自動化庫的功能特性探索

    python?Helium自動化庫的功能特性探索

    這篇文章主要為大家介紹了python?Helium自動化庫的功能特性探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-02-02
  • python中合并兩個文本文件并按照姓名首字母排序的例子

    python中合并兩個文本文件并按照姓名首字母排序的例子

    這篇文章主要介紹了python中合并兩個文本文件并按照姓名首字母排序的例子,需要的朋友可以參考下
    2014-04-04
  • 詳解Python的hasattr() getattr() setattr() 函數(shù)使用方法

    詳解Python的hasattr() getattr() setattr() 函數(shù)使用方法

    這篇文章主要介紹了詳解Python的hasattr() getattr() setattr() 函數(shù)使用方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-07-07
  • Pytorch 抽取vgg各層并進行定制化處理的方法

    Pytorch 抽取vgg各層并進行定制化處理的方法

    今天小編就為大家分享一篇Pytorch 抽取vgg各層并進行定制化處理的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • 使用python-opencv讀取視頻,計算視頻總幀數(shù)及FPS的實現(xiàn)

    使用python-opencv讀取視頻,計算視頻總幀數(shù)及FPS的實現(xiàn)

    今天小編就為大家分享一篇使用python-opencv讀取視頻,計算視頻總幀數(shù)及FPS的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python中將兩組數(shù)據(jù)放在一起按照某一固定順序shuffle的實例

    python中將兩組數(shù)據(jù)放在一起按照某一固定順序shuffle的實例

    今天小編就為大家分享一篇python中將兩組數(shù)據(jù)放在一起按照某一固定順序shuffle的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python實現(xiàn)基于SVM的分類器的方法

    Python實現(xiàn)基于SVM的分類器的方法

    這篇文章主要介紹了Python實現(xiàn)基于SVM的分類器的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python 中 Meta Classes詳解

    Python 中 Meta Classes詳解

    首先,在認(rèn)識metaclass之前,你需要認(rèn)識下python中的class。python中class的奇怪特性借鑒了smalltalk語言。大多數(shù)語言中,classes僅僅是用于描述怎樣創(chuàng)建一個對象的代碼端。在某種程度上說,python中的class也是這樣的。
    2016-02-02

最新評論

棋牌| 沐川县| 鸡西市| 保定市| 六枝特区| 郸城县| 视频| 炎陵县| 高碑店市| 阳春市| 贵溪市| 内乡县| 库尔勒市| 饶平县| 石渠县| 农安县| 平潭县| 常德市| 潮州市| 梁山县| 肇庆市| 江口县| 深圳市| 阜新市| 济南市| 千阳县| 太和县| 察雅县| 安国市| 五河县| 化州市| 巩留县| 芜湖市| 张家界市| 彭阳县| 新蔡县| 富宁县| 安国市| 社会| 郎溪县| 大庆市|