引用本文: 孔曉嵐. 基于 BP 神經網絡和支持向量機的支氣管肺炎患者住院總費用預測及影響因素分析. 華西醫學, 2021, 36(1): 55-60. doi: 10.7507/1002-0179.201912096 復制
支氣管肺炎是一種呼吸道感染性疾病,在兒童人群中比較多發,細菌感染或空氣質量下降、抽煙等因素也可引起成年人患病。支氣管肺炎的發病率很高,不但影響患者的生活質量,而且給家庭帶來一定的經濟負擔,也給國家醫療保險基金帶來壓力。因此,加強對支氣管肺炎的費用研究,制定有效的干預措施,可以減輕患者及醫療保險的經濟負擔[1]。數據挖掘是結合人工智能和數據庫技術從大量復雜、模糊的數據中提取出隱含在其中有潛在價值信息的過程[2]。數據挖掘的方法有很多,如樹模型、神經網絡、支持向量機、貝葉斯網絡、最近鄰元素分析以及關聯規則與序列分析等,主要應用于分類、預測以及關聯規則發現等方面。但不同的模型對數據有不同的要求,同一數據在不同模型中進行檢驗可能會導致結果的差異。神經網絡模型和支持向量機模型對資料的分布無特殊要求,有一定的容錯性,在處理數據間的復雜聯系上應用廣泛,能在現有信息下追求最優解。所以本研究采用上述 2 種模型對支氣管肺炎患者的住院總費用進行預測,并挖掘相關的影響因素,以增加分析結果的可靠性和說服力。
1 資料與方法
1.1 研究對象
收集四川省某三級甲等醫院 2017 年 1 月-12 月病案首頁中出院主要診斷為支氣管肺炎的 755 例患者信息。對數據進行預處理,排除住院時間為 1 個住院日和/或費用超過 4 萬元的病例(此類數據雖然在住院管理中真實存在,但由特殊情況引起,如入院后未進行處理就立即辦理出院或轉院、住院過程中并發了更為嚴重的疾病但病案首頁的主要診斷未進行調整等,此類數據不是本次分析的目標群體,故不納入分析),對超長住院時間和超低住院費用以及轉科者進行原因分析,不屬于本研究討論范疇者予以排除,最終剔除 6 例(其中 5 例住院時間為 1 個住院日,1 例住院總費用超過 4 萬元),得到共計 749 例有效數據信息。
1.2 研究指標
初步納入的研究指標有醫療付款方式、住院次數、性別、年齡、民族、職業、婚姻狀況、入院途徑、入院情況、是否轉科、出院科室、實際住院天數、是否實施臨床路徑管理、是否完成臨床路徑、是否有合并癥、住院期間是否告病危或病重、門診出院診斷是否符合、入院出院診斷是否符合、入院病情、是否合并其他診斷、有無藥物過敏、是否接受手術或操作、離院方式,因變量為住院總費用。其中分類變量賦值表見表1。

