當前位置 > 首頁 > 優秀會員推薦 > 從幾個傳染病模型定量地去理解當前的措施

從幾個傳染病模型定量地去理解當前的措施

來源:中國數據分析行業網 | 時間:2020-02-25 | 作者:數據委

 

(作者:劉程浩,CPDA廣州11期學員、經濟學碩士,擅長通過數據對業務流程進行分析和優化)

 

最近全國上下都在和NCP做斗爭,這次也通過參與了“抗疫”的全民戰爭,使我懂得了很多過去沒怎么重視,但是卻非常重要的道理。同時也對目前國家的一些措施有更深刻的理解。

 

道理,一般分兩種層面的理解,一種是定性的理解,簡單說也即是你知道做什么事是對的,從邏輯上理解為什么是對的;另一種是定量的理解,就是說你明白了做什么事是對的,也明白這件事做到什么程度,相應“做對”的效果有多大。

 

比方說這次全民對NCP這類抗呼吸道“傳染病”,從定性的角度來看,我認為是包含著如下這些道理:

 

對抗“傳”就是切斷和阻塞疾病的傳播途徑,例如“封城”、“社區交通管制”、“14天的隔離”、“戴口罩”,“勤洗手”…….,這些是為了切斷病毒攜帶者(包在括潛伏期內)把疾病通過人體移動、飛沫、體液等載體“傳”出去。

 

對抗“染”:譬如說這段時間宅在家也別只是吃喝追劇,要多做些室內健身運動;多喝一些有預防作用的“涼茶”;科研機構也緊鑼密鼓的開展研發疫苗……。這些措施都是為了增加人的抵抗力,降低萬一被病毒接觸造成的被感染可能。

 

對抗“病”:就是研發出治療NCP的藥物,無論是中藥還是西藥??傊褪潜M快將病人治愈,或者降低被感染者的死亡率。

 

上面這些道理,有一些是從小到大爸媽耳邊叮鈴、老師嘴上嘮叨,耳朵都聽出繭了的。

我當然知道做這些措施是可以抵抗傳染病,而且有些我也正在做。

但是有時候就是搞不明白,我認真去做和我應付去做這些事兒,區別有多大?

難道就只是影響自己健康而已,或者就只是影響一個社區?

我戴上普通的口罩,和沒帶口罩相比,當然我知道被感染的風險降低了,但是這對我周圍的人的影響到底有多大?

專家們說的R0>1和<1背后有什么更深一層內容?

……

等等很多疑問,在我這段時間宅在房間里認真看了幾個傳染病的模型后,很多都已經茅塞頓開,甚至感到驚嘆!

 

原來從定量的層面去理解這些“道理”,能比定性的理解有更深刻的印象!

下面就和大家分享下我的心得:

?

 

一、首先看最簡單的傳染病模型

?把這個模型看懂了,也就能從另一個角度了解為什么說一旦傳染病爆發,感染人數是呈指數級增長了。

 

簡單的指數級增長比較容易理解,比方說今天1個人得病,假設每次只傳染1個人,那么初始第0天1個病人,第1天就2個人病人,第2天就4個病人、第3天就8個人,第n天就2n……個人得病。

 

這個剛好是一個指數函數,底數為常數2,變化的是它的冪。

 

不過在傳染病研究領域,指數級的增長是從另外一個視角來看

?我們假設在某個時點某個區域內,不考慮出生和其他原因的死亡;也不考慮外部環境對傳染病的干預;不考慮人口流動;潛伏期也可以傳染;這種病無法治愈;時間的計量刻度是按照天。

 

初始化一些模型的變量

t時刻的易感染者(Susceptible)人數,用符號S(t)表示;

t時刻的被感染者(Infective)人數,用符號I(t)表示;

每個被感染者每天有效接觸且足以使人致病的人數為λ,這些λ均為健康的人,那么每天新感染的人數就是λI(t)

 

建立模型:

 

 

(1.1)式的模型左邊和右邊同時除以Δt,當Δt無限小或0時,就會得到導數的定義式

 

 

然后以此建立微分方程

 

解這個微分方程。第一個式子容易看出是一階線性微分方程,根據解這類微分方程的方法容易得到該方程的解I(t)?=?I0eλt。

