数据科学工具之R语言在审计数据分析中的应用探索
2016-09-21牛艳芳邓雪梅陈伟
牛艳芳 邓雪梅 陈伟
数据科学工具之R语言在审计数据分析中的应用探索
牛艳芳邓雪梅陈伟
大数据时代背景下,传统以经验导向的计算机审计辅助工具,例如SQL 查询、审计软件显得力不从心,亟需数据科学技术和方法提高审计数据分析的查核、评价和宏观分析能力,而R语言正是集统计学、数据挖掘、计算机科学为一体的流行数据科学分析工具之一。本文首先从数据科学视角诠释了审计数据分析概念,继而从审计数据的获取、处理、分析和可视化的步骤来介绍R语言在审计数据分析的可行性和优缺点及应用实例,最后简要指出R语言在审计数据分析中的应用建议。
审计数据分析数据科学R语言
一、前言
大数据是当前It界最热门的话题之一,政府、学术界和产业界皆对其投入极大热情。按审计主体划分为国家审计、内部审计和社会审计,同样无一例外会受到巨大冲击。大数据一般具有数据量大、结构复杂、产生速度快、价值密度低等特点,进一步细分为静态数据的批量处理模式和在线数据的实时处理模式(程学旗等,2014)。不同审计主体的大数据各具特点:国家审计和社会审计属于外部监督,审计大数据特点属于先存储后计算,实时性要求不高,而数据准确性和全面性要求较高的静态模式;内部审计属于内部监督,因为要支持组织目标实现,其大数据特点与组织经营活动所产生的数据特征一致,例如互联网、金融、通信等行业的内部审计大数据就属于实时计算分析的动态模式。本文不强调审计主体所面临的审计大数据差异,而是探索大数据分析工具在审计工作中的应用,以弥补传统计算机辅助审计工具(Computer Assisted Audit techniques,简称CAAtS)的不足。
据笔者对我国CAAtS应用的了解,不同审计主体的审计人员所熟练掌握的CAAtS有较大差异:政府审计人员比较熟悉SQL和审计软件AO;事务所审计人员比较熟悉面向账套审计的审计软件和EXCEL;内部审计不能一概而论,实力较强的公司会在ERP中嵌入内部审计模块或者开发专门的审计分析平台,而实力较弱的审计人员比较依赖EXCEL。反观现在的大数据技术,一系列名词一贯而出:Hadoop、Spark、Storm、Mahout、R、Python等。R和Python是当前最流行的大数据分析工具,两者都能够支持不同格式、不同数据源;支持绝大部分模型算法;支持多平台(如Hadoop、Spark)运行,本文主要介绍R语言在审计领域的应用。
R语言对于绝大多数审计人员是陌生的,学习并熟练应用必然有一个过程。然而,要推动大数据技术在审计领域的应用,需要从大数据催生的数据科学视角重新审视审计数据分析范围,在理解传统审计数据分析和数据科学视角的审计数据分析的真正差异后,审计人员才能明白新兴大数据工具如何弥补传统CAAtS的不足,才能促进大数据环境下的审计技术和方法向“数据化、及时性、智能化和预见性”转变(秦荣生,2014)。
二、数据科学视角下的审计数据分析诠释
(一)传统审计数据分析发展
目前我国It环境下的审计数据分析方法主要有:账表分析、数据查询、审计抽样、统计分析和数值分析等(陈伟,2012),常用CAAtS工具有:审计软件、SQL、EXCEL、ACCESS等。审计人员运用SQL查询、审计软件对结构化数据的微观审计方法极大促进了我国审计信息化发展,但是时过尽迁,在面临大数据分析时,传统辅助审计工具在提升审计查核、评价和宏观分析能力方面显得力不从心。
(二)数据科学视角下的审计数据分析
大数据催生了数据科学产生与发展,它是基于统计学、计算机科学、机器学习、数据挖掘等方法从结构化数据、半结构化和非结构化的复杂海量数据高效获取有价值信息过程的新兴交叉科学(魏瑾瑞等,2014)。近几年与数据科学有关的理论、方法和工具在多个领域得到推广与应用,相比较之下,审计数据分析发展远落后于数据科学发展。美国注册会计师协会(AICPA)在2014年发布的《在无线世界中重构审计》白皮书中指出:“数据科学领域中的各种技术与方法如果能够应用在审计实践中,审计人员就可以更有效地执行审计,提供以前无法提供的多种形式的审计证据。”在该白皮书中,AICPA对审计数据分析的定义也具有了数据科学味道。
AICPA认为审计数据分析是为执行审计计划、完成审计业务目标,对被审计单位数据进行数据发现、分析数据模式、识别异常、提取有用信息,或者进行相关分析、建模和可视化的科学和艺术。具体包括:(1)识别和分析数据中的异常模式和异常值;(2)为聚焦审计风险对财务业绩及其他经营单元、系统、产品或其他维度的数据进行映射和可视化;(3)建立统计模型(如回归模型)或其他模型来解释数据与相关因素的关系,并从模型中识别显著波动;(4)组合多种数据源或多种分析结果,从而产生更有意义的额外信息(AICPA,2014)。可见AICPA对审计数据分析的界定并没有特别突出“大数据”,而是强调数据科学的模式识别、数据建模和数据可视化应用,而要实现这些功能必须依赖高级数据分析工具。
从大数据角度来讲,学者认为对于审计师而言的大数据是多种数据类型的混合,包括传统结构化的财务与非财务数据、业务数据、传感器数据、EMAIL、通话纪录、社交媒体数据以及其他内外部数据,对于这些复杂数据的分析可以更好支持审计证据发现,增强审计证据的充分性、可靠性和相关性(Alles,2015)。复杂审计数据分析与学术领域研究的社交网络分析、文本挖掘、数据匹配、机器学习有很多相似之处,学术研究方法和成果应尽快向审计实务界转移(Kyunghee,2015)。我国当前It审计学术研究不乏应用数据挖掘方法取得良好审计结论的研究成果,但学术研究强调了数据分析算法与模型应用,却较少考虑审计人员如何在实践中加以运用。
本文认为,数据科学视角下的审计数据分析是传统审计数据分析的扩展和延伸,其数据对象由微量的结构化数据扩展为复杂多变的海量混合型数据,其数据分析方法由传统审计经验导向的数据汇总与查询转变为数据导向的数据挖掘、机器学习分析方法(AICPA,2014),那么分析工具就应该由从传统CAAtS转变为集统计学、数据挖掘、计算机科学为一体的数据科学分析工具,而R语言正是将传统审计数据分析引入数据科学分析的有力利器之一。
三、R语言及在审计数据分析中的应用步骤
R语言是统计学界知名的开源数据分析工具,兼备完整的数据处理、分析和绘图功能, R通过程序内置函数和用户自编函数实现全面的数据分析,这些函数集合可以从公共网站上免费下载,又称为软件包或扩展包(Packages)。目前,R软件包已经扩展到6000多个,能够支持多种架构多种类型的数据分析,例如基于Hadoop扩展包,R可以实现Hadoop平台上的深度集成分析。鉴于R强大的数据分析能力,许多知名It巨头公司基于R研发了新产品,例如IBM的Big R、甲骨文的Oracle R Enterprise、SAP的R for HANA等,微软的Azure Machine Learning,而且微软最近正式宣布在SQL Server2016版中全面支持R,阿里云基于R开发了XFILE平台。R已成为大数据科学家和开发者的必备技能,下面就结合审计数据分析步骤来说明R语言如何实现的。
(一)R支持多种审计数据类型采集
传统结构化数据是审计人员接触最多的数据来源,即用数据库二维逻辑表存储及表现数据,对于传统数据R可以通过加载RODBC包,通过建立ODBC数据库连接,即可以通过该包实现数据库中的数据读取,该包中Sqlquery函数支持SQL语句将符合条件的数据加载到R中,以便进行下一步分析。对于常见的结构化数据保存格式,如tXt、CSV,读取更是十分简单。
在大数据环境下,越来越多非结构数据成为审计人员发现审计线索的数据来源,例如基于Word、PDF会议文档、XML标准数据、HtML网页报告、以及各种工程图纸、音频或视频文件等等,对这些数据类型进行单个查阅并不是难事,难点在于实现这些文件的批量读取,而且还要进行一定深度、广度的分析。审计人员往往安装支持不同数据格式的分析软件,分析效果有限。在R中,可以加载多个软件包来读取和分析这些非结构化数据类型,例如支持XML格式的XML包,支持网页数据抓取的RCurl包、支持中文文本挖掘的tmcn包等,这些包可以轻松将非结构化数据转换为结构化数据,并包括对此类格式的处理和分析的函数和模型,极大弥补传统CAAtS对非结构化数据分析的不足。在审计实践中,用XLconnect包批量读取半结构化的财务报表数据,进行处理之后就可以转换为结构化数据,从而进行批量财务指标计算。
(二)R支持灵活的审计数据处理
由于被审计单位多样,数据标准不一,审计人员必须做大量的数据处理和清洗工作,统称为审计预处理。R有关数据处理的强大包可以满足较难实现的审计预处理问题。例如R基础包的apply函数,可以实现表中行、列的自定义操作,对于行的操作可以大大弥补SQL游标处理效率较低的缺陷,对于SQL不易实现的复杂行数据操作,利用R强大的处理功能,往往是事半功倍的作用。此外,plyr包利用R的数据框、向量、列表多个数据对象,可以实现高效的数据分割和整合操作;reshape2包可以实现融(melt)数据和揉(cast)数据操作,轻松实现长宽数据的灵活转换,以适应不同场合的数据分析需求,例如表1和表2的转换,仅仅是用melt函数一句话就可以实现。
需要指出,对结构化数据库中的后台数据表转换会涉及多表关联、合并,且数据量较大,这种数据处理SQL操作会相对容易,而对于复杂操作或者涉及数据游标操作时,R操作会相对容易,且效率更高。
表1 原始宽数据示例
表2 转换之后的长数据示例
图1 某公司损益类科目关键词发生频数图
(三)R具备丰富的科学数据分析模型
数据分析模型是It审计核心,审计人员基于多年审计实践经验,形成系统分析——类别分析——个体模型的审计分析思路,建立了多种基于业务处理逻辑、勾稽关系、法律法规等审计数据分析方法,这与AICPA提出的科学审计数据分析仍存有较大差距。R语言包含丰富的统计分析、数据挖掘和机器学习模型,其中分类、聚类、关联规则等成熟算法十分有助于审计数据模式归纳、审计异常点发现和审计预测。一些审计人员会认为其他统计软件SPSS、EVIEWS也可以提供这些算法,而正是因为R语言的开源性、更新速度快、可编程的特点,所提供的数据挖掘或统计分析功能的数量远远超过传统统计分析软件,其算法准确性与国际一流数据挖掘软件SAS相媲美,R的CRAN网站现已经成为世界一流数据分析专家发布先进算法和模型的重要平台。
本文认为审计数据分析的创新重点不是数据算法的创新,这是统计学家、计算机专家应该做的事情,审计人员应该做的是选择合适模型应用在合适审计场景,并对模型进行选优,从而进行科学审计数据分析。例如,在高速公路审计的收费审计中,运用R基础包中的kmeans模型(常用的聚类算法之一)对审计人员最关注的车货总重、行驶里程和通行次数三个变量进行聚类,分析结果快速定位到全年超载最严重的10个收费站。这些收费站中,除J是省内收费站外,其他全部是省际边界收费站,且以B收费站超载最严重,那么J和B收费站就成为审计重点;可以对其超载原因进行分析。另外,审计人员也可以把这10个收费站作为筛选条件,进一步查询来往频繁的车辆、来源入口站号和路段,重点超载路段的收入、成本和费用分析,特别大、中修费用花销情况。可见,简单的聚类分析可以给审计人员提供相对科学的审计线索,进而结合传统审计查询深入分析。
(四)R具备强大的数据可视化功能
数据可视化是数据分析的共性技术,可用于探索性分析和总结性的模型分析结果展示。Dilla 认为根据任务特征、任务复杂度和审计人员特点提出数据可视化的技术框架,以提高异常数据分析的效率和准确性(Dilla等,2015)。R的可视化功能十分卓越,被公认为业界的佼佼者。R基础包的画图功能就可以运用图形参数来指定字体、颜色、线条类型和标注等,可以满足一般图形展示要求。对于高级数据图形展示,会用到ggplot2包,其理念是将绘图与数据分离,以图层作图的理念,并把常见的统计数据变换融入到绘图中,可以创建优雅、信息丰富、定制化的图形。这些图形在其他软件中不仅费时费力,且可能根本无法做到。凭证是审计人员最常见的数据分析对象,审计人员一般用审计软件查询或EXCEL筛选或SELECt语句查询某一会计科目的大额收支情况,例如主营业务收入、应收账款发生的收入来源、管理费用的招待费,每一次查询事项有限。可以运用大数据文献中见到的词云图来展现摘要关键词,形成的凭证词云图如图1所示,审计人员可以看到该单位某类会计科目发生频次较多的业务有哪些。此外,审计人员不仅关注关键词的发生频数,还需要关注发生次数较少而金额较大的经济业务,那么将金额进行标准化处理,生成金额维度的词云图。这样,该会计科目发生金额较大的业务和发生频数较多的业务可以生成在一张图中,有助于审计人员迅速把握下一步查询事项。如果是在审计全覆盖的要求下,可以将多家被审计单位批量生成词云图,方便进行集中比较和分析。
通过上述审计数据分析步骤的介绍,我们可以大体了解R语言能够在审计数据分析中的用途。同时,还需要考虑R语言的缺点:(1)R是在内存中加载数据分析对象,会受到内存大小限制,对于大数据处理,需要专门的软件包支持,例如不受内存限制的ff包、filehash包,或者支持中量级数据规模的data.table包,更可以加载支持分布式的Hadoop包,学习略有难度;(2)R的强大是因为有无限可扩展的软件包支持,同时也会带来R包的良萎不全,建议初学者运用成熟的R包进行分析;(3)由于R语言灵活的语法规则和繁多的数据包,学习具有一定学习曲线。
四、R语言在审计数据分析中的应用建议
熟练掌握一门优秀的数据分析工具是大数据环境下审计人员必备的专业胜任能力。审计人员在强有力的数据科学分析工具支持下,融合传统审计分析经验和科学数据分析模型、算法,才能真正达到利用数据分析手段提高审计查核和宏观评价能力。R作为流行的数据科学分析工具之一,具有免费、高效、功能多、可视化强的优点,是本文推荐审计人员学习的主要原因。结合笔者学习R语言过程,提出以下应用建议。
1.结合审计数据处理熟悉R语言的环境和语法。对于熟练数据处理技术的审计人员来讲,学习R语言的技术门槛并不高。审计人员对应常见数据处理中的数据汇总、排序、查询等操作学习在R中如何实现,很快就发现R语言代码灵活、简练,且处理效率高,可以较好调动审计人员的学习积极性。对于熟悉SQL的审计人员,R的sqldf包更是为熟练掌握SQL人员研发,可以轻松实现R与SQL语句的配合。对于审计数据的分割、合并、转换等操作,则建议应用plyr和reshape2包,大大提高审计处理效率。
2.数据可视化应用。数据可视化因为受传统分析工具限制,在审计实践中未能引起足够重视。对于R超强的可视化功能,可以在基础包、Lattice包、ggplot2包等协助下,考虑运用哪些图形来生动探索数据、直观展现审计分析结果,审计人员可以发现数据可视化带来的好处,更好地学以致用。
3.非结构化数据的处理与分析。对于文本、网页、图像、空间数据等非结构化的数据类型,需要专门软件包支持,审计人员可以通过借鉴多个经典数据分析案例来熟悉这些包的应用,探索从非结构化数据中发现更多的审计证据和线索。
4.数据模型应用。数据模型的学习难度相对大一些,但是审计人员无需从底层的概率论、线性代数、科学算法学起,而是了解常用的分类、聚类、预测的模型有哪些,适合于哪些数据,模型的优缺点何在,如何实现模型选优。在这方面,建议和高校、科研机构合作,全面梳理各种代表性的数据分析模型适用的审计分析场景,通过案例展现如何应用。只有让审计人员了解科学数据模型的原理以及能够达到的分析效果,才能结合审计需求拓展分析思路,才能真正践行大数据技术的应用指导方针。
本文是山东省自然科学基金(编号:ZR2014GM013),教育部人文社会科学研究青年基金(编号:14YJCZH111),国家自然科学基金(编号:71572080)阶段性研究成果。
作者单位:审计署审计科研所 山东省审计厅南京审计大学审计科学院
主要参考文献
1.程学旗,靳小龙,王元卓,郭嘉丰,张铁赢,李国杰.大数据系统和分析技术综述.软件学报.2014(9)
2.秦荣生.大数据、云计算对审计的影响研究.审计研究.2014(6)
3.魏瑾瑞、蒋萍.数据科学的统计学内涵.统计研究.2014(5)
4.AICPA. (2014). Reimagining auditing in a wired world (WhitePaper)[EB/OL]. New York: American Institute of Certified Public Accountants.
5.Michael G. Alles. 2015.Drivers of the Use and Facilitators and Obstacles of the Evolution of Big Data by the Audit Profession[J]. Accounting Horizons,2:439-449.
6.Kyunghee Yoon, Lucas Hoogduin, and Li Zhang. 2015. Big Data as Complementary Audit Evidence[J]. Accounting Horizons, (2): 431-438.
7.William N. Dilla, Robyn L. 2015.Raschke Data visualization for fraud detection: practice implications and a call for future research[J]. International Journal of Accounting Information Systems 16:1-22.