400-050-6600

鐘南山院士團隊新論文方法的啟發

來源:廣州數據分析師 / 作者:劉程浩 / 時間:2020-06-23

在5月12日,鐘南山院士的團隊在醫學雜志JAMA-Medical發表了最新研究成果“Development and Validation of a Clinical Risk Score to Predict theOccurrence of Critical Illness in Hospitalized Patients With COVID-19”。我翻譯成中文是“COVID-19的住院病患產生重癥的臨床風險評分預測方法的開發和驗證”。

看到新聞后的第一時間我就登陸了JAMA對論文進行閱讀,費了一些勁兒才把文章看完。說實話這輩子如果不是因為拜讀鐘院士團隊的文章,恐怕到老都不會接觸那些醫學專業術語,像是neutrophilia(中性白細胞增多)、coagulopathy(凝血病)……通篇閱讀完之后我有以下幾點感觸和啟發,這些想法也增進了我對數據分析認識上的深度解讀。下面我就來簡單說下我的這幾點感受。
 
同一場疫情下,不同模型所產生的認知差異
今年年初COVID-19疫情洶涌而來,而且又還是一個新的未知病毒作祟,人們都很緊張。普通老百姓最擔心的是疫情的病毒的傳染能力、如何避免傳染、是否高致死等關系切身生命安全的問題。

大家回憶一下疫情初期朋友圈里熱衷于探討“繁殖率R0”的文章里面,民間有一些機構和學者研究計算的值也各不相同。有人說是2.4,也有人說是4.5……。然而很多人只記住了“一個人傳幾個人的繁殖速度”,卻沒有看到這個指標背后的很多基礎假設和計算背景。不過這也不怪大家,因為我們都是非醫學專業的。這些各種版本的R0在民眾驚恐心理支配下,被很多不良的自媒體拿來各種歪曲炒作。我在認真學習了經典的傳染病模型知識之后,看了很多搞文藝,或者號稱研究區塊鏈的自媒體也在發表文章,通過對R0來預測疫情了!看著半桶水哐當哐當地論調在博眼球,還沒讀完我就很想笑,到后來就干脆不想看了。老百姓對模型的研究理解,大致就是到這個層面。

鐘南山院士團隊第一篇關于預測感染人數的論文,是應用了改良后的經典傳染病模型SEIR。剛好我在這次疫情期間也對這個模型進行了研究,通過對模型的研習,我發現定量的分析能夠以一個更高的視角看問題。

比方說深度理解疫情下那么多防控措施背后的為什么,進一步看懂社會醫療資源為什么進行這樣或那樣的分配……等等。這里有一個基本的邏輯關系,就是確診人數的增長速度和模型的預測進行比對,可以用于校驗前期模型的合理性。如果確診人數增長過快,那么說明原先模型的假設以及參數已經失效,相對應的原有防控措施需要更加嚴格。而如果確診人數增長符合模型預測,或者趨緩,甚至下降,那么就說明原有的防控措施是有效的。

以經典的傳染病模型SEIR為例,里面有2個重要參數:感染者有效接觸易感染人群的速率λ、感染率β。而大家在整個疫情期間所經歷過的各種封閉管制,其實都是在控制不讓這2個參數繼續變大。

例如大家熟知的停止舉辦大型群聚活動、春節假期延長、公共交通停運、小區封閉式管理、戴口罩出門……只要不主動的聚集,控制好人員的流動,那么感染速率λ和感染率β就能控制住或者降低。當然隨著疫情的發展,管制措施的逐步調整,對這兩個參數的估算也是不斷地動態變化的。

