基于数据挖掘的审计数据分析

来源:岁月联盟 作者:荆霞 时间:2014-01-04
        [摘要] 本文针对计算机审计的现状,提出了基于数据挖掘的审计数据分析流程,以及应用DBSCAN聚类算法查找审计证据的方法。
  [关键词] 计算机审计;数据挖掘;聚类算法;噪声数据
   
  随着经济和信息技术的不断发展,许多企业开始引入了ERP等系统,这些系统使得企业的众多活动数据可以实时记录,形成了大量有关企业经营管理的数据仓库。从这些海量数据中获取有用的审计数据是目前计算机审计的一个应用。对于审计人员来说,如何从被审计单位的海量数据中找出全面、高质量的审计数据从而找出审计证据是一个难题。本文利用数据挖掘技术对此问题进行了探讨并提出了解决的方法。
  数据挖掘(Data Mining)指的是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中提取出隐藏的、不为人知的却潜在有用的信息和知识的过程[1]。事实上,实际应用数据的质量和存储模式对于实施计算机审计并成功获取审计证据非常重要。由于被审单位信息系统软硬件平台的异构性和可能存在的人为故意隐瞒、造假等,为保证计算机审计工作顺利进行和审计结论的正确,对审计数据进行采集时必须对数据进行检查、控制和分析。
  
  1审计数据采集
  
  审计数据采集指在开展计算机审计时从被审计单位的财务及业务信息系统及其他数据源获得审计所需的电子数据并进行适当的格式转换[3]。一般来说,计算机审计中数据采集的方法主要包括以下几种:
  (1)利用被审单位信息系统的数据导出功能。大多数的信息管理系统都提供了数据导出的功能,审计人员直接可以利用该功能导出企业财务数据完成数据的采集。
  (2)利用通用的数据处理软件完成数据采集。如Access、SQL Server等都具有较强大的数据导入导出功能和数据转换功能。审计人员可以利用这些软件完成数据的采集。如被审企业原始数据为文本格式可以转换为数据库表格格式。
  (3)利用审计软件完成数据采集。如国家从2002年开始建设的“金审工程”就以现场审计实施系统(AO)及审计办公系统(OA)作为计算机辅助审计的工具。别外应用国内的企业财务审计软件、审计数据采集分析软件等都可以完成审计数据的采集。
  (4)利用专用程序接口完成数据采集。当被审计单位提供的审计数据的数据结构与已有的审计数据处理软件系统的数据结构差异较大时,可以在审计人员的协助下由专门的程序员开发接口程序,完成数据的采集,但成本相对较高。
  
  2 数据清洗
  
  利用数据挖掘对审计数据进行处理分类时,为了提高分类的准确性、高效性和可伸缩性,必须对数据库进行预处理,包括:数据的清洗、相关性分析、数据转换等。
  文献[4]中给出数据清洗的定义为:发现和消除数据中的错误和不一致来提高数据的质量。一般而言,审计数据库中数据采集于异质操作数据库,不可避免存在着数据的错误或不一致等问题,如数据造假、数据重复、数据缺失等错误。根据文献[5]提出的审计数据质量特征,必须要对采集的原始数据进行清洗,即由“脏”变“干净”,提高审计数据质量,这是保证审计结论正确的关键。
  数据清洗的一般过程如图2所示。
  (1)数据分析:为了清洗出干净的数据,必须对数据进行详尽的分析,包括数据的格式类别等。比如采集来的财务数据的字段类型、宽度、含义等。
  (2)模式转换:模式转换主要是指将源数据映射成目标数据模型,如属性的转换,字段的约束条件和数据库中各个数据集之间的映射和转换等。有时需要将多个数据表合并成一个二维表格,有时却要将一个数据表拆分成多个二维表格以便于问题的解决。
  (3)数据校验:上一步的模式转换可行否,需要进行评估测试,经过反复分析、设计、计算、分析才能更好地清洗数据。否则不经过数据校验可能有些错误数据不是很明显,不能被很好地筛选出来。比如模式转换时将一个数据集分解成多个数据表的时候,造成父表的主关键字的值和子表外部关键字的值不一致,从而形成孤立记录,影响审计人员审计证据的正确性,进而影响审计结论的正确性。
  (4)数据回流:用“干净”的数据替代原始数据源中的“脏”数据,避免下次数据采集时重做数据的清洗。
  有时候数据的清洗需要反复进行,审计人员需要对采集到的电子数据进行多次清洗,这样才能得到高质量的审计数据。
  
  3 数据挖掘实现
  
  经过数据预处理后的审计数据库包含了多个数据集,每个数据集又包含了若干数据记录或者称为元组,如何从这些二维表格数据中挖掘出有意义的审计数据至关重要。本文介绍一种利用聚类算法进行审计数据挖掘的算法。
  3.1 算法概述
  3.1.1聚类算法
  所谓聚类就是根据相似性对数据对象进行分组,发现数据的分布特征,使得每个聚类中数据有非常高的相似性而不同聚类中的数据尽可能不同[6]。它同分类的主要区别在于,分类事先知道所依据的数据特征,而聚类是要找到这个数据特征。作为数据挖掘的功能,聚类分析可以作为一个获取数据分布情况、观察每个类的特征和对特定类进行进一步独立分析的工具;聚类也能够有效处理噪声数据,比如数据库中普遍包含的孤立点、空缺或错误数据等。
  聚类分析算法通常有5类[7]:①基于划分的方法,如CLARANS;②基于层次的方法,如CURE和BIRCH;③基于密度的方法,如DBSCAN、OPTICS、GDBSCAN和DBRS;④基于网格的方法,如STING和WaveCluster;⑤基于模型的方法,如COBWEB。其中DBSCAN算法具有很好的过滤噪声数据的优点。本文探讨利用DBSCAN算法对审计数据进行处理,找出异常数据,查找出审计证据。
  3.1.2 DBSCAN算法
  DBSCAN算法的基本思想为[8]:对于同一个聚类中的每个对象,在给定的半径d的邻域中包含的对象不能少于某一个给定的最小数目MinPts(也称密度)。
  为了生存一个聚类,DBSCAN算法首先从数据集DB中选择任意一个对象p,并查找数据集DB中关于半径d的所有邻域对象,如果这个邻域对象的个数小于最小数目MinPts,则p为噪声数据;否则p的邻域对象形成一个初始聚类N,N中包含对象p及p直接密度可达的所有对象。然后确定该类中的每一个对象q是否为核心对象,若是,就将q的d—邻域内尚未包含到N的所有对象追加到N中,并继续判定新追加的对象是否为核心对象,如果是,重复上述追加过程,直到这个聚类不能再扩大为止。然后DBSCAN算法再在数据集DB中另选一个没有被标识为某个聚类或者噪声的对象,重复上面的操作,一直到数据集DB中的所有对象要么被标识为某个聚类、要么被标识为噪声数据为止。
  DBSCAN算法进行聚类的过程就是不断执行数据集查询比较的过程,最后产生的噪声数据就是通常所说的异常数据,对于帮助审计人员进行审计判断非常有效。图3表示了二维平面坐标下的噪声数据和若干聚类。
  3.2数据模式定义
  3.2.1项间的距离
  设Ri和Rj是数据集DB中的任意两条记录即某两个数据项,它们之间的距离定义为:
  式中,Ri(Rix,Riy),Rj(Rjx,Rjy)表示数据集中两个项Ri和Rj在二维空间的坐标点,因此dij表示Ri和Rj在二维空间坐标的距离。如果dij大于给定的值d,则表示Ri和Rj不属于同一个聚类分组。

图片内容