太自红
在审计数据分析中,当处理一些关系复杂模糊问题时,使用关系性数据库比对难于到达目标,借助数据挖掘工具能很好解决此类问题,尤其是关联规则算法,很多审计场景都很适用。本文将结合审计实例,探讨下关联规则算法在审计数据分析中的运用。
一、关联规则算法概述及模型抽象
关联关系反映事件间依赖关联关系,这种关系基于数据统计描述认定,与关系数据库中表间大于等于等逻辑关系不同,他用统计结果描述事件关系,形如:X->Y,表示X事件发生后,Y事件会有一定概率发生,其中X事件,Y事件可定义为集合,如X表示{x1,x2,x3}的集合,Y表示{y1,y2}的集合,则X->Y表示x1,x2,x3同时发生后,y1,y2同时发生有一定概率,{x1,x2,x3}、{y1,y2}都称为项集,概率是由发生事件明细数据统计而来,关联规则目的在于在一个数据集中找出各项集之间的关联关系。
二、关联规则算法在审计分析中的场景
在审计工作中寻找事件关联关系的场景很多,如在工程招投标审计中,审查投标单位是否内部关联对工程项目围标操作,通过分析项目投标记录事件,发现投标单位间关联程度,当多个单位在多次投标中都同时出现时,我们视为非偶然事件,通过计算这些事件在总样本中的概率,把高概率事件作为审计关注重点。
上述问题的复杂性在于多个单位的中“多”和多次中的“多”,多个单位是指单位不同形式组合,如在所有投标事件中,出现了N家单位,如果设定是两家以上单位组合才有意义,则首先要形成C种组合可能,继而在这种组合上做出次数统计。使用sql表间联接完成此种组合十分复杂,集合{A,B,C}和集合{A,C,B}代表的同一集合,在sql中难于实现和区分,无法继续频数统计。而使用关联规则算法工具,只需给出阈值,算法能自动迭代检索所有投标事件,根据设定的阈值(至少多少家投标单位,至少多少次重合等),形成投标事件的频繁项集(单位组合),找出满足户最小信任度的规则(次数统计)的关联关系。
类似审计思路有医保审计结伴刷卡住院,通过分析医保刷卡记录,寻找多个患者多次同时住院刷医保卡,将这种非偶然事件作为审计重点关注,审计是否存在医院办理假住院,集中刷医保卡骗取医保现象;还有在财政惠农补贴审计中,可分析惠农补贴卡结伴刷卡取款现象,通过寻找多张不同用户卡多次同时取款的非偶然行为,推斷惠农银行卡可能集中在某一个人手中,进而发现涉嫌侵占惠农补贴的问题。
三、使用sqlserver数据挖掘工具做关联规则分析
1.挖掘数据的准备。关联规则算法主要用到事例表和事例嵌套表,事例表反应发生的每次事件,事例嵌套表反应每次事件中参与者,事例表中的事件ID是事例嵌套表的外键。如工程招投标围标关联管理规则分析,事例表就是每个投标事件,可用标段名称作为事例表主键,嵌套表为参与每个事例的投标公司,在惠农补贴卡结伴刷卡的关联规则分析中,定义某个时间段在某个ATM机上取款作为事例,事例嵌套表则为发生这种行为的卡用户。下图为工程投标关联规则事例表和事例嵌套表的结构。
2.模型参数设定。关联规则算法由于运算量大,因此需要根据业务实际需求配置不同参数,提供的参数有最大项集允许生成数(maximum_itemset_count),用于限制项集的最大迭代、单个项集允许最大项数(maximum_itemset_size)、项集最大事例数(maximum_support),关联规则重要性阈值(minimum_importance)、单个项集最小项数(minimu_itemset
_size),关联规则最小概率(minimum_probablility),项集最小事例数(minimu_support),项集出现重合的最小次数,当满足时产生规则。以项目招投标的关联规则分析为例,要把至少3家单位超过5次以上同时投标情况作为审计重点关注,考虑运算量和实际需要,实际中只需要挖掘出一定区间就能说明问题,可对8家以上同时或超过10次以上同时投标的情况不继续运算,因此把参数设置成minimu_itemset_size=3;minimu_support=5;maximum_itemset_size=8;maximum_support=10。
3.模型分析结果使用,挖掘模型查看器中清晰表达出各家公司间的关联关系,如图2的依赖关系网中,可以看到不同公司关联关系集合,把每组集合作为审计重点,进一步调查是否有关联关系参与围标串标。
本篇介绍了关联规则算法的一些基本概念和思想,并以工程招投标围标审计为例,使用sqlserver数据挖掘工具中做了实例,探讨了关联规则算法在审计数据分析中的运用。在审计实践中,通过对随机事例的非偶然假设,使用关联规则算法分析事例主体或客体间的关联关系,有利于从大量事例中发现人为违规操作的问题,审计数据分析工作者借助数据挖掘工具,只需做出模型抽象和数据准备就能高效实现这一目标。
(作者单位:江西省审计厅)