另外單獨說一下模型中的這個參數:感染者有效接觸易感染人群的速率λ。這次疫情中,包括國外抄作業都抄錯的意大利等西歐國家,都發現單純的封閉禁足是難以控制疫情的發展。因為家族傳播在疫情擴散中扮演著非常重要的角色。要知道一家人中只要有一個被傳染了,那么在居家禁足令的實施下,整個封閉的家庭是很容易全部“中招”的。這個時候λ在一個家族傳播路徑中就會變得很大,按照中國人的居家特點,λ=5或者=8都是正常不過。這樣一來,也就難怪感染人數的發展非常快。另外這次疫情發現家族傳播的病征都是普遍輕度或中度為主,如果這個時候能夠識別和進行隔離,那么將會有力的阻斷病毒的傳播和感染者病情的發展。

面對家族傳播的這一特點,知道了一個家庭某個人確診,就可以預算出全家人所需要的病床資源,舉一反三進行測算,更可以估計出某個區域未來潛在的病床需求數量。可問題是醫院的病床遠遠不夠,怎么辦?這個時候一些大型的公共設施,例如體育館、學生宿舍……被劃撥出來建設成“方艙醫院”。由于方艙醫院改建難度低,模塊化的組合也可以根據家族傳播路徑成片區的安置病人。事實證明,方艙醫院的投入使用極大的緩解了病床資源的緊張局面,及時的治療有效的降低了輕癥病患向重癥患者的發展,同時也有效隔離了感染者更多的接觸易感染人群。這樣一來,家族傳播在疫情中解釋了λ的結構變化;而方艙醫院的投入,單從控制家族與家族間傳染的視角來看,反過來有力的控制住了λ。

以上是從一個較為宏觀和定量的視角來感知模型(通過預測感染人數來整合社會醫療資源)。
 
鐘南山院士團隊這次在JAMA-Medical雜志上發表的論文,則是從一個微觀和定量視角來應用模型。

簡單的對這個模型的應用做下介紹:
模型和工具開發的目的,是為了盡早地識別和預測COVID-19感染者演變成重癥的可能性,因為它有助于提早準備治療資源和安排適當的治療措施。

為了能更好的說明這個問題,我引用了一下百度百科對ICU病房的介紹。因為ICU是重癥新冠患者治療的重要醫療資源。重癥患者一般都是需要ICU即重癥加強護理病房(IntensiveCare Unit)來開展治療的,ICU因此也叫作加強監護病房綜合治療室。在ICU里面治療、護理、康復均可同步進行,為重癥或昏迷患者提供隔離場所和設備,提供最佳護理、綜合治療、醫養結合,術后早期康復、關節護理運動治療等服務。

本次的疫情在武漢的一些重癥患者還要進入到“火神山”、“雷神山”治療。在ICU里面,每床位的占地面積為15-18㎡,床位間用玻璃或布簾相隔。ICU的設備必須配有床邊監護儀、中心監護儀、多功能呼吸治療機、麻醉機、心電圖機、除顫儀、起搏器、輸液泵、微量注射器、處于備用狀態的吸氧裝置、氣管插管及氣管切開等所需急救醫療設備。在條件較好的醫院,還配有血氣分析儀、微型電子計算機、腦電圖機、B超機、床旁X線機、血液透析機、動脈內氣囊反搏器、血尿常規分析儀、血液生化分析儀等。以上的醫療設備資源的高度利用,充分說明了普通病房和ICU病房的在硬件上的區別。而一家醫院或者一個地區的有ICU病房的醫院數量是有限的,如果大家都害怕自己萬一感染確診后會發展成重癥,都往有條件的醫院擠,那樣不僅容易造成醫療資源的擠兌,也會造成醫療資源的不合理分配。可如果說一開始確診時沒有識別出短期內會發展成重癥的“高風險”病患,把他放在普通病房接受一般的治療,則容易錯失治療的最佳時機,原本有機會康復的病患卻因此造成了悲劇。所以,一旦新冠病患能夠在確診的同時,能預測出短期內是否會發展成重癥就尤為重要了。

