前幾日做的是關(guān)于第二天新增確診病例的預(yù)測(cè),但是發(fā)現(xiàn)那個(gè)實(shí)在是太簡(jiǎn)單了,因?yàn)橐伤撇±凶詈蟊淮_診成肺炎的比例基本是不變的,在excel上把數(shù)據(jù)點(diǎn)畫上去,然后畫一條最優(yōu)擬合線就完事了。
昨天突然意識(shí)到,自己其實(shí)有能力做一個(gè)關(guān)于疫情整體情況的模型,所以今天就動(dòng)手操作一下。
模型

這次模型中有五類人:
? ??- suseptible(可感人群)
? ??- infectious(可以感染他人,但是由于種種原因沒有被隔離,比如處于潛伏期,或者病情較輕,沒有放在心上等。沒有任何官方的數(shù)據(jù)來(lái)表明這類人的數(shù)量)
? ???- diagnosed(被確診而且被隔離,無(wú)法傳染其他人。官方對(duì)于這類人的數(shù)量有明確的數(shù)據(jù))
? ???- recover(病情好轉(zhuǎn)出院,獲得免疫能力,無(wú)法被再次感染)
? ???- death(由于病重,不幸死亡)
有四個(gè)變化率:
? ???-? 每天被感染的人數(shù)
? ???- 每天被隔離治療的人數(shù)
? ???- 每天病情好轉(zhuǎn)出院的人數(shù)
? ???- 每天死亡人數(shù)
接下來(lái),我們可以寫出他們變化率的表達(dá)式:

這一次我們只關(guān)注和
這兩個(gè)量,不去計(jì)算疫情結(jié)束時(shí)的死亡和康復(fù)人數(shù)(如果想知道這兩個(gè)量的話,看看死亡率和康復(fù)率的相對(duì)大小就知道了 ------ 人最后要么康復(fù),要么死亡。按照現(xiàn)在的數(shù)據(jù),如果不及時(shí)開發(fā)出新的治療方法的話,后果真的很嚴(yán)重)
參數(shù)
好,接下來(lái)我們來(lái)看看如何確定這四個(gè)參數(shù)。
最好估計(jì)的就是
(康復(fù)率)和
(死亡率)。根據(jù)丁香園的數(shù)據(jù),
對(duì)于
和
,我們可以做以下推導(dǎo):

這里我們可以得到的量只有和
。也就是說(shuō),對(duì)于相同的
和
,
,
和
可以有不同的解。不同的參數(shù)對(duì)應(yīng)的模型肯定不一樣,但是好在不是所有的模型都是最好的,我們可以想辦法通過(guò)先找到最符合現(xiàn)實(shí)的模型,反過(guò)來(lái)求出這些參數(shù)值,然后使用通過(guò)這種方法求出的參數(shù)來(lái)進(jìn)行預(yù)測(cè)。
思路:
和起始的
必須先確定其中的兩個(gè),才能求第三個(gè)值。那么先確定哪個(gè)呢?
是最難估計(jì)的了,那么我們就先確定初始的感染人數(shù)吧。新型冠狀病毒的潛伏期的平均值有的專家說(shuō)是10天,有的說(shuō)是7天,我們選擇保守一點(diǎn)的估計(jì),7天。也就是說(shuō):
? ??????????????????????????????????????????????????????????????
第二個(gè)參數(shù)我們選擇。
的取值范圍應(yīng)該在0-1之間,如果大于1,那么就是說(shuō)同一批人在感染了另一批人之后的同一天住進(jìn)了醫(yī)院,這明顯不符合事實(shí),那么我們就可以用暴力的方法,將0-1的值遍歷一遍,每一遍都求一個(gè)最優(yōu)的
,最后看看當(dāng)
取哪個(gè)值的時(shí)候這三個(gè)參數(shù)是最優(yōu)的
公式推導(dǎo):
關(guān)于
的導(dǎo)數(shù):

設(shè)置損失函數(shù)并對(duì)
求導(dǎo):

更新公式:

代碼實(shí)現(xiàn):
模擬每天的變化:
計(jì)算損失:
更新
:
數(shù)據(jù):
在建模的過(guò)程中最令我頭疼的的就是數(shù)據(jù)了,搜遍了全網(wǎng)也也沒有發(fā)現(xiàn)任何一家媒體把疫情的歷史數(shù)據(jù)整理公開,雖然丁香園提供了歷史數(shù)據(jù)圖,但是并沒有把所有的數(shù)據(jù)公開......
只有國(guó)家衛(wèi)生健康委員會(huì)和央視新聞從1月19號(hào)開始每天播報(bào)確診人數(shù)(可以從丁香園的實(shí)時(shí)播報(bào)查到:https://3g.dxy.cn/newh5/view/pneumonia_timeline?whichFrom=dxy)。也就是說(shuō),1月19號(hào)之前的數(shù)據(jù)要么根本就沒有,要么就不可信......疫情可是從去年12月就開始了呀。
不管了,姑且先用這些數(shù)據(jù)吧
測(cè)試
初始化:
第一天(1月19號(hào))的(確診人數(shù))是291,假設(shè)潛伏期為7天,那么
就是2037。
和?
的取值先隨便取,后面還要遍歷搜索
遍歷搜索:
看來(lái)當(dāng)初始,
, 且
的時(shí)候,模型輸出和真實(shí)數(shù)據(jù)擬合的是最好的。接下來(lái)把最好的
也求出來(lái)吧。(在運(yùn)行代碼之前還要再初始化一遍)
我們知道,當(dāng)大于0的時(shí)候,確診人數(shù)會(huì)成指數(shù)上漲,現(xiàn)在看來(lái)情況依然不是很好啊
把最后擬合出來(lái)的圖畫出來(lái)康康:
嗯,看起來(lái)擬合的不錯(cuò),模型的可信度還是有一些的
由于這世界上還沒有沒有任何關(guān)于的數(shù)據(jù),讓我們用建好的模型來(lái)估計(jì)一下
的大小和歷史變化吧
注意:這個(gè)結(jié)果是基于:模型結(jié)構(gòu)沒有問(wèn)題,數(shù)學(xué)推導(dǎo)沒有問(wèn)題,數(shù)據(jù)沒有問(wèn)題,各種假設(shè)沒有問(wèn)題,初始人數(shù)沒有問(wèn)題等等才得到的。因此這張圖僅供參考,本人無(wú)意制造恐慌。
根據(jù)模型輸出的結(jié)果,截止到1月26號(hào),已經(jīng)有5萬(wàn)多人被感染了,只是這5萬(wàn)多人由于各種各樣的原因沒有被檢測(cè)出來(lái)。大家要注意保護(hù)好自己呀,現(xiàn)在被確診的人數(shù)可能僅僅只是所有被感染人群的冰山一角
至于什么時(shí)候情況會(huì)好轉(zhuǎn)呢?現(xiàn)在從模型輸出的數(shù)據(jù)上來(lái)看還沒有好轉(zhuǎn)的跡象,但是從丁香園的數(shù)據(jù)來(lái)看,疑似人數(shù)的增長(zhǎng)已經(jīng)放緩了
而且鐘老已經(jīng)放出話了:
也許明天就是轉(zhuǎn)折點(diǎn)呢!
--------------------------------------------------2月5日更新
上面的求導(dǎo)和代碼有些錯(cuò)誤:
1)求導(dǎo)的時(shí)候少乘了個(gè)負(fù)1
2)代碼也寫的有問(wèn)題,改正過(guò)代碼在這里:
