最近冠狀病毒嚴重影響了我們的大農曆年,好友們一直讓我建一下傳染病模型,所以我簡單從數學上解說一點關於最近武漢冠狀病毒2019-nCoV的事情。
(事實上模型好建,但數據和程序方面不是我擅長,所以無法做精確的預測和模擬,歡迎有興趣的夥伴來合作完成。)
好了,進入正題。
一、模型假設和建立
傳染病模型是微分方程裡最基本的例題,現在很多國際課程的高中課本都會涉及,不像筆者那年代必須到大二才能夠涉獵。這裡我會考慮從兩個方向同時建立:微分方程和馬可夫鏈,雖然增加了複雜度,但分析起來也會變得更全面。
一般的傳染病是人口增長模型的變體。正常人口增長是指數遞增,即
這裡P是population,r是增長率,t是時間,這是高中課本能解決的難度。但傳染病的人口存在上限,最粗略地理解,受感染人口絕對不會超過現存人口總數,而且假設傳染過程是針對未感染人群,這種叫Logistic model,
這裡P_max是人口總數,也是感染者的最大量。這是一般理科生能夠推導的結果。
基本模型出來後,究竟在怎樣的範圍內討論才是適合呢?事實上一般不會對全國進行建模,而是對相對封閉的區域進行局部建模。當需要進行全國建模的時候,會以多個局部的形式進行建模。
接下來是對一個局部進行最基本的傳染病模型建模。現時傳染病學對不同階段的人群大致分為這幾類:
· 健康人群H;
· 帶菌者(暫不考慮超級帶菌者)V;
· 發病者S;
· 病後康復者(可視作帶抗體,這裡不細分)R;
· 不幸死亡病人D。
那麼我們建立這樣的狀態轉換圖:
其中狀態之間的轉換是單方向的,這裡我們可以設置對應的參數做為轉換率,而事實上,很多報導的統計數據也是針對這裡的轉換率,而一般百姓最關心的是從H到S的總體轉換率,因為這個才是我們關心的感染率。(對於一般感冒來說,帶菌不發病會當作沒事;近期提到的輕症自愈也是屬於這一範疇裡)
可列得方程:
再加上P=H+V+S+R+D作為總人口約束條件,就完成簡單模型的建立。這也是當年SARS的預測模型,這個模型缺點在於比較難解,實驗室一般會使用數據和路徑分析進行模擬推演來預測往後的變化。
如果解的話,會使用向量,設置A=(H,V, S, R, D)。然後各個轉換率r就會變成一個馬可夫矩陣,前後兩個模型的r在計算上有調整。
從微分方程來講會更加難算。
但是矩陣分析的好處是方便模型優化,例如可以發現R和D兩種狀態,是不會重新進入H被重新感染的,它們在馬可夫鏈中被稱為AbsorbingStates,吸收狀態,像黑洞一樣有進沒出。這時候我們進行分塊:
其中A區是正常流動的人口,B是在醫院住的,D是已經脫離模型考慮範圍的:
矩陣A是對角的,這裡很多計算可以操作。
例如在現在當前疫病早期,偏小的時候,可以考慮把模型整合、降維(H, V, S, R, D)-> (H, V, S):
然後將「康復/死亡」這個狀態納入總非感染人口:
這在模型上可行,是因為2019-nCoV並不致命,治療方案出來後,總體死亡率不會高於3%。
那麼馬可夫模型給我們一個很方便的計算結果:
解出來會得到很有趣的結果:
所以,如果是一個穩定狀態下,例如感染率=10%,發病率=80%,康復率80%,那麼H,V,S三類別的人口應該是8:1:1。
事實上從V到H佔據了很大一部分的轉換,以普通感冒為例,很多人都會直接吊針或者用泡騰片「把感冒壓下去」,這些都是對輕症加速消除症狀的處理方式,這個模型裡設為0,其實是過分的保守。
二、關於數據分析
這裡不討論具體的數據,因為即使今次2019-nCoV比SARS反應迅速、管控到位,初期數據難免有瞞、有漏,因此生硬地套入模型模擬並不合理。
假如抽取武漢封城以來的獨立數據,倒是有一定的參考價值,但筆者不在前線,無法給到分析。從截至25日的數據來估摸,因為禁足的呼籲而令「健康者-帶菌者」無法充分接觸,感染率r_HV大幅下降;死亡率也從早期5%左右掉至3%左右,加上死亡案例多是自身攜帶慢性疾病,實際死亡率會更加低。因此
按此比例計算健康人口與發病人口最壞比例應為:
事實上在武漢範圍內情況比這好很多,可以反推,做好個人防護措施,感染率遠不到10%。
三、關於傳染路徑
那麼模型本身是不是脫離了數據就沒用呢?這是兩個層面的事情,數據本身能夠給到感性的分析,進行定性闡述,必須需要模型。再一次,假如有同好能夠提供精確的數據,我很樂意繼續對疫情進行進一步分析,為國效力。
這裡給出另一個圖表,是一個團隊分析一個武漢家庭的傳染路徑。
從圖可以看到,家庭的日常親密生活接觸,可以讓感染率提高到超過80%,這是相當可怕的事情,從馬可夫鏈分析來看,80%感染率意味著10個人裡面只有1個是健康者,有這麼高感染率,連普通感冒也會自愧不如。(所以還是乖乖呆家吧)
四、解讀一段來自《柳葉刀》的報告
借用《柳葉刀》的報告一用,說幾個關於如何科學解讀統計結果的問題。這是截取了一篇對比分析武漢流感、12年中東流感、SARS的數據分析。
當我們看這個表格,需要注意但需要保持理智地觀察這幾條:
· Age, years(range);
· Male : female sex ratio;
· Symptoms.
前兩條是大家很關心但其實沒什麼用的,當流感病毒本質被定性為RNA病毒後,RNA其實並不對性別和年齡有感染、感染的差異,這是在定性之前、或者對後續變異的觀察點。所以不用在意性別年齡的差異,同時任何性別年齡段的人也不能大意。
接下來是症狀。我們看到2019-nCoV接近SARS是因為各種症狀發生比例呈現明顯的正相關,雖然同地區略有差異,但排序下來兩種中國流感都是一樣的排序。觀察中東流感中間有一項72%比較突出,體現為該病毒發病時更容易令人乏力(Dyspnoea),而國內兩種流感在這方面都比較弱一點點。這是科學家們劃分病毒種類的重要依據。
五、結語
最後簡單說一下,年前一份國外高校做的預測,說國內潛在帶菌者有3000-4000人,這個模型是另一個模型,是根據交通運算人流做的樣本檢測。模型比較簡單,因此數據可信性不低(但誤差範圍和方差也很大),實際參考價值不大。事實上,當前確診人數接近2000,這裡都是明確發病的人數,也無法排查那些是第一代感染者。後面的第二、第三代發病者肯定越來越多,這時候就必須使用微分方程來模擬。同時,按當前醫療能力及研發能力,在疫情完全進入適用模型階段之前,治療方案會進行得更快。