可問題擺在這里,一個新冠患者的檢測指標多達72項,哪些指標能對這個“潛在風險”起到關鍵指示作用? 如果能把它們提煉出來是非常有價值的。因為并不是所有的醫院都能檢查這么全面,也并不是所有的醫院的醫生都參加了這次疫情的“湖北會戰”,有和新冠病毒的實戰經驗。拿到檢測結果卻難以做結論的醫生肯定不在少數。另外,這些關鍵指標的數值要嚴重到什么程度,才容易判定或者識別成高風險患者,這就需要有一套模型來測算。如果模型搞的很復雜,要求醫生除了有專業知識和豐富的臨床經驗外,又還要懂大數據的數學模型算法,那實在又太強人所難。因此,模型工具的簡單化和親民化是第二個現實的問題。 所以,這次鐘南山院士團隊所開發的工具,解決的就是以上兩個比較微觀的定量難題。

我看了一下鐘院士團隊的最終成果,挺方便實用的。就是在下面的地址中,http://118.126.104.170/  輸入10個關鍵的檢測指標,然后點擊測算就可以了。我嘗試填寫了一下,結果顯示我屬于“低危人群”




模型選擇上的原則——可解釋優先
曾經大數據很火的2016年,業界對各種神經網絡的算法尤其熱捧。大家寫論文也好,出方案也好,如果沒有用上神經網絡或者深度學習,好像就是落伍了一樣。當然,我也沒有免俗,人非圣賢嘛!畢竟神經網絡算法最大的優點擺在那里,就是在分類算法中識別率很高!但是神經網絡或者深度學習有個很大的問題一直無法徹底解決,那就是很難解釋參數和超參數。也就是說這些參數或者超參數的現實意義是什么(物理解釋)講不明白。比方說網絡結構中為什么隱藏層是5不是4,如果是5能代表什么現實意義?學習率為啥要設定為0.01不是0.015?總之很多地方誰都不能說得明白,所以這類算法也成為“黑盒子”。

 與“黑盒子”難以解釋相對應的是可解釋的算法——統計模型

統計模型中最經典的則以各種線性模型以及可做線性變換的曲線模型為代表。不過線性模型有個最大的問題,就是擬合偏差比較大。而且我還是在學生時代,就發現很多經典的線性模型偏差太大!說到底因為現實的場景往往不是線性的結構。還有很多大數據相關的教材、講課視頻,入門的算法都是線性回歸;當介紹完線性回歸之后,立馬就跳入了比較復雜的算法中去了。例如神經網絡中計算梯度下降的公式中,會涉及到線性方程的計算部分。因此講線性回歸是為了引出“梯度下降”。不過這些跳躍經常讓人難以適應。但線性模型最大的優點就是可解釋性非常強。舉個例子來說

這個模型再簡單不過了,模型的解釋也可以非常的“白菜話”:
?如果|β1|>|β2|,說明自變量x1比x2重要。因為x1的變化引起因變量y的變化,要比x2更大。反之亦然;
?β0:就是說所有自變量啥都不干(不取任何值),因變量y本身就會體現出的平均水平。例如研究價格和銷量關系中的“剛需購買”;
?β1:假設按住自變量x2不動,自變量x1平均每變化β1個單位,因變量y就會平均變化1個單位;
?β2:假設按住自變量x1不動,自變量x2平均每變化β2個單位,因變量y就會平均變化1個單位;
?如果β1非常接近于0,那說明這個自變量x1對整個模型而言沒有啥用處,因為無論它取什么值,和一個無窮小的數β1相乘,結果還是無窮小。
?……其他

以上盡管以線性回歸為代表的統計模型可解釋性強,但一直以來很多人都沒將之納入法眼。一方面是太簡單了,體現不了“學術水平”;另一方面就是和“黑盒子”相比偏差大了些,怕同行取笑或者被導師打回去文章重寫。我也自我批評一下:我曾經參加論文答辯時,看到有同學3萬多字的論文中,居然只用了一個多元線性回歸時,還一度覺得他不會是太偷懶了,拿個這么簡單的模型來湊字數吧。不過這次看了鐘院士團隊的論文后,我倒是非常的受啟發。

 一、雖然線性模型本身擬合偏差比“黑盒子”大,但是它有很多高級版本的應用場景,你不知道而已
