孤立点分析在审计疑点发现中的应用探讨
——基于K-Means聚类算法的Python实现
重庆理工大学会计学院 陈 旭 陈红平
【摘 要】 孤立点分析作为一种无监督方法,在结合具体审计业务选择适当审计指标的基础上,能够自主发现审计疑点。在自主学习并发现价值信息的过程中,孤立点分析方法既兼顾了对海量数据的总体分析,又可作为审计经验补充,辅助审计工作人员发现审计疑点,并实现疑点的精确定位。文章在分析孤立点研究现状及常用审计疑点发现方法的基础上,提出了基于孤立点分析的审计疑点发现方法,构建了基于孤立点分析的审计疑点发现框架,并尝试结合Y上市公司实际案例数据,利用Python语言实现建模分析,以探讨孤立点分析方法对于辅助审计疑点发现、提高审计工作效率的意义,为审计人员挖掘审计疑点提供了新思路。
【关键词】 孤立点; 审计疑点; 审计数据分析; Python语言
信息技术的蓬勃发展伴随着信息数据的迅速增长,为了有效收集并利用这些数据,企业不断提升管理信息化水平,许多单位纷纷建立起了TB甚至PB级数据库,从而导致审计数据呈现出量化的趋势[1]。面对海量数据,如何实现“审计全覆盖”并从中快速有效地发现疑点,运用“整体分析、系统研究、疑点发现、分散核验、精确定位”的数字化审计方式,充分发挥审计“免疫系统”作用,是目前审计人员面临的全新挑战。
在以风险为导向的审计模式下,审计人员充分考虑被审计单位经济环境、治理结构等因素,在合理职业怀疑基础上,系统地对审计风险进行识别与评估,制定并实施与风险相适应的审计计划,执行审计程序,搜集审计证据。常用审计数据分析方法要求审计人员具有相关的先验知识,在数据量暴增环境下,难以从海量数据中快速发现疑点。鉴于此,本文尝试对提高审计疑点发现效率的方法进行探讨。
如我校经过飞思卡尔、机器人擂台等比赛,获得了学校、企业等有关方面的投资和建设,建成了相关实验室(飞思卡尔实验室、机器人实验室、周立功单片机实验室等),促进了实验教学的发展,科创竞赛及学科建设参与实验教学后的情况具体如表1所示,教师在理论教学到实践实验指导中不断发现问题,并加以完善和提高教学方法,通过学科建设、科研项目和实验教学的有机结合,促进教学发展,提高了学生对实验技术方法的研究能力[11]。
一、研究现状
近年,关于聚类及孤立点分析方法在审计工作中的应用研究,许多专家学者进行了一些探索和尝试。杨松[2]改进了基于单元的异常检测算法,并给出了算法流程,讨论了异常算法如何应用于审计证据的获取,以医用注射器数据为例,详细介绍了在审计系统中使用孤立点算法的方法,证明了该方法的高效性。刘巍[3]设计编写了基于DBSCAN聚类的孤立点发现程序,并以某救灾资金审计项目数据为例,对程序进行验证,通过该程序,发现了一些孤立点,为审计人员提供了审计疑点分析新方向。孙等[4]以某高校基建工程结算审计项目为例,分析了聚类技术及其对电子政务审计的意义,利用相关财务及非财务指标展示了孤立点分析审计抽样模型的实施原理,验证了该模型对于快速确定可疑样本、提高审计效率的作用。程平等[5]根据电子政务抽样审计对多维数据进行分层处理的需求,提出在分层算法中融入基于主次属性划分的聚类方法,以适应多维数据分层抽样的需要,为电子政务审计分层抽样系统的实现提供了一种新的解决方案。杨蕴毅等[6]基于“在单一的聚类结果中,具有较低可疑性的点通常会被具有较高可疑性的点所掩盖”这一发现,建议使用迭代聚类方法分析审计疑点,并在筛除明显的小聚类之后,实行重复聚类,以获得更多信息,然后利用上市公司财报数据进行测试,对比可疑数据与证监会等机构的查处信息,验证了方法的可行性。谭艳娜[7]提出将局部异常因子(LOF)算法用于DBSCAN聚类的核心对象判定,对核心对象进行重新定义,并利用社保审计数据进行测试,验证了在不具备审计政策及法规知识等情况下,该算法快速有效地实现了数据疑点分析。郭洪建(2015)采用K-means聚类算法获得了10家商业银行的信用风险状况以及相应监管指标等级划分,经相关专家验证,该结果合理有效,得出了利用K-means聚类算法能提高审计分析质量的结论。
二、常用审计疑点发现方法分析
审计人员如何在采集的原始数据中发现审计疑点,对审计目标的实现有直接影响。在审计的整个实施阶段,审计疑点发现效率是审计项目质量和审计成果体现的重要保障,因此,审计人员应当重点关注如何利用高效的数据分析方法发现审计疑点。
目前,常用的审计数据分析方法包括利用SQL语句进行查询分析以及利用Excel、Access、审计软件等进行统计分析[8]。其中,SQL语句查询、审计软件等常用于政府部门及事业单位内部审计;会计师事务所常用Excel以及会计账表相关审计软件进行数据分析;大型企业在进行内部审计时往往采用专门的审计平台或在管理信息系统中嵌入审计模块,而中小企业则更依赖于利用Excel及Access进行审计数据分析。
常用的审计疑点发现方法需要审计人员具备一定的业务逻辑思维,了解数据勾稽关系,有明确的审计规则,用数据去验证先验知识,审计结果具有可预期性。这些基于审计人员经验的审计数据方法可以发现问题,却也存在一定的缺陷。首先,利用这些方法来发现问题是基于审计人员的经验及现有知识,一旦审计人员缺乏相关认识,就难以发现相应问题。其次,每个审计人员专业水平存在不一致性,经验存在主观性,对同一问题的判断也可能不一致。最后,审计经验的累积相对于数据发展往往较为滞后,导致问题的发现不能满足及时性需求,而这种不同步性也在一定程度上加大了审计风险。
三、基于K-Means聚类的孤立点分析方法
基于K-Means聚类的孤立点分析方法在模型应用前不需要利用训练集进行训练,是自主式学习,不以经验知识为基础,一定程度上弥补了常用审计疑点发现方法的缺陷。
针对在现状调查中发现的药品调剂过程中存在的领药次数过多、领药时间过长问题,从“人、机、料、法、环”(即人员、机器、原料、方法、环境)各个角度进行原因分析,并绘制要因分析鱼骨图,见图1。由图1可知,造成领药次数过多及时间过长的最主要原因为领药流程不合理、未合理安排领药时间。
(一)算法原理分析
为了发现这一审计疑点,审计人员通常需要了解被审计单位可能出现提前或延后确认销售收入以调整资产负债表日前后收益的情况,甚至会选择虚构销售收入。在具备这个先验知识基础上,审计人员需要对被审计单位进行针对性测试,进而发现审计疑点。但是,对于被审计单位的许多其他业务,审计人员往往不太了解情况,缺乏相关的规律性经验。这种情况下,审计人员根据抽样需求,从海量数据中抽取一定数量的样本进行分析,耗时耗力,而且可能获取不到有价值的审计疑点。本文试图使用基于K-means聚类的孤立点分析方法对Y企业销售业务数据进行挖掘分析,以验证该方法挖掘审计疑点的有效性。
生:我今天特别开心,知道(魔方)一共有27块,但是我看(魔方)转动的时候,中间那个地方好像不动,我就想会不会少一块,结果是真的少一块!
定义2:孤立点判断标准。设数据集X经聚类后被划分为 k 个不相交的数据集 V1,V2,V3,…,Vk,则分别是这k个数据集的样本数,其中假定样本数满足若中位数m和给定阈值参数φ与整数b满足条件:
则以标号b为临界,定义为孤立点集。
(二)算法描述
从上述原理可知,孤立点集即分类之后具有较少样本的聚类,其中阈值参数需预先确定,并且不同阈值参数对探测到的孤立点数量有影响。基于K-Means聚类的孤立点分析算法描述如下:
Y企业,主营电子相关商品销售业务,有多家销售门店。在对Y企业进行年度审计时,审计人员对资产负债表日前后销售业务进行截止性测试,测试过程中发现该企业12月20日的一笔销售记录没有与之对应的销售合同,且缺乏财务负责人签字。通过查看其他相关记录发现,12月20日的发货记录显示有1 000余件商品离库发出至购货方,通过对比被审计单位该期间货车出入记录,审计人员发现这笔发货记录与货车出入记录不符。经进一步调查发现,该企业上一年度被列为ST上市公司,为保住上市资格,将该批商品存放至临时租用库房,并虚构销售收入。
对比实施前、实施后的满意度,后者98.0%显著高于前者的80.0%,组间数据比对;差异有统计学意义(P<0.05)。见表2。
输出孤立点样本G;
步骤1:初始化聚类个数和初始聚类中心;
【注意事项】1.选用饮料瓶时要求大且无色透明、筒壁比较厚实、硬度比较大,这样气体对瓶口塞子做功时,塞子冲出才能快,响声大,瓶内白雾明显,学生易观察。
步骤2:按照K-Means算法聚类,得到k个聚类V1,V2,V3,…,Vk;
步骤3:分别计算k个聚类的样本数,即并根据从小到大的顺序对样本数进行排序,得到其中 V'1,V'2,V'3,…,V'k是经重新排序的聚类;
杨头村:以花岗岩类、火山岩类残坡积物为主,母岩风化后一般成粗骨土,土质疏松,砂砾含量大,母岩中微量元素含量均衡,尤其是氮、钾养分元素丰富。
步骤4:计算中位数m;
步骤5:按照下列方式计算临界参数b:
其中h0表示为背景图像,hi表示为i时刻获取的图像,x,y表示像素位置,di表示差值图像,ω为阈值,一般取10~30。
For i=1 to m
在对数据进行预处理之前,审计人员应首先分析具体的审计项目,综合数据字典和数据库描述文档分析数据的含义以及业务流程等,查找与实现审计目标相关的数据表和字段。换句话说,审计人员需要找到恰当的数据属性或数据属性组合进行孤立点挖掘。然后利用数据清洗、数据集成、数据变换、数据归约等技术对审计数据进行处理,减少数据的不一致、冗余、异常等问题,将数据转换为易于分析的形式,以保证数据分析的高效性。
因为合作-探究性学习贯穿于课程教学的全过程,所以学期初就要确立合作学习小组。根据心理卫生学的课程实际和这几年的实践体会,小组组成的较好做法是:1.小组成员3-5人。小组成员太多不便管理,容易责任分散。太少难以形成合作氛围,不能有效完成学习任务。2.确立小组长1人。小组长由责任心强、专业成绩较好、组织能力较强的学生担任,依次由个人自荐、小组成员推选或教师指派产生,如出现不能胜任的情况再用上述方式随时调整。3.小组成员异质搭配。实现性别、个性、学习态度和专业成绩等方面的差异化组合,力求成员间的相互带动和共同提高。小组成员可以被指定,也可以自由组合。自由组合的须说明组合理由及优势。
i=i+1
else
b=i
end if
end;
步骤 6:输出孤立点集合 V'1,V'2,V'3,…,V'b。
(三)孤立点分析的应用
孤立点分析在许多领域都受到了重视,例如信用卡与电信欺诈检测、贷款审批、天气及地震预测、客户分类等。其中,对信用卡与电信欺诈检测时,将每个客户用卡历史数据运用欺诈模型进行分析,当发现客户近期交易行为与历史记录不一致时,则认为可能存在欺诈,若经相关人员及时证实其具有欺诈性,则可一定程度上避免损失。
在许多数据挖掘技术中,孤立点被认为是影响数据挖掘技术效果的“噪声”数据,并且是在早期数据预处理过程中应该被剔除的数据。但是,对于审计工作来说,孤立点数据则是关键部分,审计实施过程中发现的孤立点能够为审计人员发现审计线索提供有利帮助。审计工作实践证明,在审计分析过程中,可疑数据往往是“孤立点”,这些数据通常隐藏在大量正常数据中,因而使用有效的孤立点发现技术来检测和发现这些数据可以为详细审计创造条件,进一步提高审计效率。
基于K-Means聚类的孤立点检测算法的优点是时间和空间的复杂度是线性或接近线性的,适用于大规模数据集分析,所以利用这种算法进行孤立点挖掘是高度有效的。因此,本文将基于K-Means的孤立点分析方法应用于审计疑点发现,为探索新的审计疑点发现方法做出尝试。
四、基于孤立点分析的审计疑点发现模型
基于K-Means聚类的孤立点分析方法有利于审计疑点发现以及审计线索挖掘,鉴于此,本文提出了一种基于孤立点分析的审计疑点发现模型(如图1所示)。
图1 基于K-Means聚类孤立点分析方法的审计疑点发现模型
(一)数据采集与预处理
根据审计目标和内容,审计人员利用SQL语句编程、ETL技术、MapReduce编程等方法从被审计单位处获得需要的原始审计数据。
If then
(二)孤立点检测
据我观察,明朝怡香院里要成为头牌,漂亮是绝对的,但漂亮只是入门槛,要做收费高的小姐,得有点文学修养,明朝的人好这口。如果你诗词歌赋都会来一点,点你牌的就不是一般的贩夫走卒,而是才子士人了。如果你能自己做点诗,出个集子什么的,那慕名而来的就是那些大才子、大文学家和政府官员。女人和什么样的男人交往决定了她的价码,要成为头牌,就要和最有分量的男人交往。
对于处理好的数据集,通过孤立点分析模型区分正常数据与异常数据,并利用可视化技术展示检测结果,有助于审计人员快速锁定异常数据。
(三)孤立点分析
在此步骤中,审计人员需要分析所有孤立点以确定它们是否是可疑数据,虽然发现的孤立点是挖掘的目标,但对于审计目标来说,它们不一定都具备利用价值。比如,有些孤立点虽然异常但却合理;而有些孤立点虽然异常,但其造成的影响很小,达不到重要性水平等。这些都需要审计工作人员根据审计目标对孤立点进行专业性判断,最后利用相关审计疑点确认方法发现审计线索。可疑数据的专业判断可以使用的常规技术有函证法、复算法、审阅法、盘存法和鉴定法等。
五、基于孤立点分析的审计疑点发现模型的Python应用实现
本文尝试利用Y上市公司实际业务数据,验证基于K-Means聚类的孤立点分析方法在审计疑点发现中的应用效果,同时利用Python语言,选择尽可能简单灵活的方式,以方便该方法的实际应用和推广。
(一)Python语言优势
本文利用Python语言进行孤立点分析,其语法简洁功能强大,应用广泛,数据分析库较为全面,同时可实现跨平台操作,能高效实现数据可视化。
定义1:中位数m。假设一维空间中的n项数据按从小到大的顺序排列为 m1,m2,m3,…,mn,如果 n 是偶数,则这n项数据中位数m=mn/2;反之,如果n是奇数,则m=[mn/2]+1,其中[]表示取整运算,如[1.2]=1。
(二)案例背景
输入给定的数据集X,判断是否是孤立的阈值参数φ;
K-Means聚类的主要原理是将n项数据对象分到k个分区中,而k需要预先确定,每个分区都视为一个聚类。首先,从n项数据对象中随机选择k项数据点作为初始聚类中心点,根据剩余对象与初始聚类中心点之间的相似度,按就近原则将各数据项分配给最近距离分区;然后重新计算各聚类中心点,并通过迭代方法持续修改直至所有聚类保持不变,形成最终聚类结果。
(三)数据预处理
一是利用SQL语句从被审计单位管理信息系统数据库中获取几个典型门店2018年1月1日到2018年12月31日的销售财务记录,并提取门店编号、日期、单据号、商品编号、数量、金额等字段数据作为分析样本数据。二是利用Pandas工具包将数据以object形式导入(如图2所示),以防止部分数据因类型问题存在无法导入的情况,利用dtypes属性查看导入数据类型,如图3所示,除日期外的所有字段类型均为object。三是将数量、金额等字段数据类型利用astype()函数转换为float形式(如图4所示),方便后续分析。四是利用count()函数查看数据汇总情况,判断是数据是否存在缺失值等情况,样本数据汇总情况如图5所示,各字段的数据量相同,说明不存在缺失值情况。五是进行数据标准化处理(如图6所示)。
图2 导入数据python实现
图3 字段导入后的数据类型
图4 字段转换后的数据类型
图5 数据汇总情况分析
图6 数据标准化处理代码
(四)孤立点挖掘及分析
由于该孤立点分析方法几乎不基于任何先验知识,笔者尝试将标准化后的数据聚类类别分别设置为2、3、4、5、6、7,观察其聚类及孤立点分析结果(代码如图7所示),并借助matplotlib工具包中的plot函数以散点图的形式显示孤立点分析结果(如图8所示),有利于审计人员更直观地观察到孤立数据。
图7 基于K-Means聚类的孤立点实现代码
图8 孤立点分析结果可视化
经对比发现,将数据聚为5类时,其聚类及孤立点检测结果较为合理,因此,笔者分析了聚类类别为5的孤立点分析结果。图9显示了数据聚类为5的孤立点分析散点图效果。
产品质量保障能力是企业对产品质量和质量事故监测,以及质量事故和风险控制的能力。从产品质量生产过程和售后服务角度来看,即企业是否建立相应保障机制,监测质量状况和识别质量风险,及时解决潜在的质量风险,对已经发生的事故进行分析,避免类似批次性质量问题的再发生。由此可见,产品质量保障能力包括计量管理水平、认证管理水平、质监部门监督抽查状况、质量事故记录情况、市场反馈及投诉记录情况、产品质量获奖情况等内容。
由于各个评价指标的单位、量纲、数量级不同,会对评价结果造成影响,因此要对数据进行归一化处理。评价方案中除灌溉用水量占总用水量的百分比和亩均用水量为成本型指标,其余均为效益型指标。
图9散点位置代表着对应序列号数据与中心点之间的距离。其中,黑点属于正常范围之类,即距离小于预定的阈值,而带标注灰点的距离则大于预设阈值,将其视为孤立点。因此,分析结果为第239、3 176、4 264及7 889条记录可能存在异常。其中,第7 889条记录经进一步查验,其对应的日期是12月20日,门店编号是1010003,商品编号为A012920030000,确认为案例背景中被发现的疑点记录。此外,第239条经查验是1010002号门店在2月26日发生的一笔编码为A011846660000的商品销售退回记录,金额较大,且与一般销售退回业务存在差异,考虑被审计单位是否在上一个会计年度也虚构了销售收入,然后这一年按销售退回进行处理,并冲销对应的主营营业收入与应收账款等,若能结合上一年的销售业财数据进行分析,发现这一事实,也应将其作为审计疑点。第3 176与第4 264条记录分别是1010002号门店在10月3日与12月10日发生的金额较大的销售记录,其中10月3日该企业为庆祝公司周年庆及国庆,做了促销活动,刺激了销量,该记录属于正常数据。第4 264条记录属于年末大额销售,应予以一定关注。
需要注意的是,利用该方法分析出的异常数据未必都是问题数据,需要审计人员进一步分析排查,以确定审计疑点。利用该算法分析出的结果仅作为一种参考或思路,可以将其理解为被挖掘出的孤立数据大概率是问题数据,有助于审计人员缩小审计疑点排查范围。
图9 孤立点分析效果图
六、结语
本文分析了常用审计疑点发现方法及其存在的缺陷,提出了一种K-Means聚类孤立点分析的审计疑点发现方法。以Y上市公司实际销售数据为样本,利用Python语言验证了K-Means聚类孤立点分析方法发现审计疑点的可行性和有效性,为审计人员提供了一种有效的数据分析方法。与常用审计疑点发现方法相比,该方法具有以下优点:
(一)更好地体现了审计人员专业性水平
与常用的审计疑点发现方法相比,该方法在发现疑点时不需要审计人员具备行业知识基础,不用依赖审计经验及业务知识等建立的审计分析模型进行数据分析。而对于异常情况的进一步分析则需要审计人员具备相当丰富的业务知识和审计经验,有助于提高审计人员的专业水平,提升行业人才竞争力。
余荫山房呈现了人居环境的丰富性与复杂性,在岭南造园史具有重要的地位。本文基于建筑美学文化地域性格理论,从跨学科交叉综合的视角探析了余荫山房空间布局、空间组织、植物景观与意境营造的审美文化内涵,阐述了余荫山房的地域技术特征、社会时代精神与人文艺术品格,以期在余荫山房造园智慧的挖掘、展示和传承中,推动当代岭南地域建筑创作理论与实践的创新性发展。
(二)通用性较强
孤立点分析方法不需要利用训练集进行模型训练,在使用时只需要根据数据特征选择合适的检测算法,就能适用于不同的审计业务中,并高效检测出被审计数据中的孤立点。
我们知道在无人机中有一个摄像机是搭载高清摄像机,若把其使用在飞行控制系统与地面控制系统之中的话,能够取得较好的效果,其一,基于使用此种摄像机,能够灵活转动摄像头完成拍摄工作,使拍摄数据图片成像更加清晰,以及清楚看到地形的层次分面与色彩层级。基于此,促进土地整治项目工作顺利完成。
(三)提高了审计效率
该方法首先利用孤立点检测算法对数据集进行初步检测,然后审计人员对检测出的孤立点数据进行分析判断,确定可疑孤立点,最后针对可疑孤立点进行专业判断,这种方法很大程度上缩小了审查数据量,从而提高了审计效率。
本文提出的方法为审计人员提供了疑点发现及数据分析的新思路,接下来需要不断完善这个方法,将其与其他数据挖掘算法结合,使其能更有效地应用到实际审计工作中。
【参考文献】
[1]秦荣生.大数据、云计算技术对审计的影响研究[J].审计研究,2014(6):23-28.
[2]杨松.基于关联规则和孤立点算法的审计证据获取研究[J].工业控制计算机,2017(2):98-99.
[3]刘巍.基于聚类的孤立点发现技术研究及其在审计中的应用[D].青岛:中国海洋大学硕士学位论文,2010.
[4]孙,宋迪.大数据环境下基于孤立点分析的审计抽样方法[J].财务与会计,2015(14):71-73.
[5]程平,崔纳牟倩.大数据时代基于财务共享服务模式的内部审计[J].会计之友,2016(16):122-125.
[6]杨蕴毅,孙中和,卢靖.基于迭代式聚类的审计疑点发现——以上市公司财报数据为例[J].审计研究,2015(4):60-66.
[7]谭艳娜.面向审计领域的聚类离群点检测研究[D].哈尔滨:哈尔滨工程大学硕士学位论文,2011.
[8]陈国珍,赵婧.信息化环境下内部审计技术方法研究[J].会计之友,2013(22):98-100.
【中图分类号】 F239.45
【文献标识码】 A
【文章编号】 1004-5937(2019)17-0072-05
【作者简介】 陈旭(1963—),女,重庆市人,重庆理工大学会计学院教授、硕士生导师,研究方向:会计信息化;陈红平(1994—),女,重庆市人,重庆理工大学会计学院硕士研究生,研究方向:会计信息化
标签:孤立点论文; 审计疑点论文; 审计数据分析论文; Python语言论文; 重庆理工大学会计学院论文;