1.3 單因素分析
應用 SPSS 20.0 軟件建立數據庫,對初步納入的研究指標(自變量)與住院總費用的關系進行單因素分析。對于自變量為分類資料的,對不同類別間住院總費用進行差異性檢驗,由于住院總費用不符合正態分布,故對數據進行了對數變換,變換后的數據服從正態分布,兩組或多組數據若方差齊,組間比較采用單因素方差分析;若方差不齊,兩組資料組間比較采用 Mann-Whitney 秩和檢驗,多組資料組間比較采用 Kruskal-Wallis 秩和檢驗。對于自變量為計量資料的,采用 Spearman 相關分析進行單因素分析。檢驗水準 α=0.05(雙側)。
1.4 數據集的劃分
為了防止過度擬合,本研究對納入數據按照 SPSS 20.0 和 Clementine 默認的 7∶3 的比例進行拆分,形成訓練集和測試集,即 749 例患者中 70% 的病例數據用于訓練樣本(524 例),30% 的數據用于測試樣本(225 例)。此步在 SPSS 的分區數據集中根據個案的相對數量隨機分配實現。
1.5 模型擬合與預測
應用 SPSS 20.0 軟件建立數據庫,進行 BP 神經網絡模型的擬合和預測;并運用兩步聚類法對住院總費用進行聚類分析,在 Clementine 中實現支持向量機模型的建立并進行預測和相關分析。
1.5.1 BP 神經網絡模型
研究以住院總費用為輸出變量,以單因素分析中有統計學意義的變量作為輸入變量。隱藏層激活函數為雙曲正切函數,輸出層激活函數為恒等函數。以 70% 的樣本作為訓練集,以 30% 的樣本為驗證集進行 BP 神經網絡模型的擬合。網絡準確度將基于驗證集加以計算,其中相對錯誤為殘差離均差平方和占因變量離均差平方和的比例,預測準確率為 1-相對錯誤。當網絡訓練完畢后,再判斷各輸入變量對于目標變量預測的重要性,以反映輸入變量的相對作用大小[3-7]。
1.5.2 支持向量機模型
本研究中住院總費用為連續性變量,在進行支持向量機擬合前先要進行因變量的離散化操作,此處選擇兩步聚類法進行分類,以聚類分析結果為目標變量,以單因素分析中有統計學意義的變量作為輸入變量,利用 Clementine 建立支持向量機模型[8-9],對各影響因素進行重要性排序;核函數是支持向量機學習性能的關鍵[10],包括線性核函數、多項式核函數、徑向基核函數(也稱高斯核函數)和 Sigmoid 核函數 4 類。由于住院總費用數據非線性可分,故不采用線性核函數建模[11],通過比較其他 3 類核函數精度,選用最佳模型。對于支持向量機模型的結果,必要時進行 Mantel-Haenszel 分層分析。
2 結果
2.1 支氣管肺炎患者的基本情況
749 例患者中,男 346 例(46.2%),女 403 例(53.8%);年齡 1~97 歲,中位年齡為 59 歲;住院次數 1~6 次,中位次數為 1 次;住院天數 2~30 d,中位住院天數為 9 d;住院總費用為 707.55~32 690.14 元,中位費用為 5 563.47 元。各變量分布圖見圖1。

a. 年齡;b. 住院次數;c. 住院天數;d. 總費用
2.2 兩種模型預測分析結果
2.2.1 單因素分析
對初步納入的變量進行單因素分析,結果顯示醫療付款方式、住院次數、年齡、婚姻狀況、入院情況、住院期間是否告病危或病重、入院出院診斷是否符合、入院病情、是否合并其他診斷、出院科室、實際住院天數、是否接受手術或操作對住院總費用的影響有統計學意義(P<0.05),具體見表2。根據單因素分析結果,把有統計學意義的變量作為自變量納入后續的 BP 神經網絡和支持向量機模型分析。

2.2.2 BP 神經網絡模型
住院總費用不符合正態分布,故對數據進行了對數變換,變換后的數據服從正態分布,其余變量未處理。BP 神經網絡的模型參數和模型匯總結果顯示(設置的隨機數種子為 18121212):訓練集的相對錯誤為 10.0%,預測準確率為 90.0%;測試集的相對錯誤為 14.8%,預測準確率為 81.2%,滿足有關預測精度的要求。
2.2.3 支持向量機模型
采用兩步聚類法進行分類,結果顯示所有患者被聚為 2 類,類別 1 較多(88.3%),患者住院總費用較低(中位數=5 220.69 元),類別 2 較少(11.7%),患者住院總費用較高(中位數=14 982.92 元),具體見圖2、表3。

a. 類別 1 的單元分布圖;b. 類別 2 的單元分布圖

支持向量機模型的結果匯總:經多次調參和不同內核函數的預測效果對比(設置的隨機數種子為 699392),多項式核函數測試集準確率最高,Sigmoid 次之,徑向基最低(表4)。最終選擇了多項式作為內核函數,C 取 10,Gama 為 1。最終模型匯總結果:訓練樣本正確率為 97.9%,測試樣本正確率為 93.4%(表5)。


2.2.4 住院總費用影響因素的分析結果
BP 神經網絡分析結果顯示,住院天數、年齡和出院科室是影響住院總費用的前 3 位因素(表6);而支持向量機結果顯示,住院天數、年齡和婚姻狀況是影響住院總費用的前 3 位的影響因素(表7)。


