游佳,李愛陽 ,王森林 ,魏嵐,費曉璐,陳卉
1. 首都醫(yī)科大學 生物醫(yī)學工程學院,北京 100069;2. 北京市密云區(qū)醫(yī)院 a. 婦科;b. 內科,北京 101500;3. 首都醫(yī)科大學宣武醫(yī)院 信息中心,北京 100053
腦血管病是我國居民死亡和成人致殘的首位病因[1],近年來發(fā)病人數(shù)持續(xù)增加。急性腦血管病(腦卒中)作為主要的致死、致殘性腦血管疾病,其危險因素流行趨勢明顯[2]。國內腦卒中患者發(fā)病率逐年上升且死亡率較高。據(jù)推算,2015年我國有腦卒中患者1300萬,病死率大約是急性心肌梗死的2倍[2],嚴重影響患者的生活質量,給社會、家庭和患者帶來沉重的經(jīng)濟負擔和巨大痛苦[3]。因此,開展腦血管疾病的預后影響因素分析,將為腦卒中的治療及預防提供參考意見。
醫(yī)院的住院病案首頁是患者住院信息的濃縮,包括患者人口學數(shù)據(jù)、疾病診斷、手術和操作、臨床資源(重癥監(jiān)護室、呼吸機等)使用、住院管理數(shù)據(jù)(住院天數(shù)、費用等),在醫(yī)院管理、醫(yī)療水平評估等方面具有重要的應用價值。國內外的很多研究表明,針對某一疾病,用住院病案首頁中的數(shù)據(jù)分析疾病院內死亡率的影響因素或預測患者結局,能為疾病的治療和預防提供具有一定價值的參考信息[4-6]。本文使用SPSS Modeler軟件,采用K近鄰算法對住院病案首頁的數(shù)據(jù)進行建模,分析腦卒中患者院內死亡的影響因素,并對腦卒中患者的預后進行預測,為腦卒中患者的治療提供數(shù)據(jù)支持。
IBM SPSS Modeler是一款以圖形化語法為用戶界面的數(shù)據(jù)挖掘軟件,擁有豐富的數(shù)據(jù)挖掘算法,操作簡單易用,分析結果直觀易懂,圖形功能強大,支持與多種數(shù)據(jù)庫之間的數(shù)據(jù)和模型交換,可以使用戶方便快捷的實現(xiàn)數(shù)據(jù)挖掘[7]。
SPSS Modeler的操作與數(shù)據(jù)分析的一般流程相吻合,將操作的各個環(huán)節(jié)表示成若干個節(jié)點,將數(shù)據(jù)分析過程看作是數(shù)據(jù)在各個節(jié)點之間的流動,并通過圖形化的數(shù)據(jù)流方式直觀表示整個數(shù)據(jù)挖掘的環(huán)節(jié)。在SPSS Modeler中建立數(shù)據(jù)流的一般思路是建立數(shù)據(jù)源、數(shù)據(jù)理解、數(shù)據(jù)準備、建立模型、模型評價。本研究利用SPSS Modeler 18.0根據(jù)上述流程進行腦卒中患者院內死亡預測模型的建立和驗證。
本文數(shù)據(jù)來自2014~2016年北京市兩所醫(yī)院(三甲醫(yī)院和三乙醫(yī)院各一所)的住院病案首頁。根據(jù)住院病案首頁的主要疾病診斷ICD-10編碼字段,確定共有12952名腦卒中(ICD-10編碼為I60~I64、I66、I67.8)患者?;颊哳A后根據(jù)“離院方式”字段確定,共有254名患者死亡,12698名患者存活出院,院內死亡率為1.96%。
提取住院病案首頁中的部分變量用于本研究。其中結果變量為“是否死亡”,預測變量包括人口學特征(年齡和性別)、入院途徑(急診或門診)、是否第一次住院、腦卒中類型[出血性(ICD-10編碼為I60、I61、I62)或缺血性 (ICD-10編碼為I63、I66、I67.8)]。此外,很多臨床研究[8-11]顯示,高血壓、腎功能衰竭、肝病、糖尿病等是腦卒中患者預后的影響因素,故本研究在預測變量中加入了是否患有高血壓(ICD-10編碼為I10)、心力衰竭(ICD-10編碼為I50)、糖尿?。↖CD-10編碼為E10~E14)、慢性阻塞性肺疾?。↖CD-10編碼為J40~J44、J47)、慢性肝病(ICD-10編碼為K70~K77)、慢性腎?。↖CD-10編碼為N03、N05、N18、N19、N25)、惡性腫瘤(ICD-10編碼為C00~C97)等7類慢性病。因此,研究樣本共包含12952條記錄,每條記錄包括13個變量,除年齡(范圍18~93歲)外,其余變量均為二分類型變量。建立的數(shù)據(jù)文件以Excel文件格式保存。
完整的建模和模型評價數(shù)據(jù)流,見圖1。可以將它分為以下幾個步驟分別實現(xiàn)。
圖1 完整的建模及評價數(shù)據(jù)流
2.2.1 建立數(shù)據(jù)源
在SPSS Modeler中創(chuàng)建Excel數(shù)據(jù)源節(jié)點,添加“過濾器”節(jié)點去掉不參加建模的字段(如患者編號),添加“類型”節(jié)點指定各字段(變量)的測量(measure)和角色(role),如圖2所示。其中“輸入”角色表示預測變量,“目標”角色表示結果變量。除年齡字段的測量為“連續(xù)”外,其余字段的測量均為“標記”,即二分類型變量。添加“數(shù)據(jù)審核”節(jié)點可以看出,目前參與建模的字段共13個。
圖2 指定樣本中各字段的類型
2.2.2 數(shù)據(jù)準備
SPSS Modeler具有自動數(shù)據(jù)準備功能,使用自動數(shù)據(jù)準備節(jié)點可以快速、方便地準備數(shù)據(jù),以便后期進行數(shù)據(jù)挖掘,并能給出后期數(shù)據(jù)分析中使用哪些預測變量的建議。在指定字段類型的“類型”節(jié)點之后添加自動數(shù)據(jù)準備節(jié)點,按照默認設置進行數(shù)據(jù)準備,結果見圖3。
圖3 自動數(shù)據(jù)準備的結果
從圖3可見,在預測患者院內死亡風險時,是否合并高血壓、腦卒中類型、是否合并慢性腎病是排在前三位的重要變量(右圖),是否合并慢阻肺以及是否合并慢性肝病的重要性非常低,系統(tǒng)建議不適用這兩個預測變量(左圖)。因此,排除這兩個變量,利用剩余的10個預測變量和1個結果變量建模。添加“數(shù)據(jù)審核”節(jié)點可以看出,目前參與建模的字段共11個。
2.2.3 樣本平衡化
在直接提取的數(shù)據(jù)文件中,死亡患者與生存患者例數(shù)相差過大(254:12698),導致樣本中兩類患者數(shù)量嚴重不均衡,即出現(xiàn)了機器學習中的非平衡類問題[12]。這樣很容易導致建立的分類模型不能充分考慮到少數(shù)類樣本的特征,因而忽略甚至錯誤分類少數(shù)類樣本。為了使樣本中生存和死亡患者的人數(shù)盡量均衡,我們結合所研究數(shù)據(jù)的具體情況及數(shù)據(jù)分析方法,采用隨機欠采樣的方法進行樣本重采樣[13]。為此,在“自動數(shù)據(jù)準備”節(jié)點后添加“平衡”節(jié)點,將平衡指令設置為生存狀態(tài)為存活的記錄數(shù)減少到2%(圖4),即對12698名生存患者進行2%隨機欠采樣,隨機抽取大約254例生存患者,與254例死亡患者組成接近1:1的總樣本集合,從而達到樣本類別均衡。
圖4 進行2%隨機欠采樣
2.2.4 數(shù)據(jù)建模
K近鄰(K-Nearest Neighbor,KNN)分類算法是數(shù)據(jù)挖掘分類技術中最簡單的方法之一,是一種基于實例的、類比學習算法[14]。其基本思路是:給定一個待分類的樣本X,首先找出與樣本X最接近或最相似的K個已知類別的樣本,然后根據(jù)這K個樣本的類別確定樣本X的類別。計算樣本之間接近程度或相似程度的指標主要有歐幾里德距離和城市街區(qū)距離。確定樣本X的類別的方式包括取K個最接近樣本的類別號的平均值或類別號的眾數(shù)。K近鄰分類算法的優(yōu)點是對樣本數(shù)據(jù)的分布沒有要求,無需訓練,易于實現(xiàn),對異常值不敏感。因此,本文選擇K近鄰算法建立腦卒中患者預后預測模型。
在“平衡”節(jié)點之后添加K近鄰算法節(jié)點。節(jié)點中使用SPSS Modeler默認的參數(shù)設置,即利用歐幾里德距離衡量樣本之間的相似程度,利用10折交叉驗證方法在3~5之間自動選擇K值,最終待分類樣本的類別取決于K個最相近樣本的類別號的平均值。執(zhí)行該數(shù)據(jù)流后,即可生成K近鄰分類模型節(jié)點。
2.2.5 模型評價
在分類模型節(jié)點后連接ROC曲線和評價分析節(jié)點,用于評價模型性能。最終的數(shù)據(jù)流如圖1所示。
執(zhí)行分析節(jié)點后得到如圖5所示的評價矩陣。從圖中可以看出,分類器總的準確率為81.0%,敏感度為81.1%(206/254),特異度為80.9%(182/225),ROC曲線下面積AUC為0.892。由于ROC曲線下面積非常接近0.9,因此可以認為該模型具有很高的分類性能[15]。
圖5 K近鄰分類器的性能評價矩陣
由于在數(shù)據(jù)流中“平衡”節(jié)點對生存患者進行隨機采樣的樣本量和抽取的樣本均不同,因此我們將整個數(shù)據(jù)流執(zhí)行10次,得到10個模型及其性能評價結果(表1)。從表中可以看出,僅僅對生存患者進行重采樣,不會對模型的敏感度產(chǎn)生影響,特異度也是在較小的范圍內波動。K近鄰模型的平均敏感度為81.1%,特異度為79.4%,總的準確率為80.2%,ROC曲線下面積為0.878,模型整體性能較高。
本文利用住院病案首頁分析腦卒中患者院內死亡的影響因素,并建立死亡風險預測模型。由于住院病案首頁的大數(shù)據(jù)量、客觀性和小偏倚性,使得分析結果具有相當?shù)目尚哦群驼鎸嵭?,所建模型對于了解腦卒中的疾病治療趨勢有重要的意義。通過分析性別、年齡、入院途徑、腦卒中類型、合并慢性病情況等因素對患者院內死亡風險的影響,可為之后腦卒中患者的疾病治療及防護提供參考意見[16]。
K近鄰算法是一種簡單、易于實施的分類器算法,通常具有較高的分類準確率。本研究中建立的K近鄰分類器的ROC曲線下面積非常接近0.9,表明模型具有較高的預測準確性。但是,分類器的敏感度和特異度均在80%左右,結果并不十分理想。這既有可能是住院病案首頁所能提供的信息在預測患者死亡風險時能力不足,也可能跟樣本的數(shù)量及質量有關。K近鄰分類算法的一個主要缺點就是當樣本類別不平衡時,容易將待分類樣本判為樣本量大的那一類。為此我們對生存樣本進行了隨機欠采樣,以便使生存樣本與死亡樣本數(shù)量達到均衡,但同時損失了相當多的生存樣本。在今后的研究中我們將進一步擴大樣本量,并且對多種不平衡樣本重采樣的方法進行研究,力爭建立穩(wěn)定、可靠、準確的預測模型。
表1 多次隨機采樣后的建模結果