APP下载

基于统计分析和AGNES算法的医保欺诈行为自动检测研究

2018-12-08黄阳彭涛刘伟

数字技术与应用 2018年8期
关键词:粒子群优化算法统计分析

黄阳 彭涛 刘伟

摘要:结合深圳市某三甲医院一个月真实数据,对医保欺诈行为进行研究。方法:(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.

猜你喜欢

粒子群优化算法统计分析
基于改进SVM的通信干扰识别
基于自适应线程束的GPU并行粒子群优化算法
基于混合粒子群算法的供热管网优化设计
基于改进支持向量机的船舶纵摇预报模型
如何发挥新时期统计工作的作用之我见
以统计分析为基础的房地产税收优化分析
PMU最优配置及其在舰船电力系统中应用研究