2.2.5 分層分析
支持向量機結果顯示住院天數、年齡和婚姻狀況是影響住院總費用的前 3 位因素,由于年齡可能會對婚姻狀況造成混雜,故對年齡(分為≤25 歲和>25 歲)、婚姻狀況進行 Mantel-Haenszel 分層分析,結果表明:如果控制了年齡這個混雜因素,婚姻狀況和住院總費用之間的相關性無統計學意義(χ 2=0.137,P=0.711)。
3 討論
目前對于住院費用的研究,主要分為 3 個方面:① 傳統的統計學方法,如多重線性回歸、logistic 回歸、Cox 回歸模型、主成分分析、因子分析;② 改進后的統計方法,如主成分回歸、時間序列模型(可包括多項式曲線模型、差分自回歸移動平均模型、灰色數列模型、馬爾可夫鏈模型、多元時序分析)、結構方程模型、多水平模型(包括隨機系數模型、方差成分模型、多變量多水平模型);③ 數據挖掘方法,如決策樹、神經網絡、支持向量機[12]等。傳統的統計方法對數據有嚴格的要求,如數據正態、獨立等,而非參數方法雖然對資料特點沒有嚴格要求,但由于沒有最大限度地使用樣本信息,檢驗效能有所降低[13]。改進后的統計方法是在傳統方法基礎上結合了其他理論,在一定程度上克服了傳統方法無法避免的缺陷,應用范圍較廣。但是對于一些復雜數據,如分地區、分層次以及醫院內部的分科室、分醫生等數據,改進后的方法計算起來較為復雜,需要進行仔細、深入的預分析,否則結果可能出現誤導。數據挖掘方法作為封裝好的灰箱方法,研究人員只需正確掌握數據的輸入格式和結果的閱讀方式就可以得到正確的結果,所以具有非常好的實用性。
本研究中利用 BP 神經網絡和支持向量機進行支氣管肺炎患者的住院總費用分析,均得到了較好的預測效果,BP 神經網絡模型的預測準確率為 81.2%,支持向量機的預測準確率為 93.4%,支持向量機的預測效果要好于 BP 神經網絡模型;在影響因素的分析中二者均指出了住院天數和出院科室是影響費用的兩大因素,具有實際的指導意義。住院天數的延長與患者疾病的嚴重程度以及治療的效果有關,所以在臨床上要提高治療的精準性,合理使用抗菌藥物,在患者入院之初可根據患者的痰培養結果,不同的患者選擇不同的抗菌藥物,比如對年齡較大、長期接觸抗菌藥物者,可選擇級別較高的抗菌藥物以提高治療效果,而對于身體素質較好、對抗菌藥物敏感者可適當選擇低級別抗菌藥物。不同科室的醫生治療方式不同、用藥習慣不同,導致了住院總費用的差異,所以建議醫生選取合適的治療方案對患者進行治療。同時,患者年齡也是影響住院費用的一大因素,這主要因為年齡大的患者合并癥較多,抵抗力相對較差,對藥物的敏感性較低,所以治療過程中的用藥相對較多,導致住院天數的延長和住院費用的增加。
本研究支持向量機結果顯示,婚姻狀況是影響住院總費用的一大因素,但經過分層分析控制了混雜因素后,發現并無統計學意義。
綜上所述,BP 神經網絡和支持向量機可以有效地預測住院患者的總費用,并且挖掘出影響住院總費用的最重要因素是住院天數,因此,縮短住院天數可能最大程度減輕患者的經濟負擔。此外,研究表明支持向量機的預測效果優于 BP 神經網絡模型,是因為支持向量機是在現有信息下追求最優解,能完美解決高維和局部極值問題[14],克服了神經網絡學習方法中合理結構難以確定和存在局部最優等缺陷[15],尤其是對于因變量為分類變量的數據,并且在實際中得到了有效的利用。但對于大樣本的數據,支持向量機的訓練速度較為緩慢,而且本研究中使用支持向量機進行住院總費用的預測需要對預測變量進行離散分類,具有一定的局限性,建議后續研究可以嘗試采用支持向量回歸來進行研究探討。
支氣管肺炎是一種呼吸道感染性疾病,在兒童人群中比較多發,細菌感染或空氣質量下降、抽煙等因素也可引起成年人患病。支氣管肺炎的發病率很高,不但影響患者的生活質量,而且給家庭帶來一定的經濟負擔,也給國家醫療保險基金帶來壓力。因此,加強對支氣管肺炎的費用研究,制定有效的干預措施,可以減輕患者及醫療保險的經濟負擔[1]。數據挖掘是結合人工智能和數據庫技術從大量復雜、模糊的數據中提取出隱含在其中有潛在價值信息的過程[2]。數據挖掘的方法有很多,如樹模型、神經網絡、支持向量機、貝葉斯網絡、最近鄰元素分析以及關聯規則與序列分析等,主要應用于分類、預測以及關聯規則發現等方面。但不同的模型對數據有不同的要求,同一數據在不同模型中進行檢驗可能會導致結果的差異。神經網絡模型和支持向量機模型對資料的分布無特殊要求,有一定的容錯性,在處理數據間的復雜聯系上應用廣泛,能在現有信息下追求最優解。所以本研究采用上述 2 種模型對支氣管肺炎患者的住院總費用進行預測,并挖掘相關的影響因素,以增加分析結果的可靠性和說服力。
1 資料與方法
1.1 研究對象
收集四川省某三級甲等醫院 2017 年 1 月-12 月病案首頁中出院主要診斷為支氣管肺炎的 755 例患者信息。對數據進行預處理,排除住院時間為 1 個住院日和/或費用超過 4 萬元的病例(此類數據雖然在住院管理中真實存在,但由特殊情況引起,如入院后未進行處理就立即辦理出院或轉院、住院過程中并發了更為嚴重的疾病但病案首頁的主要診斷未進行調整等,此類數據不是本次分析的目標群體,故不納入分析),對超長住院時間和超低住院費用以及轉科者進行原因分析,不屬于本研究討論范疇者予以排除,最終剔除 6 例(其中 5 例住院時間為 1 個住院日,1 例住院總費用超過 4 萬元),得到共計 749 例有效數據信息。
1.2 研究指標
初步納入的研究指標有醫療付款方式、住院次數、性別、年齡、民族、職業、婚姻狀況、入院途徑、入院情況、是否轉科、出院科室、實際住院天數、是否實施臨床路徑管理、是否完成臨床路徑、是否有合并癥、住院期間是否告病危或病重、門診出院診斷是否符合、入院出院診斷是否符合、入院病情、是否合并其他診斷、有無藥物過敏、是否接受手術或操作、離院方式,因變量為住院總費用。其中分類變量賦值表見表1。

1.3 單因素分析
應用 SPSS 20.0 軟件建立數據庫,對初步納入的研究指標(自變量)與住院總費用的關系進行單因素分析。對于自變量為分類資料的,對不同類別間住院總費用進行差異性檢驗,由于住院總費用不符合正態分布,故對數據進行了對數變換,變換后的數據服從正態分布,兩組或多組數據若方差齊,組間比較采用單因素方差分析;若方差不齊,兩組資料組間比較采用 Mann-Whitney 秩和檢驗,多組資料組間比較采用 Kruskal-Wallis 秩和檢驗。對于自變量為計量資料的,采用 Spearman 相關分析進行單因素分析。檢驗水準 α=0.05(雙側)。
1.4 數據集的劃分
為了防止過度擬合,本研究對納入數據按照 SPSS 20.0 和 Clementine 默認的 7∶3 的比例進行拆分,形成訓練集和測試集,即 749 例患者中 70% 的病例數據用于訓練樣本(524 例),30% 的數據用于測試樣本(225 例)。此步在 SPSS 的分區數據集中根據個案的相對數量隨機分配實現。
1.5 模型擬合與預測
應用 SPSS 20.0 軟件建立數據庫,進行 BP 神經網絡模型的擬合和預測;并運用兩步聚類法對住院總費用進行聚類分析,在 Clementine 中實現支持向量機模型的建立并進行預測和相關分析。
1.5.1 BP 神經網絡模型
研究以住院總費用為輸出變量,以單因素分析中有統計學意義的變量作為輸入變量。隱藏層激活函數為雙曲正切函數,輸出層激活函數為恒等函數。以 70% 的樣本作為訓練集,以 30% 的樣本為驗證集進行 BP 神經網絡模型的擬合。網絡準確度將基于驗證集加以計算,其中相對錯誤為殘差離均差平方和占因變量離均差平方和的比例,預測準確率為 1-相對錯誤。當網絡訓練完畢后,再判斷各輸入變量對于目標變量預測的重要性,以反映輸入變量的相對作用大小[3-7]。
1.5.2 支持向量機模型
本研究中住院總費用為連續性變量,在進行支持向量機擬合前先要進行因變量的離散化操作,此處選擇兩步聚類法進行分類,以聚類分析結果為目標變量,以單因素分析中有統計學意義的變量作為輸入變量,利用 Clementine 建立支持向量機模型[8-9],對各影響因素進行重要性排序;核函數是支持向量機學習性能的關鍵[10],包括線性核函數、多項式核函數、徑向基核函數(也稱高斯核函數)和 Sigmoid 核函數 4 類。由于住院總費用數據非線性可分,故不采用線性核函數建模[11],通過比較其他 3 類核函數精度,選用最佳模型。對于支持向量機模型的結果,必要時進行 Mantel-Haenszel 分層分析。
2 結果
2.1 支氣管肺炎患者的基本情況
749 例患者中,男 346 例(46.2%),女 403 例(53.8%);年齡 1~97 歲,中位年齡為 59 歲;住院次數 1~6 次,中位次數為 1 次;住院天數 2~30 d,中位住院天數為 9 d;住院總費用為 707.55~32 690.14 元,中位費用為 5 563.47 元。各變量分布圖見圖1。

a. 年齡;b. 住院次數;c. 住院天數;d. 總費用
2.2 兩種模型預測分析結果
2.2.1 單因素分析
對初步納入的變量進行單因素分析,結果顯示醫療付款方式、住院次數、年齡、婚姻狀況、入院情況、住院期間是否告病危或病重、入院出院診斷是否符合、入院病情、是否合并其他診斷、出院科室、實際住院天數、是否接受手術或操作對住院總費用的影響有統計學意義(P<0.05),具體見表2。根據單因素分析結果,把有統計學意義的變量作為自變量納入后續的 BP 神經網絡和支持向量機模型分析。

2.2.2 BP 神經網絡模型
住院總費用不符合正態分布,故對數據進行了對數變換,變換后的數據服從正態分布,其余變量未處理。BP 神經網絡的模型參數和模型匯總結果顯示(設置的隨機數種子為 18121212):訓練集的相對錯誤為 10.0%,預測準確率為 90.0%;測試集的相對錯誤為 14.8%,預測準確率為 81.2%,滿足有關預測精度的要求。
2.2.3 支持向量機模型
采用兩步聚類法進行分類,結果顯示所有患者被聚為 2 類,類別 1 較多(88.3%),患者住院總費用較低(中位數=5 220.69 元),類別 2 較少(11.7%),患者住院總費用較高(中位數=14 982.92 元),具體見圖2、表3。

a. 類別 1 的單元分布圖;b. 類別 2 的單元分布圖

支持向量機模型的結果匯總:經多次調參和不同內核函數的預測效果對比(設置的隨機數種子為 699392),多項式核函數測試集準確率最高,Sigmoid 次之,徑向基最低(表4)。最終選擇了多項式作為內核函數,C 取 10,Gama 為 1。最終模型匯總結果:訓練樣本正確率為 97.9%,測試樣本正確率為 93.4%(表5)。


2.2.4 住院總費用影響因素的分析結果
BP 神經網絡分析結果顯示,住院天數、年齡和出院科室是影響住院總費用的前 3 位因素(表6);而支持向量機結果顯示,住院天數、年齡和婚姻狀況是影響住院總費用的前 3 位的影響因素(表7)。


2.2.5 分層分析
支持向量機結果顯示住院天數、年齡和婚姻狀況是影響住院總費用的前 3 位因素,由于年齡可能會對婚姻狀況造成混雜,故對年齡(分為≤25 歲和>25 歲)、婚姻狀況進行 Mantel-Haenszel 分層分析,結果表明:如果控制了年齡這個混雜因素,婚姻狀況和住院總費用之間的相關性無統計學意義(χ 2=0.137,P=0.711)。
3 討論
目前對于住院費用的研究,主要分為 3 個方面:① 傳統的統計學方法,如多重線性回歸、logistic 回歸、Cox 回歸模型、主成分分析、因子分析;② 改進后的統計方法,如主成分回歸、時間序列模型(可包括多項式曲線模型、差分自回歸移動平均模型、灰色數列模型、馬爾可夫鏈模型、多元時序分析)、結構方程模型、多水平模型(包括隨機系數模型、方差成分模型、多變量多水平模型);③ 數據挖掘方法,如決策樹、神經網絡、支持向量機[12]等。傳統的統計方法對數據有嚴格的要求,如數據正態、獨立等,而非參數方法雖然對資料特點沒有嚴格要求,但由于沒有最大限度地使用樣本信息,檢驗效能有所降低[13]。改進后的統計方法是在傳統方法基礎上結合了其他理論,在一定程度上克服了傳統方法無法避免的缺陷,應用范圍較廣。但是對于一些復雜數據,如分地區、分層次以及醫院內部的分科室、分醫生等數據,改進后的方法計算起來較為復雜,需要進行仔細、深入的預分析,否則結果可能出現誤導。數據挖掘方法作為封裝好的灰箱方法,研究人員只需正確掌握數據的輸入格式和結果的閱讀方式就可以得到正確的結果,所以具有非常好的實用性。
本研究中利用 BP 神經網絡和支持向量機進行支氣管肺炎患者的住院總費用分析,均得到了較好的預測效果,BP 神經網絡模型的預測準確率為 81.2%,支持向量機的預測準確率為 93.4%,支持向量機的預測效果要好于 BP 神經網絡模型;在影響因素的分析中二者均指出了住院天數和出院科室是影響費用的兩大因素,具有實際的指導意義。住院天數的延長與患者疾病的嚴重程度以及治療的效果有關,所以在臨床上要提高治療的精準性,合理使用抗菌藥物,在患者入院之初可根據患者的痰培養結果,不同的患者選擇不同的抗菌藥物,比如對年齡較大、長期接觸抗菌藥物者,可選擇級別較高的抗菌藥物以提高治療效果,而對于身體素質較好、對抗菌藥物敏感者可適當選擇低級別抗菌藥物。不同科室的醫生治療方式不同、用藥習慣不同,導致了住院總費用的差異,所以建議醫生選取合適的治療方案對患者進行治療。同時,患者年齡也是影響住院費用的一大因素,這主要因為年齡大的患者合并癥較多,抵抗力相對較差,對藥物的敏感性較低,所以治療過程中的用藥相對較多,導致住院天數的延長和住院費用的增加。
本研究支持向量機結果顯示,婚姻狀況是影響住院總費用的一大因素,但經過分層分析控制了混雜因素后,發現并無統計學意義。
綜上所述,BP 神經網絡和支持向量機可以有效地預測住院患者的總費用,并且挖掘出影響住院總費用的最重要因素是住院天數,因此,縮短住院天數可能最大程度減輕患者的經濟負擔。此外,研究表明支持向量機的預測效果優于 BP 神經網絡模型,是因為支持向量機是在現有信息下追求最優解,能完美解決高維和局部極值問題[14],克服了神經網絡學習方法中合理結構難以確定和存在局部最優等缺陷[15],尤其是對于因變量為分類變量的數據,并且在實際中得到了有效的利用。但對于大樣本的數據,支持向量機的訓練速度較為緩慢,而且本研究中使用支持向量機進行住院總費用的預測需要對預測變量進行離散分類,具有一定的局限性,建議后續研究可以嘗試采用支持向量回歸來進行研究探討。