溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python如何實(shí)現(xiàn)新型冠狀病毒傳播模型及預(yù)測(cè)

發(fā)布時(shí)間:2021-03-24 10:08:05 來(lái)源:億速云 閱讀:378 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)Python如何實(shí)現(xiàn)新型冠狀病毒傳播模型及預(yù)測(cè)的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

1.傳染及發(fā)病過(guò)程

一個(gè)健康人感染病毒后進(jìn)入潛伏期(時(shí)間長(zhǎng)度為Q天),潛伏期之后進(jìn)入發(fā)病期(時(shí)間長(zhǎng)度為D天),發(fā)病期之后該患者有三個(gè)可能去向,分別是自愈、接收隔離、死亡。

2.模型假設(shè)

潛伏期Q=7天,根據(jù)報(bào)道潛伏期為2~14天,取中間值;發(fā)病期D=10天,根據(jù)文獻(xiàn)報(bào)告,WHO認(rèn)定SARS發(fā)病期為10天,假設(shè)武漢肺炎與此相同;潛伏期的患者不具有將病毒傳染給他人的能力;發(fā)病期的患者具有將病毒傳染給他人的能力;患者在發(fā)病期之后不再具有將病毒傳染他人的能力;假設(shè)處于發(fā)病期的患者平均每天密切接觸1人,致使該人患病的概率為γ最初只有一個(gè)人類感染者;病情自然發(fā)展,沒(méi)有外部干擾。

3.模型公式

Python如何實(shí)現(xiàn)新型冠狀病毒傳播模型及預(yù)測(cè)

Python如何實(shí)現(xiàn)新型冠狀病毒傳播模型及預(yù)測(cè):人類感染該病毒的天數(shù)

Python如何實(shí)現(xiàn)新型冠狀病毒傳播模型及預(yù)測(cè): 第N天感染該病毒并且處于發(fā)病期的患者數(shù)量

Python如何實(shí)現(xiàn)新型冠狀病毒傳播模型及預(yù)測(cè) : Q天前新被感染患者,當(dāng)日進(jìn)入發(fā)病期的數(shù)量

Python如何實(shí)現(xiàn)新型冠狀病毒傳播模型及預(yù)測(cè): 當(dāng)日發(fā)病期滿,不再具有傳染能力的患者數(shù)量

4.模型初始值

根據(jù)假設(shè),最初只有一個(gè)人類感染者,所以:

Python如何實(shí)現(xiàn)新型冠狀病毒傳播模型及預(yù)測(cè)

5.實(shí)際疫情數(shù)據(jù)

人類感染病毒且發(fā)病的初始日期:根據(jù)財(cái)新網(wǎng)的報(bào)道,官方通報(bào)首例不明原因肺炎是在12月8日,考慮到確診之前肯定已經(jīng)嘗試過(guò)各種治療方案無(wú)效后認(rèn)定為不明原因肺炎,所以有理由認(rèn)為該名患者在12月8日已經(jīng)處于發(fā)病期末端,根據(jù)假設(shè)發(fā)病期為10天,所以可以假設(shè)該名患者在11月29號(hào)發(fā)病,即N=1對(duì)應(yīng)11月29日。

日新增發(fā)病數(shù) Python如何實(shí)現(xiàn)新型冠狀病毒傳播模型及預(yù)測(cè)

近期疫情防控大事記:

Python如何實(shí)現(xiàn)新型冠狀病毒傳播模型及預(yù)測(cè)

從以上信息可以判斷核酸檢測(cè)試劑是在1月16日、17日大幅使用的,18日、19日確診大量病例,因此1月20日之前的確診病例數(shù)對(duì)模型參考意義不大。1月20日之后,可以認(rèn)為新發(fā)病例,發(fā)病即檢測(cè)。

截至1月20日24時(shí),國(guó)家衛(wèi)健委公告累計(jì)確診病例291

截至1月21日24時(shí),國(guó)家衛(wèi)健委公告累計(jì)確診病例440

截至1月22日24時(shí),國(guó)家衛(wèi)健委公告累計(jì)確診病例571

截至1月23日24時(shí),國(guó)家衛(wèi)健委公告累計(jì)確診病例830

截至1月24日24時(shí),國(guó)家衛(wèi)健委公告累計(jì)確診病例1287

所以:

1月21日新增確診病例:440-291=1491月22日新增確診病例:571-440=1311月23日新增確診病例:830-571=2591月24日新增確診病例:1287-830=457

考慮到:

1月20日之后發(fā)病即檢測(cè)確診檢測(cè)用時(shí)2日國(guó)外新增病例在個(gè)位數(shù),且不能保證發(fā)病即檢測(cè)等因素,暫不考慮新增病例應(yīng)該遞增,所以1月22日新增數(shù)據(jù)異常,舍去

使用上溯每日新增數(shù)據(jù),同時(shí)考慮到確診需要2天, 可以得到:

Python如何實(shí)現(xiàn)新型冠狀病毒傳播模型及預(yù)測(cè), Python如何實(shí)現(xiàn)新型冠狀病毒傳播模型及預(yù)測(cè), Python如何實(shí)現(xiàn)新型冠狀病毒傳播模型及預(yù)測(cè)

Python如何實(shí)現(xiàn)新型冠狀病毒傳播模型及預(yù)測(cè) 對(duì)應(yīng)11月29日 )

6.擬合確定 Python如何實(shí)現(xiàn)新型冠狀病毒傳播模型及預(yù)測(cè)

根據(jù)近期每日新增數(shù)據(jù)、模型初始值及模型公式,用最小二乘擬合得到 Python如何實(shí)現(xiàn)新型冠狀病毒傳播模型及預(yù)測(cè)

Python如何實(shí)現(xiàn)新型冠狀病毒傳播模型及預(yù)測(cè)

7.預(yù)測(cè)

患者數(shù)量:根據(jù)上文確定的模型及參數(shù),從11月29日(N=1)至1月27日(N=60)人群中累計(jì)處于發(fā)病期的人數(shù)如下圖所示:

Python如何實(shí)現(xiàn)新型冠狀病毒傳播模型及預(yù)測(cè)

根據(jù)模型,近期人群中患者數(shù)量計(jì)算如下:

Python如何實(shí)現(xiàn)新型冠狀病毒傳播模型及預(yù)測(cè)

人群中感染了病毒并處于發(fā)病期的患者數(shù)量,注意Pn一般需要延期2日才能確診

每日新增患者數(shù)量:

根據(jù)模型,近期人群中每日新增患者數(shù)量計(jì)算如下:

Python如何實(shí)現(xiàn)新型冠狀病毒傳播模型及預(yù)測(cè)

注意:圖中是人群中新增發(fā)病患者數(shù)量,可與晚2日的政府發(fā)布新增數(shù)量進(jìn)行對(duì)比。即22日新增患者數(shù)量可與24日政府發(fā)布的新增病例進(jìn)行對(duì)比。截至目前模型計(jì)算22日新增為369人,政府公布的24日新增病例457人

根據(jù)以上模型預(yù)計(jì)未來(lái)幾日的情況如下:

1月25日將新確診432例,人群中發(fā)病患者為4068人;

1月26日將新確診505例,人群中發(fā)病患者為4759人;

1月27日將新確診590例,人群中發(fā)病患者為5568人;

1月28日將新確診691例,人群中發(fā)病患者為6514人;

1月29日將新確診809例,人群中發(fā)病患者為7621人。

由于1月20日之后采取的各種措施,將導(dǎo)致發(fā)病期D下降,感染概率 Python如何實(shí)現(xiàn)新型冠狀病毒傳播模型及預(yù)測(cè) 下降,1月29日之后日均增長(zhǎng)勢(shì)頭會(huì)減弱。

8.模型代碼

import numpy as np
import matplotlib.pyplot as plt
 
gamma = 0.55
Q = 7
D = 10
P = np.zeros(300, dtype=np.float)
Psum = np.zeros(300, dtype=np.float)
for i in range(Q):
  P[i] = 1
for j in range(300-Q):
  P[j+Q] = P[j+Q-1]+P[j]*gamma
  if j+Q-D-Q >= 0:
    P[j+Q] -= P[j+Q-D-Q]*gamma
  if j+Q == D:
    P[j+Q] -= 1
plt.xlabel("N")
plt.ylabel("PN")
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.plot(range(1, 61), P[0:60])
plt.grid()
plt.show()

感謝各位的閱讀!關(guān)于“Python如何實(shí)現(xiàn)新型冠狀病毒傳播模型及預(yù)測(cè)”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI