急性呼吸窘迫綜合征(ARDS)是一種嚴重威脅人類生命健康的疾病,具有起病急、病死率高等特點。目前這種疾病的主要診斷和疾病嚴重程度分級標準依賴于血氣分析結果,從而計算患者的氧合指數(PaO2/FiO2,P/F),但是血氣分析是有創操作,且不能連續監測病情的發展。針對以上問題,我們提出了一種新的 ARDS 疾病嚴重程度的辨識算法。基于患者的多種無創生理參數,結合特征選擇技術,對多種生理參數進行重要性排序。利用交叉驗證技術評估辨識性能,比較不同特征子集下,使用神經網絡、邏輯回歸、AdaBoost、Bagging 四種監督學習算法的分類結果。通過不同特征子集下不同算法的敏感性、特異性、準確率、曲線下面積(AUC)來綜合選擇最優的特征子集和分類算法。我們利用四種監督學習算法,對 ARDS 嚴重程度進行區分(P/F ≤ 300)。根據 AUC 來評估算法性能,AdaBoost 在使用 20 個特征時,AUC = 0.832 1,準確率為 74.82%,取得了最優的 AUC。根據特征個數來評估算法性能,Bagging 在使用 2 個特征時,AUC = 0.819 4,準確率為 73.01%。該方法相較于傳統方法有較大的優勢,能夠連續監測 ARDS 患者的病情發展,為醫務人員提供輔助診斷建議。
引用本文: 楊鵬程, 陳鋒, 張廣, 余明, 呂蒙, 王春晨, 王春飛, 吳太虎. 基于無創參數辨識急性呼吸窘迫綜合征患者疾病嚴重程度的算法研究. 生物醫學工程學雜志, 2019, 36(3): 435-443. doi: 10.7507/1001-5515.201801081 復制
引言
急性呼吸窘迫綜合征(acute respiratory distress syndrome,ARDS)是一種嚴重威脅人類生命健康的臨床綜合征,主要表現為各種肺內和肺外致病因素所導致的急性彌漫性肺損傷和進而發展的急性呼吸衰竭[1]。引起 ARDS 的原因和危險因素眾多,這些因素常常相互重疊,從而導致該病的病死率很高。根據相關流行病學調查研究顯示,ARDS 的院內死亡率高達 50% 左右[2–4]。目前,對于 ARDS 疾病的診斷主要依據 2012 年的柏林定義,將氧合指數[動脈血氧分壓(PaO2)/吸入氧濃度(FiO2),P/F 值] ≤ 300 作為診斷 ARDS 的標準,同時根據 P/F 值將 ARDS 區分為輕度(200 < P/F ≤ 300)、中度(100 < P/F ≤ 200)、重度 ARDS(P/F ≤ 100)[5]。但是就目前使用血氣分析測量 PaO2 從而計算 P/F 值來評估 ARDS 嚴重程度來看,還存在一些缺陷[6]。首先,P/F 值的計算需要進行血氣分析,目前血氣分析采用的動脈留置導管日常護理工作較為困難;其次,對于一些特殊患者如新生兒、貧血患者、老年患者等,動脈采血并不容易操作[7];最后,動脈血氣分析不是實時監測結果,不能及時反映患者的病情發展,由于缺乏 P/F 結果,不能及時準確地診斷 ARDS,從而使醫生無法采取合適的治療策略,延誤患者的診斷和治療[8]。
近年來,有研究人員針對血氣分析存在的諸多問題,探索使用無創參數血氧飽和度(SpO2)/FiO2(S/F)來估測 P/F,從而實現 ARDS 疾病的辨識[9–11]。但是現階段的研究主要使用 SpO2 單一參數,利用傳統的線性回歸算法,且對 SpO2 有較多的限制,使得這些方法很難在臨床中為醫務人員提供準確的指導。而有研究顯示,對于 ARDS 患者,其 P/F 發生改變的過程中,患者的多個生理參數如心率、血壓、呼吸頻率等都會發生不同程度的改變,這為我們的課題提供了思路[12]。
針對以上問題,本研究建立了一種基于多種無創生理參數辨識 ARDS 的算法模型。本模型利用特征選擇算法,結合交叉驗證技術評估神經網絡、邏輯回歸、Bagging、AdaBoost 四種算法在不同特征子集下的辨識效果,結合多種評價指標,比較不同算法與特征子集的組合辨識 ARDS 的能力。
1 數據來源
1.1 數據庫介紹
MIMIC-III(Medical Information Mart for Intensive Care)是由麻省理工學院和貝斯以色列女執事醫療中心(Beth Israel Deaconess Medical Center,BIDMC)共同開發的一個大型的單中心重癥監護醫學信息數據庫,目前可免費申請使用[13]。截至目前,數據庫中包含了 2001 年至 2012 年期間 BIDMC 重癥監護病房的 46 476 名患者的相關診療信息。
1.2 患者入組條件
本文研究的對象是成年 ARDS 患者。在 MIMIC-III 數據庫中,患者的所有疾病診斷信息與 ICD9 編碼相對應,疾病診斷表中只有部分患者標注為 ARDS,結合 ICD9 編碼選擇了疾病為急性肺損傷(acute lung injury,ALI)的患者。為了保證入組患者疾病診斷的準確性,本研究結合 2012 年的 ARDS 柏林診斷標準,對患者進行進一步的核查,制定了相應的患者入組標準:① 患者年齡大于 16 周歲;② 在 ICU 停留時間超過 48 h:如果停留時間太短,這部分患者的病情很難判斷,也會對整體數據造成不必要的干擾;③ 只選擇第一次進入 ICU 的患者的數據:如果一個患者多次進入 ICU,則有可能是患者病情較為復雜,有可能會對實驗結果造成影響,所以在本文中,只使用每個患者第一次進入 ICU 的數據;④ 在 ICU 期間進行過胸部影像學檢查;⑤ 在 ICU 期間進行了機械通氣的患者:包括有創通氣和無創通氣患者;⑥ 第一天出現過 P/F 小于 300 的情況:第一天的 P/F 最小值小于 300 就認為符合條件。圖 1 所示為篩選患者的流程圖,詳細記錄了數據篩選的過程,最終入組患者人數為 2 952 人,對應的觀測值為 75 293 個。

1.3 患者生理參數提取
針對本文的研究目的,我們提取了患者 5 個部分的相關數據:人口統計學信息、臨床基本信息、床旁監護數據、呼吸機相關參數數據、血氣分析數據。其中人口統計學信息包括:年齡、性別、身高、體重、種族;臨床基本信息包括:患者在院內是否死亡、ICU 類型、ICU 停留時間;床旁監護數據包括:心率、SpO2、體溫、無創血壓收縮壓(noninvasive systolic blood pressure,NBPS)、無創舒張壓(noninvasive diastolic blood pressure,NBPD)、無創平均壓(noninvasive mean blood pressure,NBPM)、有創血壓(收縮壓、舒張壓、平均壓);呼吸機相關參數數據包括:呼吸頻率、FiO2、潮氣量(tidal volume,TV)、分鐘通氣量(minute ventilation,MV)、呼氣末正壓(positive end-expiratory pressure,PEEP)、吸氣峰壓(peak inspiratory pressure,PIP)、氣道平臺壓(airway plateau pressure,PLAP)、平均氣道壓(mean airway pressure,MAP);血氣分析數據包括:PaO2、pH、動脈血氧飽和度(SaO2)。
在進行 ARDS 無創辨識算法設計的過程中,并沒有用到以上全部參數,只使用了以下參數:年齡、性別、身體質量指數(body mass index,BMI)、種族、心率、SpO2、體溫、NBPS、NBPD、NBPM、呼吸頻率、FiO2、TV、MV、PEEP、PIP、PLAP、MAP,以及三個衍生參數 S/F、OSI((MAP × FiO2 × 100)/SpO2)、TV/kg,其中 P/F 作為結局變量。
2 實驗方法
2.1 數據預處理
由于 MIMIC-III 數據庫中對于不同生理參數采樣頻率不同,即使在匹配數據的過程中調整了無創生理參數的時間范圍或是由于患者的特殊病情,仍然造成部分生理參數不同程度的缺失。在數據提取的過程中,在血氣分析的時間點,我們允許一定的時間誤差來提取數據,但是對提取數據進行簡單的分析,仍然發現了部分生理參數存在大比例的缺失。通過對缺失情況進行匯總,無創血壓、PLAP 有較大比例缺失,如果對所有缺失數據都進行直接刪除的操作,只能保留 11 378 個觀測點,也就是原數據集 14.16% 的信息量,這將直接影響后續的模型建立。
基于此,選擇了兩種數據缺失處理的方法:多重插補法[14]、直接刪除法。研究單個變量之間的相關性程度,對無創血壓(NBPS、NBPD、NBPM)、PLAP、PEEP、PIP、MAP 參數采用多重插補法進行插補;對于 TV、體溫、體重這三個參數由于其在數據集中與其他變量的相關性不明顯,無法使用多重插補法進行插值,如果用均值或者其他方法來補全,反而會引入噪聲,再對其缺失比例進行研究,發現其缺失并不嚴重,鑒于此使用刪除法直接刪除這些缺失數據。
在進行模型訓練之前,對數據進行歸一化處理是十分必要的。對數據進行歸一化處理可以提高絕大部分有監督學習算法的最優解收斂速度,同時能夠提高算法的精度。線性歸一化方法不會改變特征值原有的數據分布,完整地保留了數據原有的信息,適用于數值比較集中的情況,而本文中的大部分生理參數都是集中在某一特定范圍。
2.2 特征值選擇
在數據提取過程中,我們收集了盡可能多的患者基本信息和無創生理參數,但是并不能確定哪些參數對于 ARDS 疾病的辨識有較強相關性,另一方面監督學習算法的性能與輸入特征值的數量以及特征值與結局變量的相關性有很大的關系,因此需要進行特征值選擇,其目的是與原始特征集相比找到輸入特征值的最佳特征子集。特征值選擇方法可以分為過濾法(Filter)和封裝法(Wrapper)兩大類,本文采用 Filter 方法,即獨立于后續采用的監督學習算法,可以較快地排除非關鍵的噪聲特征,為現有特征值的重要性進行評分[15]。本文使用兩種方法綜合評估特征值重要性:皮爾遜相關系數(Pearson correlation coefficient,PCC)、基于隨機森林(Random Forest,RF)的特征值評分。之后綜合兩者的特征值重要性評分,對現有特征值進行重要性排序,逐步研究不同特征值子集的辨識效果。
PCC[16]是反映兩個變量之間的線性相關程度的指標,取值范圍為[-1,1]。使用 PCC 研究每個特征值(x(j))與 P/F 值(y)之間的線性相關性,PCC 的具體定義如公式(1)所示:
![]() |
我們對 PCC 取絕對值,便于后續的比較和特征值選擇。
RF 是一種集成機器學習方法,利用隨機重采樣技術和節點隨機分裂技術構建多棵隨機樹,通過投票得到最終分類結果,其次 RF 的變量重要性可以作為高維數據的特征選擇工具。
PCC 重點關注的是特征值與結局變量之間的線性關系,而 RF 的特征選擇過程更傾向于二者的非線性關系,綜合兩者的特征選擇結果,以此來對特征值重要性進行排序,能更加真實地反映特征值與結局變量之間的關系,克服了單一選擇算法造成的偏差[15]。
2.3 辨識算法及性能評估方法
2.3.1 辨識算法
本算法設計將特征值選擇與多種機器學習算法相結合,在不同特征值子集下,利用交叉驗證方法,訓練不同機器學習算法,評估各算法在不同特征子集下的辨識性能,從中選擇不同特征值子集與不同機器學習算法的最優組合來辨識患者的 ARDS 嚴重程度。
前文中,根據特征值的重要性對 21 個特征值進行排序,針對特征值的排序結果,將重要性從大到小逐步添加到訓練集數據中去。如圖 2 所示,展示了算法設計示意圖,利用十折交叉驗證來比較神經網絡、邏輯回歸、Bagging、AdaBoost 四種機器學習算法的效果。將數據集隨機分成互斥的 10 等份,選擇其中 9 份作為訓練集,用于訓練 4 種算法,留出 1 份作為驗證集,用于驗證模型效果,這個過程重復 10 次,每次都有一個不同的塊作為驗證集,直到每一份都被用作驗證集時結束十折交叉驗證過程。在每一折的模型訓練過程中,都會存儲驗證集上的性能指標結果,我們匯總了這 10 次迭代的性能指標結果,得出每個算法的平均準確率等信息,作為當前特征子集下的算法效果。由于有 21 個特征值,會有 21 個特征值子集,每一個子集進行一次十折交叉驗證,最終匯總 21 個特征子集對應的四種算法的性能評價指標,從中選擇最優的特征子集和算法。

2.3.2 評價指標
按照 ARDS 疾病的診斷標準,P/F 值≤ 300 為 ARDS,將樣本分為陽性和陰性結果,表 1 描述了真實類別與辨識類別之間的關系。

具體的性能評價指標包括靈敏度(sensitivity,SEN)、特異性(specificity,SPE)、陰性預測值(negative predictive value,NPV)、陽性預測值(positive predictive value,PPV)、準確率(accuracy,ACC)、受試者工作特征(receiver operating characteristic)曲線及曲線下面積(area under curve,AUC),用以上多種指標綜合評估辨識算法模型整體效果,具體公式如下:
![]() |
![]() |
![]() |
![]() |
![]() |
3 實驗結果
MIMIC-III 數據庫中共記錄了 46 476 名患者的 61 533 次 ICU 就診記錄,根據本課題研究目的制定的入組條件,最終本課題選擇了 2 952 名患者的 75 293 個觀測值作為數據集。表 2 統計了所有入組患者的基本情況。表 3 反映了陽性樣本(P/F ≤ 300)、陰性樣本(P/F > 300)以及整體樣本的數據分布情況,利用 Wilcoxon 秩和檢驗來比較陽性樣本與陰性樣本之間的差異。可以看出,各參數陽性樣本和陰性樣本之間存在顯著差異,但是這里只能說明選擇的這些參數與結局變量存在一定的相關性,具體關系還需采用算法進行進一步的驗證。


3.1 特征值選擇結果
辨識算法中具體使用到的特征值為:年齡、性別、種族、BMI、SpO2、心率、體溫、NBPS、NBPD、NBPM、呼吸頻率、FiO2、PEEP、MV、TV、PIP、PLAP、MAP、S/F、OSI、TV/kg,使用特征值選擇方法為每個特征值重要性進行評分。圖 3 上圖顯示的是使用 PCC 和 RF 算法評估各特征值與結局變量之間的相關性的歸一化結果,其重要性評分越接近 1,說明特征值與結局變量的相關性越大,在后續的模型訓練中也越重要。從圖中也可以看出,這兩種方法對于特征值的選擇過程基本順序是一致的,但是也存在一些差異。從 PCC 中我們可以看到,大部分特征值與結局變量都有很好的相關性,除了 TV 和患者的種族信息;對于 RF 算法來說,僅 S/F、SpO2、FiO2、OSI、PEEP、MAP 這 6 個特征值有較高的分數,其余的特征值重要性評分均小于 0.05。其中兩種方法評分均較高的參數基本都與 SpO2 有關,可以看出,SpO2 與結局變量 P/F 有明顯的相關性。在這里我們將兩種方法的重要性評分求均值,并對評分從放大到小排序,得到圖 3 下圖,為綜合兩種特征值選擇方法后的特征值重要性排序結果。綜合考慮特征值與結局變量的線性關系和非線性關系,使得特征值重要性排序更加均衡穩定。

3.2 辨識算法結果
利用特征值排序的結果,將特征值逐次添加到交叉驗證模型中,用于訓練 4 種算法,并把每一個特征子集在不同算法中的結果存儲起來,進行比較分析。如圖 4 所示,為 4 種有監督學習算法逐次添加特征值的辨識效果的變化過程,針對每種算法選擇了 4 種性能指標(ACC、SEN、SPE、AUC)來評估性能,利用注釋箭頭“BEST”標注了準確率最大值的位置。通過神經網絡使用不同特征子集訓練的結果,可以看出,在前 12 個特征子集中,神經網絡算法的準確率在逐步提高,但是上升過程中伴隨明顯的波動,在第 19 個特征值子集處達到最佳;通過 Bagging 使用不同特征子集訓練的結果,發現集成學習算法 Bagging 在第 2 個特征子集達到最大準確率后,準確率和 AUC 值都在逐步下降,其敏感性下降更為明顯;對于邏輯回歸和 AdaBoost 兩種算法來說,AdaBoost 的準確率要略優于邏輯回歸,但是兩個算法對于特征值子集的變化并不敏感。

通過圖 4 能大體上觀察不同算法、不同特征子集的結果變化趨勢,但是無法準確地比較各種組合的優劣。在此基礎上,我們對每種算法對應的最優特征子集進行訓練,利用交叉驗證評估不同特征子集和算法的辨識效果。表 4 中,對每種算法使用十折交叉驗證,對 10 次結果求平均值作為評價算法效果的最終訓練結果。圖 5 繪制了每種算法的 ROC 曲線。可以看出 AdaBoost 算法使用了 20 個特征值,其辨識準確率為 74.82%(AUC = 0.832 1),較其他三種方法略有優勢;Bagging 算法只使用 2 個特征值,其準確率也達到了 73.01%(AUC = 0.819 4)。


4 討論
過去的研究主要集中在利用 S/F 值來預測 P/F 值,從而實現利用無創參數 SpO2 來辨識 ARDS 患者,且大部分的研究都是針對患者在 SpO2<97% 進行的,即限定了使用的范圍。本文首次利用多種生理參數來預測 ARDS 患者的嚴重程度分級,綜合考慮患者的多種無創生理參數,如心率、無創血壓、呼吸頻率、呼吸機相關參數以及患者個人基本信息等,利用機器學習算法實現對 ARDS 的辨識,沒有對患者的 SpO2 進行限制,綜合考慮了患者的呼吸狀況,能夠更加全面地評估患者的情況。
本文比較了神經網絡、邏輯回歸、AdaBoost、Bagging 四種算法對 21 個特征值的敏感程度,利用特征值選擇方法,選擇了四種算法對應的最優特征子集。通過表 4 我們可以看出,利用準確率和 AUC 值來評估算法的性能,AdaBoost 算法要優于其他三種算法,其準確率為 74.82%(AUC = 0.832 1);但是從特征值選擇來考慮,Bagging 只使用了 2 個特征值(S/F、SpO2),其準確率就達到 73.01%(AUC = 0.819 4),這樣看來 Bagging 算法也有自身的優勢,可以用很少的信息量獲取不錯的效果。通過特征值排序以及特征值逐步代入,可以獲得無創生理參數與 ARDS 的相關性,為后續的相關研究提供建議。通過模型驗證可以發現,患者的年齡、種族、TV 與辨識 ARDS 嚴重程度的相關性較低。
由于使用的是臨床信息數據庫,在數據獲取方面會存在一些不足。就 MIMIC-III 數據庫而言,并沒有專家對 ARDS 做標定,只能通過臨床中的診斷標準,自己定義患者入組標準,但是這樣選擇的患者并不一定是 ARDS 患者,有可能混入其他疾病的患者;另一方面,在通過數據庫提取生理參數的過程中,由于不能準確地按照血氣分析中 PaO2 的記錄時間來匹配其他生理參數,所以我們允許一定的時間誤差,以保證有足夠的數據,但是也造成了一定的數據噪聲,可能會影響算法的辨識效果;數據庫中的數據有可能因為人為因素造成數據錄入錯誤,但是這些數據又在正常的范圍,這樣在異常值處理時也無法排除,造成誤差。
本文采集了患者多種無創生理參數,利用機器學習算法,實時不間斷地監控 ARDS 患者的病情發展,可以為臨床醫生提供輔助診斷決策。下一步,為解決數據來源的準確性,我們希望利用本實驗結果,開展相關的臨床試驗,從而驗證本模型的效果。
引言
急性呼吸窘迫綜合征(acute respiratory distress syndrome,ARDS)是一種嚴重威脅人類生命健康的臨床綜合征,主要表現為各種肺內和肺外致病因素所導致的急性彌漫性肺損傷和進而發展的急性呼吸衰竭[1]。引起 ARDS 的原因和危險因素眾多,這些因素常常相互重疊,從而導致該病的病死率很高。根據相關流行病學調查研究顯示,ARDS 的院內死亡率高達 50% 左右[2–4]。目前,對于 ARDS 疾病的診斷主要依據 2012 年的柏林定義,將氧合指數[動脈血氧分壓(PaO2)/吸入氧濃度(FiO2),P/F 值] ≤ 300 作為診斷 ARDS 的標準,同時根據 P/F 值將 ARDS 區分為輕度(200 < P/F ≤ 300)、中度(100 < P/F ≤ 200)、重度 ARDS(P/F ≤ 100)[5]。但是就目前使用血氣分析測量 PaO2 從而計算 P/F 值來評估 ARDS 嚴重程度來看,還存在一些缺陷[6]。首先,P/F 值的計算需要進行血氣分析,目前血氣分析采用的動脈留置導管日常護理工作較為困難;其次,對于一些特殊患者如新生兒、貧血患者、老年患者等,動脈采血并不容易操作[7];最后,動脈血氣分析不是實時監測結果,不能及時反映患者的病情發展,由于缺乏 P/F 結果,不能及時準確地診斷 ARDS,從而使醫生無法采取合適的治療策略,延誤患者的診斷和治療[8]。
近年來,有研究人員針對血氣分析存在的諸多問題,探索使用無創參數血氧飽和度(SpO2)/FiO2(S/F)來估測 P/F,從而實現 ARDS 疾病的辨識[9–11]。但是現階段的研究主要使用 SpO2 單一參數,利用傳統的線性回歸算法,且對 SpO2 有較多的限制,使得這些方法很難在臨床中為醫務人員提供準確的指導。而有研究顯示,對于 ARDS 患者,其 P/F 發生改變的過程中,患者的多個生理參數如心率、血壓、呼吸頻率等都會發生不同程度的改變,這為我們的課題提供了思路[12]。
針對以上問題,本研究建立了一種基于多種無創生理參數辨識 ARDS 的算法模型。本模型利用特征選擇算法,結合交叉驗證技術評估神經網絡、邏輯回歸、Bagging、AdaBoost 四種算法在不同特征子集下的辨識效果,結合多種評價指標,比較不同算法與特征子集的組合辨識 ARDS 的能力。
1 數據來源
1.1 數據庫介紹
MIMIC-III(Medical Information Mart for Intensive Care)是由麻省理工學院和貝斯以色列女執事醫療中心(Beth Israel Deaconess Medical Center,BIDMC)共同開發的一個大型的單中心重癥監護醫學信息數據庫,目前可免費申請使用[13]。截至目前,數據庫中包含了 2001 年至 2012 年期間 BIDMC 重癥監護病房的 46 476 名患者的相關診療信息。
1.2 患者入組條件
本文研究的對象是成年 ARDS 患者。在 MIMIC-III 數據庫中,患者的所有疾病診斷信息與 ICD9 編碼相對應,疾病診斷表中只有部分患者標注為 ARDS,結合 ICD9 編碼選擇了疾病為急性肺損傷(acute lung injury,ALI)的患者。為了保證入組患者疾病診斷的準確性,本研究結合 2012 年的 ARDS 柏林診斷標準,對患者進行進一步的核查,制定了相應的患者入組標準:① 患者年齡大于 16 周歲;② 在 ICU 停留時間超過 48 h:如果停留時間太短,這部分患者的病情很難判斷,也會對整體數據造成不必要的干擾;③ 只選擇第一次進入 ICU 的患者的數據:如果一個患者多次進入 ICU,則有可能是患者病情較為復雜,有可能會對實驗結果造成影響,所以在本文中,只使用每個患者第一次進入 ICU 的數據;④ 在 ICU 期間進行過胸部影像學檢查;⑤ 在 ICU 期間進行了機械通氣的患者:包括有創通氣和無創通氣患者;⑥ 第一天出現過 P/F 小于 300 的情況:第一天的 P/F 最小值小于 300 就認為符合條件。圖 1 所示為篩選患者的流程圖,詳細記錄了數據篩選的過程,最終入組患者人數為 2 952 人,對應的觀測值為 75 293 個。

