我的兩個醫學數據分析技術思路
從臨床上獲得的或者公共數據庫數據這種屬于觀察性研究,是對臨床診療過程中自然產生的數據進行分析而獲得疾病發生發展的規律等研究成果。再細分,可以分為獨立危險因素鑒定和預測模型構建兩種。
獨立危險因素鑒定是一直以來的研究內容,目的是研究疾病預后的影響因素或者開發診斷指標,早期是通過統計學和邏輯回歸模型等方法進行研究;而預測模型構建是后來出現的,把多個獨立危險因素集中起來共同對疾病結局進行預測或者診斷疾病,達到更好地診斷和治療疾病的目的。
數據分析技術新的發展也給以上兩部分內容帶來了新的面貌,這里總結個人在這兩方面的分析技術思路,供大家借鑒。
機器學習算法主導的獨立危險因素鑒定
這里的機器學習主要是指xgboost等非線性模型,傳統的是使用多因素邏輯回歸作為獨立危險因素鑒定的最終結果,線性模型事先假定變量之間的關系是線性的被認為可能造成了分析結果的不準確,所以現在用xgboost等非線性模型來克服這個缺點,但是非線性模型就沒有象OR值這樣能反映變量間關聯強度的指標,等到SHAP分析這樣可以解釋模型的工具出現之后,機器學習算法主導的獨立危險因素鑒定才形成套路。
技術思路:
-
變量信息表(傳統的表1),展示變量的分布信息(平均值和標準差等)
-
Boruta算法篩選變量,這是近年才流行的方法,微小的關聯也能篩選出來,所以不擔心遺漏有意義的變量。
-
構建xgboost等非線性模型并展示模型效能,這里良好的模型性能代表所選擇的變量與結局變量之間有良好的相關性,在這個前提下,后續的分析才是有價值的。
-
SHAP分析展示變量的整體貢獻,可以選擇排名靠前的變量或者所有的變量進行后續的分析;
-
SHAP分析展示單個變量隨變量值變化其對結局變量貢獻(某變量的SHAP值)的變化,結合立方樣條曲線擬合確定關鍵的點(SHAP值為0時對應的點和shap值大于0的曲線上的拐點)
-
SHAP分析展示變量間的交互作用,展示變量間的交互作用。
-
其它,可以加入傳統的線性模型的分析方法以從不同方面展示獨立危險因素;如果收集了同類變量,還可以比較同類變量之間與結局變量相關性的差異;如果得到的獨立危險因素夠多,可以進行預測模型的構建,否則也可以獨立成文。
臨床預測模型構建(從數據到應用)
臨床預測模型在這里不多介紹。
技術思路:
-
變量的展示(表1)
-
Boruta,Lasso等方法選擇變量,傳統的通過單因素分析p值的半自動方法應該淘汰了。
-
模型構建和評價,評價包括內部評價和外部評價,ROC曲線和校準曲線等我們已經耳熟能詳的指標。這里可以是單個模型,也可以是相似結局的一組模型。
-
SHAP分析等解釋模型,這里以匯總結果為主,從整體評價變量對模型的貢獻;
-
DCA分析,比較模型間的凈收益以選擇模型,或者變量間的凈收益來評價變量;
-
構建列線圖或者預測模型APP,如果是APP,推薦融入SHAP分析的個體評價,對單個預測結果進行解釋,可以展示變量當前值對預測結果的貢獻,在臨床實踐中可以解析為當前患者的病因是什么;
-
后續,確定后續的臨床措施(預測模型陽性采取的檢驗或者治療措施)并進行預測模型臨床影響力評價(一般是隨機對照試驗)。
最后
當拿到一份數據,可以先做預分析,如果得到的相關變量較多,就可以做預測模型,如果不夠多,就可以考慮獨立危險因素分析。
個人感覺,數據分析類的研究關鍵在于數據,大樣本,自己收集的,有特點的數據更容易做出有意義的研究。