I0eλt?也就是被感染者的數量隨著時間推移的變化規律。

看到這個常數e了嗎,以及e右上角的冪是不斷增大的,也就是為什么被傳染病領域說的感染的人數的增長是指數級了。

 

e的冪增長速度和直線比那是很快的,從這個最簡單的傳染病模型我們可以看出,只要隨著時間的推移t→∞,I(t)?→∞,也即是最終世界上全部健康人都會被傳染。

 

?被感染的人的數量是不是只根據一種指數級增長而變化呢,其實不是的。

 

解決傳染病感染人數增長快慢還有一個的關鍵就是λ,也就是控制已感染者接觸健康人的數量,讓這個值越小越好。

 

上圖不同的顏色曲線代表不同的λ值造成的感染人數變化。

可以看出,λ值越大,傳染人數增長的就越快!

 

假設最初只有1個人被感染,即I(0)=1時,不做任何干預和控制的前提下

當λ=4,也就是黑色的曲線到了第3天第4天后,幾乎就豎直的往上竄了,變化速度簡直就是火箭;

而當λ=1,到了第17天左右,感染人數才開始迅速上升

這2種增長速度的差異是相當驚人的,雖然人數只差了3個人。

 

當然極端情況下λ=0是最好的,因為只要從最初時刻發現病人迅速隔離,那么就能夠直接杜絕傳染病的蔓延。

 

從傳染病模型推導出來的不同指數級增長之間的差異如此的巨大,當時我是直接一個震撼:

這就是為什么要大家宅在家里別出去,背后數字上躍遷的可怕!

這也解釋了武漢人民做這么大犧牲,通過“封城”來阻斷疫情的發展的意義!

這也從定量解讀的層面闡述了小區、村落要封閉,雖然在短期內對生活帶來不便,但實際上對疫情控制有重要的意義!

 

但λ=0是這個是理想狀態,且不適合于普通的社會環境。因為那是在大家都對這個傳染病有了解和認知的情況下。而且某些傳染病的癥狀和普通可自愈(治愈)的疾病癥狀很相似,也就是人們一開始并沒在意,因此就會有后續的傳播。

 

不過對于已經收治的病人,本身傳染病病房隔離措施比較好,治療室里面假設儀器、醫護人員、消殺措施配置都到位的情況下,就能實現上面的目的??舍t療資源是有限的,因此當一個區域的醫療資源比較緊張或者用罄后,就必須補充或支援。

 

這個時候我們就看到了全國各地的醫療隊伍馳援武漢的場景,甚至看到了讓人心潮澎湃和淚目的各個醫療專家隊伍的請戰書。

 

 

感興趣的朋友可以接著往下看上面這個簡單傳染病模型推導的過程

接下來再逐步把模型的應用具體化一些,就是觀察某個區域的傳染速度。

?

 

二、SI?模型

?

這個模型看懂了,你就明白為啥戴口罩,哪怕帶自制的口罩不只是對自己負責,也是對這個社會負責。

 

?我們假設某個觀察區域的總人數N不變,不考慮區域內出生和其他原因的死亡,也不考慮人口遷移。

 

增加需要考慮的是,病人每日接觸到的人不全是健康的人,包括已經被感染的人群。這樣的話后者是不會再考慮進這個系統;

 

另外考慮到感染需要一定的條件,因此不是每次病人的接觸都會造成感染,存在一個感染的概率

模型的變量稍微調整如下:

t時刻的總人口數保持不變=N,用符號N(t) =N表示,;

t時刻的易感染者(Susceptible)人數,用符號S(t)表示;

t時刻的已感染者(Infective)人數,用符號I(t)表示;

 

可知,t時刻的N(t)= S(t) + I(t)

β為感染者接觸到易感染者后,易感染者被感染的概率;

 

每個已感染者每天有效接觸的人數為λ,但由于接觸到的人可能是已經被感染過的了,因此要剔除掉這部分人。

 

假設t時刻平均易感染人數占比為S(t)/N(t),那么每天每個已感染者能夠讓λ[S(t)/N(t)]β個健康者感染,那么每天新增的被感染人數為λ?[S(t)/N(t)]?β?I(t)。

 

建立模型:

 

建立模型:

 

然后以此建立微分方程

 

解這個微分方程,和上面的解法相比略有復雜,需要用到“常數變易法”。

 