1.3 患者生理參數提取
針對本文的研究目的,我們提取了患者 5 個部分的相關數據:人口統計學信息、臨床基本信息、床旁監護數據、呼吸機相關參數數據、血氣分析數據。其中人口統計學信息包括:年齡、性別、身高、體重、種族;臨床基本信息包括:患者在院內是否死亡、ICU 類型、ICU 停留時間;床旁監護數據包括:心率、SpO2、體溫、無創血壓收縮壓(noninvasive systolic blood pressure,NBPS)、無創舒張壓(noninvasive diastolic blood pressure,NBPD)、無創平均壓(noninvasive mean blood pressure,NBPM)、有創血壓(收縮壓、舒張壓、平均壓);呼吸機相關參數數據包括:呼吸頻率、FiO2、潮氣量(tidal volume,TV)、分鐘通氣量(minute ventilation,MV)、呼氣末正壓(positive end-expiratory pressure,PEEP)、吸氣峰壓(peak inspiratory pressure,PIP)、氣道平臺壓(airway plateau pressure,PLAP)、平均氣道壓(mean airway pressure,MAP);血氣分析數據包括:PaO2、pH、動脈血氧飽和度(SaO2)。
在進行 ARDS 無創辨識算法設計的過程中,并沒有用到以上全部參數,只使用了以下參數:年齡、性別、身體質量指數(body mass index,BMI)、種族、心率、SpO2、體溫、NBPS、NBPD、NBPM、呼吸頻率、FiO2、TV、MV、PEEP、PIP、PLAP、MAP,以及三個衍生參數 S/F、OSI((MAP × FiO2 × 100)/SpO2)、TV/kg,其中 P/F 作為結局變量。
2 實驗方法
2.1 數據預處理
由于 MIMIC-III 數據庫中對于不同生理參數采樣頻率不同,即使在匹配數據的過程中調整了無創生理參數的時間范圍或是由于患者的特殊病情,仍然造成部分生理參數不同程度的缺失。在數據提取的過程中,在血氣分析的時間點,我們允許一定的時間誤差來提取數據,但是對提取數據進行簡單的分析,仍然發現了部分生理參數存在大比例的缺失。通過對缺失情況進行匯總,無創血壓、PLAP 有較大比例缺失,如果對所有缺失數據都進行直接刪除的操作,只能保留 11 378 個觀測點,也就是原數據集 14.16% 的信息量,這將直接影響后續的模型建立。
基于此,選擇了兩種數據缺失處理的方法:多重插補法[14]、直接刪除法。研究單個變量之間的相關性程度,對無創血壓(NBPS、NBPD、NBPM)、PLAP、PEEP、PIP、MAP 參數采用多重插補法進行插補;對于 TV、體溫、體重這三個參數由于其在數據集中與其他變量的相關性不明顯,無法使用多重插補法進行插值,如果用均值或者其他方法來補全,反而會引入噪聲,再對其缺失比例進行研究,發現其缺失并不嚴重,鑒于此使用刪除法直接刪除這些缺失數據。
在進行模型訓練之前,對數據進行歸一化處理是十分必要的。對數據進行歸一化處理可以提高絕大部分有監督學習算法的最優解收斂速度,同時能夠提高算法的精度。線性歸一化方法不會改變特征值原有的數據分布,完整地保留了數據原有的信息,適用于數值比較集中的情況,而本文中的大部分生理參數都是集中在某一特定范圍。
2.2 特征值選擇
在數據提取過程中,我們收集了盡可能多的患者基本信息和無創生理參數,但是并不能確定哪些參數對于 ARDS 疾病的辨識有較強相關性,另一方面監督學習算法的性能與輸入特征值的數量以及特征值與結局變量的相關性有很大的關系,因此需要進行特征值選擇,其目的是與原始特征集相比找到輸入特征值的最佳特征子集。特征值選擇方法可以分為過濾法(Filter)和封裝法(Wrapper)兩大類,本文采用 Filter 方法,即獨立于后續采用的監督學習算法,可以較快地排除非關鍵的噪聲特征,為現有特征值的重要性進行評分[15]。本文使用兩種方法綜合評估特征值重要性:皮爾遜相關系數(Pearson correlation coefficient,PCC)、基于隨機森林(Random Forest,RF)的特征值評分。之后綜合兩者的特征值重要性評分,對現有特征值進行重要性排序,逐步研究不同特征值子集的辨識效果。
PCC[16]是反映兩個變量之間的線性相關程度的指標,取值范圍為[-1,1]。使用 PCC 研究每個特征值(x(j))與 P/F 值(y)之間的線性相關性,PCC 的具體定義如公式(1)所示:
![]() |
我們對 PCC 取絕對值,便于后續的比較和特征值選擇。
RF 是一種集成機器學習方法,利用隨機重采樣技術和節點隨機分裂技術構建多棵隨機樹,通過投票得到最終分類結果,其次 RF 的變量重要性可以作為高維數據的特征選擇工具。
PCC 重點關注的是特征值與結局變量之間的線性關系,而 RF 的特征選擇過程更傾向于二者的非線性關系,綜合兩者的特征選擇結果,以此來對特征值重要性進行排序,能更加真實地反映特征值與結局變量之間的關系,克服了單一選擇算法造成的偏差[15]。
2.3 辨識算法及性能評估方法
2.3.1 辨識算法
本算法設計將特征值選擇與多種機器學習算法相結合,在不同特征值子集下,利用交叉驗證方法,訓練不同機器學習算法,評估各算法在不同特征子集下的辨識性能,從中選擇不同特征值子集與不同機器學習算法的最優組合來辨識患者的 ARDS 嚴重程度。
前文中,根據特征值的重要性對 21 個特征值進行排序,針對特征值的排序結果,將重要性從大到小逐步添加到訓練集數據中去。如圖 2 所示,展示了算法設計示意圖,利用十折交叉驗證來比較神經網絡、邏輯回歸、Bagging、AdaBoost 四種機器學習算法的效果。將數據集隨機分成互斥的 10 等份,選擇其中 9 份作為訓練集,用于訓練 4 種算法,留出 1 份作為驗證集,用于驗證模型效果,這個過程重復 10 次,每次都有一個不同的塊作為驗證集,直到每一份都被用作驗證集時結束十折交叉驗證過程。在每一折的模型訓練過程中,都會存儲驗證集上的性能指標結果,我們匯總了這 10 次迭代的性能指標結果,得出每個算法的平均準確率等信息,作為當前特征子集下的算法效果。由于有 21 個特征值,會有 21 個特征值子集,每一個子集進行一次十折交叉驗證,最終匯總 21 個特征子集對應的四種算法的性能評價指標,從中選擇最優的特征子集和算法。

