醫療保健相關問題是當今世界最重要的社會問題之一,醫療費用的激增更是加劇了這一問題。因此,在眾多與醫療費用相關的因素中,如何甄選出最核心的影響因素[1],有效控制醫療費用持續上漲,提高醫療資源的利用效率,進而提高全民健康水平就變得尤為重要。由于醫療領域所涉及的相關因素眾多、數據類型復雜,傳統的統計分析、調查研究方法耗時巨大[2],以及人工處理大量數據時出錯等原因,應用新技術手段解決這一問題十分必要。數據挖掘技術能從大量雜亂數據中高效、準確地挖掘出隱含信息[3]。關聯規則中Apriori算法能夠在大量數據中挖掘出與高醫療費用有強關聯的因素,同時將結果可視化,提高數據的可讀性,便于直觀理解醫療費用與各因素之間的關系及關聯強度。
國內,李江平采用不同模式的數據挖掘方法,對基層醫藥衛生工作展開研究,通過對保健數據的研究驗證,給提高農村衛生水平提供了有價值的意見[4];余嵐通過為學生定制個人體育鍛煉計劃提高學生身體素質的研究,應用數據挖掘的方法,對干預措施的有效性進行驗證從而得出了關聯緊密的因素[5];王帥通過研究居民健康管理決策和患者臨床合理用藥的依據,對基層醫療衛生機構門診用藥規律進行了研究,利用關聯算法對高頻用藥和高頻合并用藥進行的研究,促使了基層醫療合理用藥[6]。孫健對影響我國健康保健費用支出進行的研究,運用數據挖掘法發現了相關強關聯因素[7]。
國外,Gosain、Kumar采用不同數據挖掘模式挖掘醫療保健數據,研究了決策樹和關聯規則如何在大量衛生健康數據中的應用;Sivagowry、Durairaj、Persia 對數據挖掘技術在心臟病分析和預測中的應用進行了實證研究,通過應用數據挖掘技術,從醫療保健系統中獲得隱藏的信息[8];Nagavelli、Guru Rao通過對疾病可能性程度的研究和在醫療保健數據挖掘中疾病預測統計測量方法的研究,發現能夠通過對已有病例記錄的分析能預測可能發生的疾病。
本文擬在前人的研究基礎上,將關聯規則應用于醫療費用研究領域中,利用Apriori算法在大量數據中挖掘出與高醫療費用有強關聯的因素,并分析不同屬性之間的潛在關聯性,為醫藥衛生領域相關政策的制定和相關科研人員的未來研究提供參考。
關聯分析可以發現大量數據集合中某些事務(屬性)的關聯關系[9],通常用支持度和置信度2個指標為依據判斷一條關聯規則的左項與右項之間是否存在強關聯。如果一個事務集合的左右項既能滿足最低支持度又能滿足最低置信度要求,則可將其稱之為“左右項存在強關聯關系”,它同時具有頻繁項集和關聯規則[10]。頻繁項集是指滿足最小支持度的、頻繁出現的事務集合,一般以支持度作為衡量指標。在得到頻繁項集的基礎上,再設置一定置信度為篩選條件進而挖掘出關聯規則;關聯規則是隱藏在數據項之間的關聯或相互關系,可以根據一個事務項的出現推導出其他事務項的出現[11]。
本文數據來源于DataFountain平臺(https://www.datafountain.cn/)提供的2016年美國醫療費用數據集,該數據集共有1 338行。數據集合名稱為“醫療費用個人數據集”,數據類型包括字符串、數值型數據,有7個字段,沒有缺失值。7個字段分別是age(年齡)、 sex(性別)、BMI(身體質量指數)、children(保險覆蓋的兒童數量)、smoker(是否吸煙)、region(居住地)、charges(保險承擔的醫療費用)[12]。
以影響高額醫療費用的因素為探究內容,首先用Excel電子表格打開源數據,進行初步整理分析,清洗變換,完成數據預處理。部分原始數據如表1所示。數據完整,無缺失值、異常值,未發現重復數據。

表1 2016年美國醫療費用原始數據
Apriori算法可以用于數據類型為0/1的布爾類型[13],也可以用于分類數據類型。由于數據集中部分屬性的取值是連續型變量數據(如年齡、醫療費用),無法直接運用算法進行挖掘,因此對這類數據要進行分層和離散化處理[14]。此外,為了便于后期數據處理及關聯挖掘,我們使用代碼代替分層離散后的數據。
Age(年齡):將年齡分為5層,用A1代表18~29歲人群,用A2代表30~39歲人群,用A3代表40~49歲人群,用A4代表50~59歲人群,用A5代表60~64歲人群。
比較兩組冠心病心絞痛患者對護理服務滿意度;住院的時間、患者舒適度(0-100分,得分越高則舒適度越高);護理前后患者焦慮情緒評分(20-80分,得分越高則焦慮程度越高)、心功能等級。
Sex(性別):用B1代表男性,B2代表女性。
BMI(身體質量指數):用C1代替低體重人群,用C2代替正常體重人群,用C3代替過重人群,用C4代替一類肥胖人群,用C5代替二類肥胖人群,用C6代替三類肥胖人群。
Children(保險覆蓋的兒童數量):用D0、D1、D2、D3、D4、D5分別替代保險覆蓋的兒童數量為0、1、2、3、4、5的人群。
Smoker(是否吸煙):用E1、E2分別替代不吸煙人群和吸煙人群。
Region(居住地):用F1、F2、F3、F4分別替代東北區居民、西北區居民、東南區居民、西南區居民。
Charges(保險承擔的醫療費用):2016年美國人均醫療費用為9535.9美元,假定以該人均醫療費用為界定標準,用G1、G2分別代替較低醫療費用和高額醫療費用。
2016年美國醫療費用離散化處理后的部分數據如表2所示。

表2 2016年美國醫療費用離散化后數據
經過運算挖掘出45條符合當前設置支持度和置信度的關聯規則,調用函數可以展示出所有挖掘出的關聯規則,結果如表3所示。

表3 根據當前閾值所產生的關聯規則

續表3
其中,“LHS(left-hand side)”表示左側屬性項目集,“RHS(right-hand side)”表示右側屬性項目集,“support”為支持度,“confidence”為置信度,“lift”為提升度。用“count”統計該事務集合在數據集中出現的總頻次[17]。部分規則具有較高置信度和提升度,如規則3:{smoker=E2}=>{charges=G2};部分規則具有較高支持度,如規則10:{charges=G1}=>{smoker=E1},所挖掘出的規則的提升度均大于1。
由于挖掘出的關聯規則較多,難以直接讀出核心信息[18],因此調用R軟件中的可視化繪圖函數,將挖掘結果繪制成散點圖、氣泡圖和基于圖形的可視化結果,便于快速準確讀取信息。
根據45條規則繪制的散點圖如圖1所示,圖中的橫軸表示支持度,縱軸表示置信度,彩色條帶用顏色表示提升度的大小。

圖1 基于45條規則的散點圖繪制效果
通過觀察圖1可以獲得挖掘出的全部規則在總體上的分布特征,提升度較高的規則往往置信度也更加趨近于1,但這些規則在支持度的分布上并無明顯特征。同樣,提升度較低的規則在支持度的分布上也未發現明顯趨勢。此外,部分規則偏離總體分布趨勢,可能為不合理規則。在分析挖掘結果時應關注到這些異常點,排除潛在的對結論的不良影響。但從散點圖中無法獲得具體關聯規則中左右側分別是哪些屬性,以及它們之間關聯程度的信息。
氣泡圖如圖2所示,其中每個有顏色的氣泡表示一個規則,顏色深淺表示提升度,氣泡大小表示支持度,支持度越大,氣泡尺寸越大[19]。LHS表示左側屬性項目集,RHS表示右側屬性項目集。
在圖2所示的氣泡圖中,可以獲取各組規則中左右側項之間關聯強弱比較,其中規則{sex =B1,age=A1}=>{smoker=E1}支持度最高,而規則{smoker=E2,sex=B1}=>{charges=G2}提升度最高。右項中,支持度smoker=E1>charges=G1>charges=G2,提升度charges=G2>charges=G1>smoker=E1。各組關聯規則的提升度從左上方到右下方呈現遞減趨勢,各組關聯規則的支持度從左上方到右下方呈現遞增趨勢。此外,左側屬性項目集(LHS)和右側屬性項目集(RHS)中所示條件可以讓我們快速了解數據中有代表的屬性,如吸煙、年齡等因素均是頻繁出現的項目集,其重要性更為顯著。因此在對挖掘結果進行分析時應首先關注這些因素,但氣泡圖未能反映各條規則的相互關系以及屬性的共享情況。

圖 2 基于45條規則的氣泡圖繪制效果
45條關聯規則的圖形可視化結果如圖3所示。在圖3中,圓形代表各項集,箭頭代表規則間關系,圓形大小表示支持度,圓形越大支持度越高,顏色深淺表示提升度,顏色越深提升度越大。

圖3 45條關聯規則的圖形可視化結果
圖形可視化既能顯示各強關聯規則由哪些屬性組成,又能顯示這些規則共享了哪些屬性。通過這些共享的屬性可以找出相似規則,從而得出更為穩健的結論,便于我們從另一個角度理解挖掘出的關聯規則,以不同視角展現數據特征。
對挖掘出的45條規則進行分析,選取具有代表性的幾條規則為例,示范分析過程。
規則1:{age=A4}=>{charges=G2}支持度為0.1868460,置信度為0.9225092,提升度為1.873016,在整個事務集中出現頻次為250次。該規則的含義為:1 338人中約有18.68%的人同時具有50~59歲和高額醫療費用的特征;在年齡為50~59歲的前提下,約有92.25%概率會出現高額醫療費用的特征;年齡為50~59歲這一特征出現后,高額醫療費用的出現概率較原來提升了1.873016倍。這條規則的支持度、置信度、提升度3個指標值均為較高水平,因此認為這是一條強關聯規則,年齡50~59歲與高額醫療費用之間有較強潛在關聯。
規則23:{sex=B2,region=F2}=>{smoker=E1}支持度為0.1008969,置信度為0.8231707,提升度為1.035153,在整個事務集中出現頻次為135次。該規則含義是:1 338人中約有10.09%的人同時具有女性、居住在西北區以及不吸煙的特征;在居住在西北區的女性中,約有82.31%的概率不吸煙,但該規則的提升度十分趨近與1,說明居住在西北區的女性的不吸煙屬性不顯著。因此這一規則并不是強關聯規則,西北區的女性與不吸煙無明顯關聯。
采取上述方法,對全部45條關聯規則進行分析,得到強關聯規則30條,非強關聯規則15條,綜合30條強關聯規則得出研究結論。結論顯示,高齡、吸煙與高額醫療費用有較為顯著關聯的屬性(規則1、3、10、15),低齡人群中低醫療費用者往往不吸煙(規則11、12、32、33、39),且在高齡人群中女性比男性更容易具備高額醫療費用這個屬性(規則1、13),男性中的吸煙者有較高概率出現高額醫療費用(規則16)。
本文運用R軟件中的關聯算法研究1 338條個人醫療費用數據集中與高額醫療費用有強關聯的屬性。通過設置支持度和置信度篩選強關聯規則,挖掘出的關聯規則基本合理,可以作為醫療費用數據研究的新方法,對該領域今后的研究發展具有參考和借鑒意義。本文仍然存在某些缺點和不足,如受數據來源中原有變量種類和數據數量的限制,只是在有限的數據特征中發現與醫療費用的關聯規則,而這些數據特征可能不是醫療費用的重要影響因素或與之具有因果關系;數據所反映的情況可能與真實情況間存在一定偏差;在數據預處理階段的數據離散化步驟中,一些屬性數據的分層離散處理可能不盡合理。此外,怎樣合理設定用于挖掘的支持度和置信度也是值得探討的問題,閾值設定的高低會導致挖掘結果的質量。