就拿特征工程中,高價值的流程節點是如何解決共線性的問題。如果解決了共線性,在保證不降低預測精度的同時,一方面可以降低過擬合的風險,另一方面提取的特征少了(自變量),模型的計算量和模型對計算資源的耗費,將會大幅降低。本次鐘院士團隊采用的是廣義線性回歸中的LASSO回歸(Leastabsolute shrinkage and selection operator),從72個檢測指標中提取出了19個和COVID-19重癥高度相關的指標;接下來在Logistics回歸模型中,再次提取出了10個關鍵指標,作為重癥患者的獨立統計預測因子,最后納入到風險評分工具中。

具體的指標見下表(醫學術語翻譯的可能不夠準確,請學醫的讀者見諒)




在這里說到的LASSO回歸,就是線性回歸模型中,若存在多重共線性場景下,選擇顯著影響的自變量的方法。在這里論文并沒有直接拿它來做COVID-19檢測指標的回歸分析,而是通過LASSO來做了一次特征工程,過濾掉了很多共線性和不顯著影響的自變量指標。 這點確實讓我眼前一亮。說實話,很多經典的非監督學習,例如相關系數矩陣、主成分分析法PCA、聚類分析、K-MEANS,逐步回歸……都可以實現識別多重共線性的問題。但問題是你識別出了一組高度相關的指標,之后呢?比方說你發現了X1,X2,X3存在共線性問題,你該挑選哪個?過濾掉哪些個?這就是選擇上的難題!LASSO回歸剛好解決了這個難題。有興趣的讀者可以繼續閱讀LASSO回歸的原理介紹和在鐘院士團隊論文中的應用。


LASSO回歸的原理,其實不是很復雜,之所以說它是線性回歸的高級版本,實際上是有原因的。LASSO回歸是Elasticnet模型家族理論中的一個特殊場景,它有一個同胞兄弟,叫作嶺回歸(Ridge回歸)


一般的線性模型,為估計出模型系數的β向量,是對以下的殘差平方和RSS求極值而來。




因為上面的殘差平方和對于β來說是一個二次函數,是一個高維度的拋物面而且開口向上,因此存在著最低值。為了能夠畫出來,我假設β向量只有2個元素,那么RSS就是一個三維拋物面。它本身及的平面投影示意圖如下:




想要求出β向量中的那兩個的無偏估計值,只需要對RSS求β的一階偏導,然后讓其為0,接下來就可以求得解析解。但是如果β向量中存在著自變量的共線性,那么上一步計算的最后表達式中(如下)



β有解的充分必要條件rank(XTX)必須是滿秩就不成立。或者即便成立,但由于自變量之間高度線性相關,行列式XTX非常接近于0,那么得到的β解就非常不穩定。

這時候,就需要對RSS加入約束條件,或懲罰項。

Elastic net 模型家族是這樣給RSS最小化添加約束條件的




當上式α=0時,最小二乘線性回歸就變成了嶺回歸,此時β向量中所有的元素,也就是模型的系數都保留,但是各個自變量之間通過相互借用影響強度(borrow strength from each other)來保證所有的系數都不為零;
當α=1時,則變成了LASSO回歸,此時將會將一些影響力高的自變量保留,影響力不大的則讓其系數為0。
 
這個時候RSS優化使用約束條件,用幾何表示就是這樣:
還是二維空間的例子,由于|β|中只有2個元素,因此|β|是一個正方形,它和RSS在相同平面上有一個投影交集,就是下圖中紅色曲線的交點。這個交點對于|β|來說更容易出現在坐標軸上,因此β向量就不必全部取值,只需要取一個就行,另一個就是0。這樣就實現了自變變量的選擇和過濾。




接下來,可以通過設對下面的RSS進行求解極值就可以得到β向量的值。



由于λ的取值越大,對于整個RSS的極值求解來說就會增加約束條件的難度,因此會被過濾掉更多的自變量。因此,需要借助計算機軟件對λ進行逐步迭代試算,找到比較合適的λ值。