首先,將第二個方程變形,S(t) = N(t) – I(t)代入到第一個方程得到

 

 

1.5)的解就是SI模型中受感染人數隨時間變化的值,如下

 

我們看式子(1.6)可以發現,感染率β成為影響傳染病傳染速度的又一個新增因子,由于它<1,而且λ和它直接相乘,說明它會直接影響感染人數的增長。

 

那到底影響有多大呢,數據分析告訴你。

 

同樣的,我們還是對比一下不同的傳染人數和感染率下,被感染人數的變化情況

假設某個時點在一個50萬人口的縣城,由于普及了公共衛生醫療,條件比較好,某種疾病的感染率β為10%,我們分別比對一下不同的有效接觸人數下感染人數增長的速度。

 

 

可以看到,由于感染率β值不高,傳染病傳染的傳播速度受到了大幅削弱

 

當λ=1,到了第40天,受感染人數僅接近55人,占總人口比例很??;

而當λ=4,要到第10天,感染人數也就達到上面這個水平!

這種雖然增長速度很快,但是受感染的力度被β大幅削弱了。

 

因此,和上面那個例子分析一對比,同樣的天數受感染的人數下降的有多快!

 

?那么假如對比另外一個縣城,人口也是50萬,假設衛生條件要差,感染率高達30%,我們再來分別比對一下不同的有效接觸人數下感染人數增長的速度。

 

可以看到,由于感染率β值是原來的3倍,傳染病傳染的傳播速度一下子就提升了

當λ=1,到了第40天,受感染人數接近12.3萬人,占總人口比例約25%;

而當λ=4,要到第10天,感染人數也達到上面這個水平!

?

 

另外,我們還可以看到感染人數的值I(t),實際上是機器學習里面的Logistics模型的變形,而它是有峰值的。

 

如下圖我們可以看出,假設λ=2,如果大家都講衛生,做好自己的防護,感染率從30%降到10%的話,感染的峰值出現的時間會從25天延長到90天。

 

 

現在我們再仔細想一下,為什么我們要出門戴口罩,不去和人肢體觸碰,要勤洗手,就是要大幅的降低病毒的感染成功率,也就是把感染率給降下來!

 

那我認真去做了,對社會有多少貢獻?

 

從這個計算中我們可以看出,如果戴口罩能將感染率能降3倍,那么傳染病造成的感染人數的增速,能夠下降上千倍!是55人和12.3萬人的區別??!

 

并且,如果注意個人防護,戴口罩出門、勤洗手勤消毒,就很可能把疾病傳染的速度給壓制下去,那是25天出現峰值和3個月后才出現的峰值的區別??!這段時間差內我們是可以做很多事情和干預措施的。

 

?這可真是事半功千倍!

 

?換句話說,不必奢求N95,你哪怕只買到了普通的醫用外科口罩,你對防止疾病傳播的貢獻,絕對超出你的想象!

 

 

 

有興趣的小伙伴,接下來可以看看上面結論的簡單推導過程

 

 

 

可見,變形后的方程左邊是一階線性齊次微分方程,而方程右邊≠0,所以先計算左邊=0的場景

 

 

 

下面求C,假設C=u(x),將上面的結論回代得原微分方程形式

 

 

我們把a= λβb= λβ/N(t)?代入得到上式中,就可以得到

 

不過,我們接下來再增加一些模型的復雜度,讓它再接近些實際。

 

三、SIS和SIR?模型

?這2個模型看懂了,你就更能深刻地理解各地醫護人員除了要馳援湖北、武漢外,為啥要用中國的基建狂魔的特有速度,在各地建設當地的“小湯山”和“方艙”。

 

另外,看懂了模型中的幾個參數的組合(其實不難懂),你就明白專家們說的R0>1和<1是咋回事兒了?

 

上面的模型中,我們假設某個觀察區域的總人數N不變,不考慮區域內出生和其他原因的死亡,也不考慮人口遷移??紤]了不充分接觸的場景,也考慮了感染率的場景,SIS和SIR模型的區別,在于下面2點:

 

SIS?模型增加需要考慮的是,某些傳染病病人是能夠被治愈的。不過由于自身沒有形成免疫(例如傷風、普通流感),康復的人還會有一定的幾率重新被傳染;

 

