黃陽 彭濤 劉偉

摘要:結合深圳市某三甲醫院一個月真實數據,對醫保欺詐行為進行研究。方法:(1)了解原始數據中各屬性的含義,對數據進行預處理,采用數據挖掘的方法對數據進行研究,分析詐騙行為。(2)對一個病人持有多張卡、單張卡多人使用、病人死后仍有拿藥記錄這三種欺詐手段開展統計分析。(3)以科室和醫生為對象進行欺詐分析。結論:基于統計分析和AGNES聚類算法可以成功檢測出部分醫保欺詐行為。
關鍵詞:醫保欺詐;統計分析;AGNES;粒子群優化算法
中圖分類號:TP3016 文獻標識碼:A 文章編號:1007-9416(2018)08-0114-03
隨著社會保障信息系統的廣泛應用和醫保制度推廣范圍的擴大,醫保數據呈現指數級別的增長。這些數據中蘊含著醫保行業極其重要的資金信息,此外,還有病人的就診信息、醫生的醫囑信息、病癥的治療方案、就診費用等。如果這些數據能夠被挖掘出來加以利用,將對醫療行業具有重要意義。可是,目前國內對這些重要的民生數據只能做一些簡單的處理,例如增加、修改、圖表顯示,沒有進行深層次的數據分析。
國外的醫保行業起步較早,醫保檢測研究較為深入,數據挖掘技術在國外醫療保險行業的應用日益廣泛。但目前國外大多數更加側重于在數據挖掘中使用的技術方法,很少與醫保欺詐者進行聯系。如何利用醫保數據,分析其中的隱含信息,找出不同醫保欺詐行為的特征,設計不同的檢測方法就變得尤為重要。
1 基于統計分析的醫保欺詐行為識別
1.1 數據來源
本文數據來源于深圳市某三甲醫院一個月的真實數據。在所提供的數據集中,包括病人資料數據58017條,費用明細數據289799條,醫囑項目數據29434條,醫囑子類數據215條,核算分類58條,患者費別29條,本文主要研究病人資料表與費用明細表。
1.2 數據預處理
原始數據中包含了諸多屬性和復雜的關系,而且存在很多屬性缺少數據。為了讓數據更適合挖掘,算法的執行效率更高,在進行數據分析之前,需要先進行數據預處理。
本文對數據預處理的具體步驟如下:
(1)數據準備階段。將Excel表格中的數據導入到MySQL中,生成對應的表。
(2)醫保卡號為1的病人是普通病人,這類病人不存在欺詐嫌疑,所以用函數delete_PAPMI_IDNAME3_1()去刪除醫保卡id為1的數據,得到pa_patmas_new表。
(3)用函數delete_dhc_workload_not_in_pa_patmas_new()刪除藥費明細表dhc_workload中病人ID不在pa_patmas_new中的數據,得到dhc_workload_new表。
(4)對藥費明細表進行降維處理,去除其他無關屬性,使用函數create_bills()創建新的賬單表bills,該表有賬單號、病人ID、部門ID、醫生ID、總費用、拿藥次數6個屬性。其中,總費用和拿藥次數是判斷是否有欺詐行為的直接因素,科室、醫生和病人也可能存在合伙欺詐的行為,所以引入部門ID和醫生ID進行分析。
(5)由于dhc_workload_new表中同一個賬單號擁有多條記錄,我們需要將同一個賬號的多條記錄合并為同一條記錄。根據賬單號進行分類,統計每個賬單號的總費用,使用函數insert_bills_some_ data()插入賬單號、病人ID、科室ID、醫生ID、總費用。使用函數insert_times()統計每個病人ID的購藥次數。
(6)最后采用函數standardData(),將數據矩陣標準化為0或1。
經過預處理后,得到bills表數據一共54113條。數據預處理流程如圖1所示:
1.3 統計分析
對預處理后的數據,運用統計分析方法判斷是否存在一個病人持有多張卡、單張卡多人使用和病人死后仍有拿藥等欺詐行為。
1.3.1 一個病人持有多張卡
將新生成的病人資料表pa_patmas_new按照病人ID進行分組,然后統計每個病人擁有的醫保卡的數量,最后將擁有多張卡的病人ID和醫保卡號打印出來。
檢測結果:該數據集中無病人持有多張卡。
1.3.2 單張卡多人使用
對pa_patmas_new表按照醫保卡號進行分組,然后統計每一組病人的個數,最后將使用人數大于1的病人ID和醫保卡號打印出來。
檢測結果:一共找到186張醫保卡被至少兩個人重復使用,375個病人之間存在2個或者3個共用一張卡。
1.3.3 病人死后仍有拿藥記錄
部分病人在死后,醫保卡仍然繼續被使用。針對這一欺詐手段,首先需要在病人資料表pa_patmas_new中找到被標注為死亡的病人,查詢出已經標注死亡的病人ID,醫保卡號,死亡日期,然后在費用明細表dhc_workload_new中找到該病人的拿藥記錄,比較醫囑日期與死亡日期的前后,判斷此條消費記錄是否有欺詐。
檢測結果:pa_patmas_new表中一共有2位標注為死亡,拿藥日期在死亡日期之后記錄均0條,不存在醫保欺詐。
1.3.4 統計分析結論
在一個病人持有多張卡、單張卡多人使用、病人死后仍有拿藥記錄這三種欺詐手段中,只有第二種欺詐手段有欺詐記錄。在pa_patmas_new中,總共有35651張醫保卡,有186張卡被至少兩個病人共同使用,占總卡數的0.52%。
2 AGNES層次聚類算法及應用
2.1 使用粒子群算法求解屬性權重最優解
2.1.1 改進歐式距離
經過預處理后數據集設為X={X1,X2,…,Xn},其中,n表示數據集的個數,Xi(1≤ i ≤ n)由m個屬性組成,即Xi=(xi1,xi2,…,xim)。為了描述兩個樣本點Xp和Xq在數據集X上的相似度,通常使用歐式距離,一般定義為:
考慮不同屬性對于聚類效果的影響,以此歐氏距離去計算兩個樣本點的距離,可能導致聚類分析的結果不準確。故在歐式距離的計算公式中加入權重的概念,其定義為:
2.1.2 屬性權重評價函數
為了讓聚類的結果具有模糊性相對較小的性質,通過調整ω的值,使得分類的模糊程度盡量小,不相似的數據間距離更大,我們引入了屬性評價函數,用來評價聚類結果的相似度,使得總體可以達到模糊性最小。通過求取該函數的最優解,得到一組權重值。定義度量樣本點Xp和Xq的相似度的函數為Spq和,在普通的歐式距離下:
2.1.3 粒子群優化算法
粒子群優化(Particle Swarm Optimization, PSO)算法是一種搜索算法,其基本步驟如下:
(1)初始化粒子群中群體規模N,每個粒子的速度vi和粒子位置xi;(2)計算每個粒子的適應度值Fit[i];(3)比較各粒子的適應度值Fit[i]與個體極值Pbest[i],若Fit[i]>Pbest[i],則Pbest[i]=Fit[i];(4)比較各粒子的適應度值Fit[i]與全局極值gbest,如果Fit[i]>gbest[i],則gbest=Fit[i];(5)更新粒子的速度vi和位置xi;(6)如果誤差足夠好或者達到最大循環次數,則程序退出。否則返回步驟2。
通過計算,最終各屬性權重的分布情況如圖2所示。
由圖2可知,醫保欺詐行為與賬單的總費用和拿藥次數關系較大。
2.2 AGNES聚類算法
AGNES(Agglomerative Nesting) 是凝聚型層次聚類算法的一種,通過合并距離較近的簇、自底向上逐步進行數據聚類。本文在運用AGNES算法中,在計算類距離公式時采用平均距離:
在公式7中|Ci|表示類i中樣本的數目,|p-q|表示樣本p,q之間的距離。
AGNES算法的基本步驟如下:
(1)將數據集每個樣本都當做一個類,放入集合C中,計算任意兩個類之間的距離,設置聚類后的類的個數k;(2)得到當前類的個數m;(3)找到當前距離最近的兩個類ci和cj,并合并成一個類,計算新類與其他類的距離;(4)m大于k時,重復2、3。否則、返回集合C。
算法流程如圖3所示。
2.3 聚類結果分析
將經過預處理后的數據運用到AGNES算法中,考慮到內存溢出等問題,我們以5000個數據為一組,分別對其進行聚類。由于層級聚類缺乏目標函數,我們將k從[2,15]聚類結果顯示出來,從而判斷最佳聚類數,總共檢測出疑似欺詐點109個,部分疑似欺詐點如表1所示。
同樣以科室和醫生為對象進行分析,在本次檢測結果中,科室191以64次地高次數的出現,另外科室423也有22次。因此,這兩個科室很有可能存在為了自身利益騙取醫保基金的行為。在本次檢測結果中,檢測結果中醫生出現醫保欺詐中。醫生次數較多的有1180(23次)、2928(8次)、1060(7次)、794(6次)、1028(6次),總共50次,在本次檢測結果中占46%。與醫生1180相關的數據占總數據的21%,醫生1180給病人452114、病人230476、病人523612的拿藥次數分別是21、20和18,遠遠超過正常水平。另外,給病人191054一次性拿藥價格1338.08元。醫生2928的數據中,要么病人的費用為負數,要么病人單次拿藥記錄高昂,表明該數據也存在異常,有待進一步人工審查。
3 結語
本文對預處理后的醫院真實數據進行統計分析,針對一個病人持有多張卡、單張卡多人使用、病人死后仍有拿藥記錄這三種欺詐手段設計相應的檢測函數。其中檢測到一個病人持有多張卡0條記錄,單張卡被多人使用的醫保卡共186張,病人死后仍有拿藥的記錄為0條;采用AGNES對數據進行聚類分析,檢測疑似欺詐點109個,分析了檢測結果中的部門ID和醫生ID與欺詐行為的關系。
本文應用統計分析與AGNES聚類對比分析,通過在聚類過程中引入屬性權重能夠分析不同屬性的對聚類的影響程度,有效提高了聚類效果,避免了主觀評價對分類的影響。不足之處在于選取的算法時間復雜度和空間復雜度都較大,運行時間較長,在今后的工作中將進一步優化和完善。
參考文獻
[1]陳真,秦偉,徐緒堪,房道偉.大數據環境下醫保數據監測和預警模型構建[J].現代商業,2014,(20):101-103.
[2]史徑宇,冉松靈,李晨萍.醫保欺詐行為的主動發現——基于引進指標權重的聚類分析算法[J].數學建模及其應用,2016,5(01):54-59.
[3]李華,陳寧江.基于PSO的WFCM算法研究及其在醫保欺詐行為發現中的應用[J].廣西科學院學報,2017,33(01):32-39.
[4]Musal, R. M. Two models to investigate medicare fraud within unsupervised databases [J].Expert Systems with Applications,2010,37(12):8628-8633.
[5]楊維,李歧強.粒子群優化算法綜述[J].中國工程科學,2004,(05):87-94.