2.3.2 評價指標
按照 ARDS 疾病的診斷標準,P/F 值≤ 300 為 ARDS,將樣本分為陽性和陰性結果,表 1 描述了真實類別與辨識類別之間的關系。

具體的性能評價指標包括靈敏度(sensitivity,SEN)、特異性(specificity,SPE)、陰性預測值(negative predictive value,NPV)、陽性預測值(positive predictive value,PPV)、準確率(accuracy,ACC)、受試者工作特征(receiver operating characteristic)曲線及曲線下面積(area under curve,AUC),用以上多種指標綜合評估辨識算法模型整體效果,具體公式如下:
![]() |
![]() |
![]() |
![]() |
![]() |
3 實驗結果
MIMIC-III 數據庫中共記錄了 46 476 名患者的 61 533 次 ICU 就診記錄,根據本課題研究目的制定的入組條件,最終本課題選擇了 2 952 名患者的 75 293 個觀測值作為數據集。表 2 統計了所有入組患者的基本情況。表 3 反映了陽性樣本(P/F ≤ 300)、陰性樣本(P/F > 300)以及整體樣本的數據分布情況,利用 Wilcoxon 秩和檢驗來比較陽性樣本與陰性樣本之間的差異。可以看出,各參數陽性樣本和陰性樣本之間存在顯著差異,但是這里只能說明選擇的這些參數與結局變量存在一定的相關性,具體關系還需采用算法進行進一步的驗證。


3.1 特征值選擇結果
辨識算法中具體使用到的特征值為:年齡、性別、種族、BMI、SpO2、心率、體溫、NBPS、NBPD、NBPM、呼吸頻率、FiO2、PEEP、MV、TV、PIP、PLAP、MAP、S/F、OSI、TV/kg,使用特征值選擇方法為每個特征值重要性進行評分。圖 3 上圖顯示的是使用 PCC 和 RF 算法評估各特征值與結局變量之間的相關性的歸一化結果,其重要性評分越接近 1,說明特征值與結局變量的相關性越大,在后續的模型訓練中也越重要。從圖中也可以看出,這兩種方法對于特征值的選擇過程基本順序是一致的,但是也存在一些差異。從 PCC 中我們可以看到,大部分特征值與結局變量都有很好的相關性,除了 TV 和患者的種族信息;對于 RF 算法來說,僅 S/F、SpO2、FiO2、OSI、PEEP、MAP 這 6 個特征值有較高的分數,其余的特征值重要性評分均小于 0.05。其中兩種方法評分均較高的參數基本都與 SpO2 有關,可以看出,SpO2 與結局變量 P/F 有明顯的相關性。在這里我們將兩種方法的重要性評分求均值,并對評分從放大到小排序,得到圖 3 下圖,為綜合兩種特征值選擇方法后的特征值重要性排序結果。綜合考慮特征值與結局變量的線性關系和非線性關系,使得特征值重要性排序更加均衡穩定。

