??專注R語言在??生物醫(yī)學(xué)中的使用
本文使用zotero和obsidian自動生成
今天給大家分享一篇2022年發(fā)表于JAMA network open(IF13.3) 上面的文章,文章使用機(jī)器學(xué)習(xí)方法預(yù)測患者是否診斷為某種疾病,幫助提高急診運行效率,縮短患者等待時間!
今天這篇也是一篇不錯的臨床數(shù)據(jù)研究、機(jī)器學(xué)習(xí)方面的文章。
Assessment of Machine Learning-Based Medical Directives to Expedite Care in Pediatric Emergency Medicine
略
由于急診就診患者特別多,患者等待時間非常長,往往會延誤病情,因此患者希望通過機(jī)器學(xué)習(xí)方法縮短患者等待時間,幫助提高急診的運行效率!
作者認(rèn)為現(xiàn)行的急診就診流程不夠好,因此通過機(jī)器學(xué)習(xí)幫助,提出了 machine learning–based medical directives (MLMDs) 幫助縮短急診等待時間。
數(shù)據(jù)來源: 在Hospital for Sick Children Toronto, Canda醫(yī)院急診就診的患者,時間跨度為2018年7月1日到2019年6月30日,一共77219例患者,年齡為0-18周歲。
這一部分其實原文寫的非常詳細(xì),我只是簡單介紹下,原文中數(shù)據(jù)的預(yù)處理方法以及用到了哪些python 庫都提到了,感興趣的可以自己去看~
模型選擇和建立: 作者選擇了嶺回歸、隨機(jī)森林、神經(jīng)網(wǎng)絡(luò)3種方法。數(shù)據(jù)分為訓(xùn)練集(55%)、驗證集(15%)、測試集(30%),根據(jù)時間順序進(jìn)行劃分,不是簡單的分層劃分或者隨機(jī)劃分哦!
預(yù)測變量包括生命體征(TPRBPS)、體重、年齡、癥狀、家和醫(yī)院的距離等。這里重點說下結(jié)果變量,原文是這樣說的:Our models predict whether a patient will have a diagnosis associated with the tests described above. For example, the forearm radiograph model is trained to predict whether a patient will have 1 of the following final diagnoses: buckle fracture, fracture of radius, fracture of ulna, and wrist fracture. 也就是說,他們的模型會預(yù)測患者是否診斷為某種疾?。ê蛶追N常見檢查相關(guān)的疾病)。
作者一共找了6個臨床急診常用的檢查:心電圖、尿試紙檢驗、腹部超聲、睪丸超聲、前臂X線、膽紅素水平,對于每一種檢查,作者都用3種機(jī)器學(xué)習(xí)方法預(yù)測患者會不會診斷為和此種檢查有關(guān)的疾病,作者還舉了一個例子:對于前臂X線來說,作者用3種方法預(yù)測患者是否會診斷為以下疾?。郝∑鹦凸钦邸锕枪钦?、尺骨骨折、腕骨骨折。
模型評價: 二分類資料常見的模型評價指標(biāo),無非就是那幾個,醫(yī)學(xué)最常見的,肯定少不了ROC曲線、曲線下面積這些,還有真陽性、假陽性、陽性預(yù)測值、陰性預(yù)測值。
模型性能
首先就是3種方法分別預(yù)測6種檢查的結(jié)果表格,這就是本文的表1了:
上面這張表格詳細(xì)列出了每一種檢查對應(yīng)的每一種方法的模型指標(biāo),包括陽性預(yù)測值、真陽性率、假陽性率、AUROC,對于每一種指標(biāo)的計算,也和我們常見的計算不太一樣,作者說明了他們的定義方法,比如:TP indicates positive prediction when a test is completed OR an associated differential diagnosis is present; true negative, negative prediction when no test is completed AND no associated differential diagnosis is present.除了表格,怎么能少了圖呢?尤其是這類預(yù)測模型、機(jī)器學(xué)習(xí)類的文章,又是生物醫(yī)藥領(lǐng)域的,ROC曲線必不可少,雖然結(jié)果都是說的一個東西,但是必須得有...
這幾個圖,相信大家都會畫,但是這個無限接近1的ROC真是讓人羨慕...新方法節(jié)省了巨多時間!
這篇文章搞這么多活并不是為了告訴大家模型有多準(zhǔn)確,而是告訴大家基于他們的模型建立的方法給患者節(jié)省了巨量的時間!
作者通過一頓操作發(fā)現(xiàn),新流程比現(xiàn)有流程竟然能節(jié)省165分鐘的時間! 看到這里,我都驚了,這也太牛逼了吧!但是仔細(xì)一看,發(fā)現(xiàn)處處都是作者的小心思,對于兩邊的時間是怎么計算的,作者也是有一套方法的。遺憾的是這么震撼的結(jié)果竟然沒放一個圖或者表出來!
模型解釋
使用了一種叫做Shapley Additive Explanations values 這種方法進(jìn)行模型解釋,這是一種比較流行的模型解釋方法,傳統(tǒng)的feature importance只告訴哪個特征重要,但并不清楚該特征是怎樣影響預(yù)測結(jié)果的。SHAP value最大的優(yōu)勢是SHAP能反映出每一個樣本的影響力,而且還表現(xiàn)出影響的正負(fù)性。通過python的shap庫實現(xiàn),做出來的效果也是比較炫酷的:
上面這張圖,橫坐標(biāo)代表shap值,縱坐標(biāo)表示特征,顏色代表特征值。R里面也有一些包可以做shap,比如:shapper/iml/shapleyR
等,感興趣的小伙伴可以自己嘗試一下!根據(jù)年齡性別進(jìn)行分層
作者在最后比較了一下不同年齡性別之間假陽性率的不同。
以上就是本篇文章的主要內(nèi)容了!
作者認(rèn)為這是一個單中心的研究,時間跨度也不長,最好是多中心、長時間的研究;另外研究方法有待優(yōu)化!
通篇看來這篇文章是略復(fù)雜的,并不像前面介紹的那篇純數(shù)據(jù)挖掘的簡單,作者用的方法雖然很簡單,但是對于各個指標(biāo)的計算都有自己的想法,這可能也是能夠得出這么好的結(jié)果的原因之一!
當(dāng)然這一點也是非常值得我們學(xué)習(xí)的,格局要打開,不要只盯著那幾個指標(biāo),指標(biāo)是死的,思路是活的,下次你的指標(biāo)很難看時,不妨也自己換個計算方式,說不定就豁然開朗了!
不過就像前面說的,本文的重點不是在于說明模型有多準(zhǔn)確,而是要證明基于這個模型的新方法確實能夠節(jié)省巨量時間!從這一點來看,這篇文章非常"完美"。
大家手里如果有很多臨床數(shù)據(jù)不知道該怎么用,不妨也試著像這樣搞一搞看看,選擇一個合適的問題,構(gòu)建幾個模型,說不定就有新發(fā)現(xiàn)~
DOI: https://doi.org/10.1001/jamanetworkopen.2022.2599
聯(lián)系客服