在鐘院士團隊的論文中,提到了R軟件的包glmnet,團隊通過這個開源的包進行重癥病患預測因子的過濾。


通過觀察論文中λ-系數軌跡圖,我們可以看到,當λ迭代到一定程度,例如log(λ)=-5或-6時,一些不重要的變量的系數全部收斂到接近于0,此時剩下的變量的系數依然有比較顯著的非零特性。而剛好這些剩下變量就是之前評分中的那些檢查指標(這個結果是利用Logistics回歸中的LASSO選擇結果,因此剩余的系數個數剛好是10個)。



而當0<α<1時,β向量的結果介于嶺回歸和LASSO回歸之間。


二、對于治病救人而言,模型的使用更應該側重于可解釋。


這一點也是本次論文給我的啟示。


其實模型可解釋在我日常工作中也經常遇到這樣的場景:
辛苦搞了幾個模型出來,在平衡預測精度和可解釋時,往往很難拿捏。于是乎就選擇了“黑盒子”與“可解釋”中各挑一個模型,然后加權平均。如果客戶也是和我一樣是分析師圈子的人,那么他可能就會偏向于“黑盒子”、而若客戶是偏業務的人,那么就會更偏向于“可解釋”。我還依稀記得客戶問我,什么是模型系數的顯著性水平、模型的現實意義是啥……這些記憶片段。由于我平時的工作還不涉及到治病救人這么事關人命的大事,因此這種平衡方法使用也就沒什么大礙。但是對收治的病人并進行重癥的預判,則是一件人命關天的大事兒,來不得半點“講不清楚,反正就是預測效果好”。另外,我覺得模型選擇側重于可解釋,主要還有一個重要原因:


就本論文而言,這個重癥評分工具的推廣對象,是全社會各級醫療和疾控機構,大家的水平層次都是參差不齊的。當工具的使用對象是只具備基礎醫療訓練的基層醫務人員時,你搞一個難以解釋的“黑盒子”,又還要他們懂得設定參數和超參數,這樣就會造成基層醫務人員的困惑,甚至不知道怎么用,也就難以推廣。另外,一些普通老百姓也會看到這個工具,當然有條件自檢的話,同樣也可以自己使用。如果讓普通人去調整這么復雜的模型,這個工具自然就會被敬而遠之,起不到造福百姓的作用了。


數據分析應用技能之Python試聽課

https://www.cpda.cn/coursedetail/?id=56

 

數據分析應用技能之R語言試聽課

https://www.cpda.cn/coursedetail/?id=55

 

運籌學解讀數據集訓營試聽課

https://www.cpda.cn/coursedetail/?id=44

 

SPSS核心技能速成班試聽課

https://www.cpda.cn/coursedetail/?id=49

 

CPDA數據說第十九期《CPDA開創數據分析行業全新教學模式》

http://www.yhsscn.com/dongtai/20984.html

 

數據科學、大數據與數據分析

http://www.yhsscn.com/jishu/20921.html

 

更簡單直接的了解下數據科學家

http://www.yhsscn.com/wenti/20809.html

 

盤點哪些運營使用的數據分析工具

http://www.yhsscn.com/jishu/20674.html

 

數據可視化一個選擇顯示數據的最佳方式

http://www.yhsscn.com/jishu/20585.html

 

查找您周邊省份授權培訓中心:

http://www.yhsscn.com/train/

 

2020CPDA數據分析師線上報名:

http://www.yhsscn.com/baoming.php

 

數據分析師的職業規劃:

http://www.yhsscn.com/career/

 

CPDA數據分析師職業考核時間:

http://www.yhsscn.com/examine/

 

全國免費客服熱線:400-050-6600

中國商業聯合會數據分析專業委員會








Prev article

SPSS單樣本非參數檢驗——卡方檢驗

Next article

如何使用數據分析技術進行銷售預測

課程服務

認證服務

在線咨詢

色惰日本视频网站