3.2 辨識算法結果
利用特征值排序的結果,將特征值逐次添加到交叉驗證模型中,用于訓練 4 種算法,并把每一個特征子集在不同算法中的結果存儲起來,進行比較分析。如圖 4 所示,為 4 種有監督學習算法逐次添加特征值的辨識效果的變化過程,針對每種算法選擇了 4 種性能指標(ACC、SEN、SPE、AUC)來評估性能,利用注釋箭頭“BEST”標注了準確率最大值的位置。通過神經網絡使用不同特征子集訓練的結果,可以看出,在前 12 個特征子集中,神經網絡算法的準確率在逐步提高,但是上升過程中伴隨明顯的波動,在第 19 個特征值子集處達到最佳;通過 Bagging 使用不同特征子集訓練的結果,發現集成學習算法 Bagging 在第 2 個特征子集達到最大準確率后,準確率和 AUC 值都在逐步下降,其敏感性下降更為明顯;對于邏輯回歸和 AdaBoost 兩種算法來說,AdaBoost 的準確率要略優于邏輯回歸,但是兩個算法對于特征值子集的變化并不敏感。

通過圖 4 能大體上觀察不同算法、不同特征子集的結果變化趨勢,但是無法準確地比較各種組合的優劣。在此基礎上,我們對每種算法對應的最優特征子集進行訓練,利用交叉驗證評估不同特征子集和算法的辨識效果。表 4 中,對每種算法使用十折交叉驗證,對 10 次結果求平均值作為評價算法效果的最終訓練結果。圖 5 繪制了每種算法的 ROC 曲線。可以看出 AdaBoost 算法使用了 20 個特征值,其辨識準確率為 74.82%(AUC = 0.832 1),較其他三種方法略有優勢;Bagging 算法只使用 2 個特征值,其準確率也達到了 73.01%(AUC = 0.819 4)。


4 討論
過去的研究主要集中在利用 S/F 值來預測 P/F 值,從而實現利用無創參數 SpO2 來辨識 ARDS 患者,且大部分的研究都是針對患者在 SpO2<97% 進行的,即限定了使用的范圍。本文首次利用多種生理參數來預測 ARDS 患者的嚴重程度分級,綜合考慮患者的多種無創生理參數,如心率、無創血壓、呼吸頻率、呼吸機相關參數以及患者個人基本信息等,利用機器學習算法實現對 ARDS 的辨識,沒有對患者的 SpO2 進行限制,綜合考慮了患者的呼吸狀況,能夠更加全面地評估患者的情況。
本文比較了神經網絡、邏輯回歸、AdaBoost、Bagging 四種算法對 21 個特征值的敏感程度,利用特征值選擇方法,選擇了四種算法對應的最優特征子集。通過表 4 我們可以看出,利用準確率和 AUC 值來評估算法的性能,AdaBoost 算法要優于其他三種算法,其準確率為 74.82%(AUC = 0.832 1);但是從特征值選擇來考慮,Bagging 只使用了 2 個特征值(S/F、SpO2),其準確率就達到 73.01%(AUC = 0.819 4),這樣看來 Bagging 算法也有自身的優勢,可以用很少的信息量獲取不錯的效果。通過特征值排序以及特征值逐步代入,可以獲得無創生理參數與 ARDS 的相關性,為后續的相關研究提供建議。通過模型驗證可以發現,患者的年齡、種族、TV 與辨識 ARDS 嚴重程度的相關性較低。
由于使用的是臨床信息數據庫,在數據獲取方面會存在一些不足。就 MIMIC-III 數據庫而言,并沒有專家對 ARDS 做標定,只能通過臨床中的診斷標準,自己定義患者入組標準,但是這樣選擇的患者并不一定是 ARDS 患者,有可能混入其他疾病的患者;另一方面,在通過數據庫提取生理參數的過程中,由于不能準確地按照血氣分析中 PaO2 的記錄時間來匹配其他生理參數,所以我們允許一定的時間誤差,以保證有足夠的數據,但是也造成了一定的數據噪聲,可能會影響算法的辨識效果;數據庫中的數據有可能因為人為因素造成數據錄入錯誤,但是這些數據又在正常的范圍,這樣在異常值處理時也無法排除,造成誤差。
本文采集了患者多種無創生理參數,利用機器學習算法,實時不間斷地監控 ARDS 患者的病情發展,可以為臨床醫生提供輔助診斷決策。下一步,為解決數據來源的準確性,我們希望利用本實驗結果,開展相關的臨床試驗,從而驗證本模型的效果。