SIR?模型增加需要考慮的是,病人被治愈后,自身形成了免疫(例麻疹),康復后便終身不再被傳染;

 

因此模型的變量稍微調整如下

t時刻的總人口數保持不變=N,用符號N(t) =N表示,;

t時刻的易感染者(Susceptible)人數,用符號S(t)表示;

t時刻的已感染者(Infective)人數,用符號I(t)表示;

t時刻的康復者(Recovered)人數,用符號R(t)表示;

可知,對于SIS模型而言,t時刻的N(t)= S(t) + I(t)

??????對于SIR模型而言,t時刻的N(t)= S(t) + I(t)+R(t)

β為感染者接觸到易感染者后,易感染者被感染的概率;

γ為平均每日被感染者康復人數占總被感染人數的比率;

λ定義如前,為每個已感染者每天有效接觸的人數;

 

 

現在分別討論SIS和SIR模型

?先討論SIS模型

 

建立模型:

 

并在此上建立微分方程

 

如果剛才讀了SI模型的推導部分的小伙伴,其實很容易就能依據之前的方法得到(1.8)的解,這個解也就是SIS模型下被感染人數隨著時間變化而變化的值

 

 

這個看上去很多蝌蚪在游的公式,揭示了什么呢?

 

考慮了治愈和康復的情況,治愈率哪怕再低都好(假設只有10%),不考慮愈后自身產生免疫,得到治療和得不到治療之間的差異有多大?

 

我們假設還是那個50萬人口的小縣城,最初感染人數還是1,感染率還是30%,沒有封閉的措施,每天已感染者有效接觸人數λ=2,我們做一下對比。

 

 

我們看,在前提假設不變的情況下:

 

如果沒有得到治療,到了25天時感染人數出現峰值;

 

如果有得到治療,哪怕只有10%的治愈率,感染人數的峰值出現的時間都晚出現5-6天,不僅如此,感染人數的峰值也相差接近1萬人;

 

如果有得到治療,哪怕治愈率從10%只是上升到20%,感染人數的峰值出現的時間就能晚出現15天左右,不僅如此,感染人數的峰值也相差接近2萬人,減少了約40%!

 

現在我們可以定量的了解,我們國家發揮基建狂魔的優勢,迅速的在10天內建好“火神山”、“雷神山”,以至于全國各地都在抓緊時間搶建自己的“小湯山”和“方艙”,甚至征用黨校和學校、大型館場做“方艙”的意義有多大!

 

?每天多治愈一例病人,就意味著全體的傳染的人數會有機會大幅的降低。

這就是和時間的賽跑!

 

?另外,在這個模型里的幾個參數,能夠構建出我們經??吹轿恼吕飳<覀冋f的R0。

 

想要理解R0,就必須從這模型中的幾個參數理解開始。

I(t),代表t時刻被感染者的總數,這個已知;

λ,每個已感染者平均每天接觸到的能有效傳染的人數。這個容易理解;

β,已感染者平均能夠成功傳染給易感染者的概率,這個容易理解,感染率嘛;

γ,平均每天被感染者康復人數占總患病人數的比率,這個也容易理解,治愈率嘛;那么1/γ就是平均的傳染期(這個需要好好消化一下)。

現在開始講R0?(ReproductiveNumber),它代表了一個被感染者在整個傳染期內能夠進行繼發傳染的人數。以下圖為例,假設?λ= 2

 

 

上圖就是一個繼發傳染的代際圖,表示了如果λ= 2的時候被感染的速度在第1代時是1傳2,在第二代的時候是2傳4,如此以往,被感染的病人越來越多。這個時候我們說傳染病會爆發。

 

在不同的模型里面,由于參數的不同,R0的內涵是略有不同,但可以作為一個閾值來判斷在該模型下傳染病是否會最終爆發或終止。

 

以SIS模型為例,R0= λβ/γ。

它的物理意義把公式變形一下就好理解了,R0= λβ[1/γ],就是說R0代表平均每個被感染者在一個傳染期內,在感染率的約束下,能夠傳染有效接觸的人的數量。

 

換句話說這就是一個傳染病“殺傷力”指標

從上面的公式中,我們發現:

如果γ越大,也就是治愈率越高,那么一個傳染期就會拉長,R0就會越小。

如果λ越小,也就是被感染者接觸到健康人的數量越少,那么R0也會越小。這個很自然,你連傳染病傳播的土壤都給破壞了,它還怎么爆發呢?

 

如果β越小,也就是感染率越低,那么R0就會越小,這個就不在話下了。

 

因此,R0的內涵這一點上也說明了,武漢人民付出巨大犧牲采取的“封城”、全國人民“躺在家里不給國家添亂”、“出門戴口罩”、“勤洗手”、“10天建成一座‘火神山’”、“馳援武漢、馳援湖北”,等等措施都是有其重要的價值和意義的。

 

?回到R0本身我們再看:

如果R0>1,也就是說1個被感染者如果能夠在一個傳染期內傳染到至少1個人,那么邏輯上就知道整個群體被感染只是時間上的問題;

如果R0<1,也就是說1個被感染者連一個人都傳染不了了,那么傳染病就會最終被終止;

不過,R0的參數中,各個值都是在不斷的變化的,因此R0本身也不是個固定的值。但是他可以作為一個閾值來監測,越早發現它比1大,越有利于控制傳染病的后續“殺傷力”。

 

 

?然后是SIR模型

 

建立模型

 

 

并在此之上建立微分方程

 

方程(1.11)?是沒有解析解的。因此得轉到相平面來討論這個解的性質。

 

為了能夠在二維平面內顯示相軌線的變化,我們先通過一個特定的S(0)/NI(0)/N初始值,根據(1.11)式求出I(t)S(t)的相軌線方程。

 

s(t)=S(t)/N, s0= S(0)/N?i(t)=I(t)/N, i0= I(0)/N

 

 

做出相軌跡圖如下

 

上圖中的紅色箭頭是相軌跡中s(t)變化方向。

 

上圖(左)有一個顯而易見的認知在生活中是成立的,也就是說當健康人數比率逐漸下降時,說明有傳染病發生。當然了,被感染人數比率就自然會上升。

 

當感染人數比率達到峰值的時候,也就是當健康人數比率達到1/R0的時候。以上圖左為例,1/R0=0.1,也就是R0= 10(假設),那已經是一個相當高的惡性傳染病了水平了,或者說發生什么嚴重的事故了。

 

如果一開始R0控制的不夠好,例如R0偏大,此時1/R0出現在s0左側足夠遠,那么必然會有傳染病暴發的。像這次NCP來勢洶洶,其實主要原因倒不是我們國家的公共衛生條件多不好,而是錯過了黃金時期。到了后來才去大面積的去進行“刮骨療傷”,去對λ、β、γ這些有關R0如何降下來的措施下猛藥。

 

而上圖(右),一開始1/R0出現在最高值,于是迅速的往下滑,這就是因為缺少傳播者或者傳播的途徑非常難,最終傳染病終止了。而缺少傳播者,要么就是提前預警的早,做好了準備(如疫苗、公共衛生宣傳和建設),也可以是中途加大了干預(有專門的藥物,且很普及)、或遇到了對傳播不力的環境因素(如氣溫升高…..等);要么就是這種疾病傳染力不強。不過這次來看NCP本來可以是服從第二種的軌跡線的,希望這次的教訓之后,前事不忘后事之師,我們都能對自己的子孫后輩們負責。

 

有興趣的小伙伴,接下來可以看看SIR相軌跡方程的簡單推導過程

由(1.11)進行變形

 

當然了,還有更多的影響感染人數的因子的模型,本次文章沒有提到。

 

例如包含潛伏期的模型、考慮超級傳染者的模型、考慮傳染模式的模型……,出于篇幅及知識儲備所限,本次我就不再引用了。

 

最后還是不忘強調下,通過這次簡單的學習,我發現定量的去理解一個道理,有時候確實比定性的去理解它要深刻的多。我也就更深刻理解到這次全民抗疫行動的很多措施的意義。

腾讯分分彩图标 江西快3网站 江西11选5走势图大全 陕西十一选五预测号体彩十一选五走势 广西快3历史遗漏统计 天津十一选五走势图 多彩科技网辽宁快乐12 二分时时彩今天出的好 山西快乐十分牛 河南11选五开奖走势图 百度 腾讯证券开户