內(nèi)容來自:“小白學(xué)統(tǒng)計”微信公眾號,感謝作者授權(quán)
醫(yī)學(xué)預(yù)測模型可用的方法非常多,可謂眼花繚亂,隨口就能說得上來的都有十幾種,能用的至少幾十種。 那么醫(yī)學(xué)研究中的預(yù)測模型開發(fā)常用的方法到底有哪些,如何選擇? 本文結(jié)合自己的經(jīng)驗說一下。 不當之處,請批評。
我個人認為,可以將醫(yī)學(xué)預(yù)測模型方法分為三大類:
(1)回歸模型:這里既可以是傳統(tǒng)的回歸模型,如logistic回歸、線性回歸、Poisson回歸;也可以是考慮收縮技術(shù)( 或者叫做懲罰方法)的模型,如Lasso回歸、彈性網(wǎng)絡(luò)等。
(2)非參數(shù)模型: 如光滑樣條、廣義可加模型等。
(3)機器學(xué)習(xí)和深度學(xué)習(xí)技術(shù): 如神經(jīng)網(wǎng)絡(luò)、分類樹、支持向量機、隨機森林、卷積神經(jīng)網(wǎng)絡(luò)等。
這種分類當然仁者見仁。 比如,機器學(xué)習(xí)和深度學(xué)習(xí)能不能歸到一類,每個人有自己的不同觀點,因為應(yīng)用場景不大一樣。 深度學(xué)習(xí)主要用于一些文本、圖像等非數(shù)字的數(shù)據(jù)。
當然,無論如何,大家不用太關(guān)心這個分類。因為不會有人非得問你,你這個方法屬于哪一類?大家需要更關(guān)心的是:我該選擇哪種方法。
很多臨床醫(yī)生以及很多公衛(wèi)的學(xué)生現(xiàn)在都喜歡用機器學(xué)習(xí)方法,覺得聽起來高大上。 這種心理無非就是覺得: 我用個大家都知道的回歸分析,太土了,顯不出我的水平。 我用個新穎的機器學(xué)習(xí)方法,大家覺得我水平高。
讓我們仔細分析一下:首先,如果你是寫文章或申課題,評審的都是專業(yè)的統(tǒng)計學(xué)家,專業(yè)的統(tǒng)計學(xué)家絕對不會因為你用神經(jīng)網(wǎng)絡(luò)而不用logistic回歸,就覺得你水平更高。在專業(yè)統(tǒng)計學(xué)家眼中,不會覺得一種方法比另一種方法更好,每種方法都有自己的優(yōu)缺點。當然,也許有時候恰好評審專家中沒有統(tǒng)計學(xué)家,那另當別論。 其次,如果你是畢業(yè)論文,給你評審的專家什么方法沒見過?強行為了用新方法而用,只會讓評審專家覺得你太幼稚。
所以,無論在什么情形,沒必要去追求所謂的高大上方法。
那實際中如何選擇呢? 先用一張概念圖示意一下常見幾種方法的解釋度和靈活度(摘自James G,2021)。
沒有任何一種方法是完美的。回歸方法解釋度很好,但靈活度不足;機器學(xué)習(xí)方法很靈活,但解釋能力有限。
所以,其實答案取決于你自己。 你想側(cè)重解釋度還是側(cè)重模型的擬合效果?如果你的目的只是為了建一個預(yù)測效果很好的模型,至于解釋能力如何并不關(guān)心,這種情況下,可以考慮用機器學(xué)習(xí)(當然,我說是可以考慮,并不意味著一定可以用,實際能不能用還取決于其它條件,比如樣本量夠不夠);如果你想開發(fā)一個在臨床中應(yīng)用的,讓臨床大夫也能很好理解的預(yù)測模型,那解釋度就很重要,這時候建議首選考慮回歸模型。
事實上,機器學(xué)習(xí)為什么更加靈活,很大一部分原因是它比回歸模型可以更好地處理非線性?;貧w模型(包括lasso)無法自動處理非線性問題,而在醫(yī)學(xué)數(shù)據(jù)中,非線性并不少見。如果存在非線性而你又直接用回歸模型,必然效果不好。但是這里還有一個契機是:如果你有一定的分析經(jīng)驗,依然可以通過各種方法在回歸模型中解決非線性問題。
比如下面這個例子,這是同一個連續(xù)變量的預(yù)測效果。 左圖把變量直接納入logistic回歸,顯示AUC只有0.6,而兩層的神經(jīng)網(wǎng)絡(luò)則AUC達到了0.86。 很多人就會說,果然神經(jīng)網(wǎng)絡(luò)優(yōu)于logistic回歸! 事實上,不少論文就是這么做的,也是這么得出結(jié)論的。
然而再看右圖,我仍然使用logistic回歸,但是把該變量做了一個變換,同樣還是這個變量,AUC也達到了0.86。 現(xiàn)在還能說logistic回歸不如神經(jīng)網(wǎng)絡(luò)嗎?
所以建議大家:
如果你用的就是常規(guī)的臨床數(shù)值數(shù)據(jù)(而不是文本或圖像等),如果預(yù)測變量與結(jié)局之間沒有復(fù)雜的非線性關(guān)系,采用回歸模型即可; 如果發(fā)現(xiàn)非線性關(guān)系,但是可以變換成線性的,可以考慮簡單的非線性回歸模型; 這類方法的解釋度最高。
如果存在較為復(fù)雜非線性關(guān)系,可以考慮樣條回歸、光滑樣條等技術(shù),這類方法的解釋度略優(yōu)于神經(jīng)網(wǎng)絡(luò)。 但其實這類方法也不會把關(guān)系處理的太復(fù)雜,大多數(shù)還是相對簡單的非線性關(guān)系。 因為如果非要搞得很復(fù)雜,解釋性也就下降了,就不如直接用機器學(xué)習(xí)了。
只有那些真正關(guān)系很復(fù)雜或搞不清到底什么關(guān)系,可以考慮用機器學(xué)習(xí)方法。機器學(xué)習(xí)并不是萬能的,至少解釋度就差了好多。盡管目前也有一些技術(shù)適當提高了解釋度(如SHAP),但是相比之下,畢竟還是不如回歸模型。
如果你是一名臨床醫(yī)生,我相信你開發(fā)一個預(yù)測模型的目的是為了應(yīng)用,這種情況下,用回歸模型會更合理,除非數(shù)據(jù)實在太復(fù)雜。 但根據(jù)我十多年超過千次的數(shù)據(jù)分析經(jīng)驗,通常數(shù)據(jù)沒有那么復(fù)雜。
如果你是一名公共衛(wèi)生、醫(yī)學(xué)統(tǒng)計專業(yè)的學(xué)生,可能是為了寫一個預(yù)測模型開發(fā)的畢業(yè)論文,所以你想用一些新的方法。但我仍然建議首選回歸模型。原因在于:如果你用機器學(xué)習(xí)的方法,你或許在分析過程中學(xué)到了如何用R、python等實現(xiàn),但你也許只學(xué)到了這些。除非你非常用心鉆研其背后原理(據(jù)我了解這種人不多),否則其實你仍然只是學(xué)到了皮毛。還不如采用回歸模型,具體學(xué)習(xí)分析過程中遇到的各種問題,如何解決的方法,也許會加深你對模型的理解。永遠不要覺得哪種方法太簡單了你不屑于用,沒有一種方法是真正簡單的,取決于你如何理解“學(xué)會”這兩個字。能用軟件出個結(jié)果就算是“學(xué)會”了這種方法了嗎?
當然,雖然我的建議很明確,但仍需要根據(jù)具體數(shù)據(jù)、具體場景、以及你自己的研究目的來定。只是希望大家在醫(yī)學(xué)預(yù)測模型開發(fā)應(yīng)用這一領(lǐng)域,不要走偏。如果一個醫(yī)學(xué)預(yù)測模型最終目的不是為了臨床應(yīng)用而生,那你開發(fā)的目的到底是什么?這個問題雖然簡單,但是希望大家在模型開發(fā)前,都捫心自問一下,我們做這個預(yù)測模型是為了什么?是不是必須要做?
教程,30多篇R教程,以及更多科研教程!
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.