牛艷芳 鄧雪梅 陳偉
數(shù)據(jù)科學工具之R語言在審計數(shù)據(jù)分析中的應用探索
牛艷芳鄧雪梅陳偉
大數(shù)據(jù)時代背景下,傳統(tǒng)以經驗導向的計算機審計輔助工具,例如SQL 查詢、審計軟件顯得力不從心,亟需數(shù)據(jù)科學技術和方法提高審計數(shù)據(jù)分析的查核、評價和宏觀分析能力,而R語言正是集統(tǒng)計學、數(shù)據(jù)挖掘、計算機科學為一體的流行數(shù)據(jù)科學分析工具之一。本文首先從數(shù)據(jù)科學視角詮釋了審計數(shù)據(jù)分析概念,繼而從審計數(shù)據(jù)的獲取、處理、分析和可視化的步驟來介紹R語言在審計數(shù)據(jù)分析的可行性和優(yōu)缺點及應用實例,最后簡要指出R語言在審計數(shù)據(jù)分析中的應用建議。
審計數(shù)據(jù)分析數(shù)據(jù)科學R語言
大數(shù)據(jù)是當前It界最熱門的話題之一,政府、學術界和產業(yè)界皆對其投入極大熱情。按審計主體劃分為國家審計、內部審計和社會審計,同樣無一例外會受到巨大沖擊。大數(shù)據(jù)一般具有數(shù)據(jù)量大、結構復雜、產生速度快、價值密度低等特點,進一步細分為靜態(tài)數(shù)據(jù)的批量處理模式和在線數(shù)據(jù)的實時處理模式(程學旗等,2014)。不同審計主體的大數(shù)據(jù)各具特點:國家審計和社會審計屬于外部監(jiān)督,審計大數(shù)據(jù)特點屬于先存儲后計算,實時性要求不高,而數(shù)據(jù)準確性和全面性要求較高的靜態(tài)模式;內部審計屬于內部監(jiān)督,因為要支持組織目標實現(xiàn),其大數(shù)據(jù)特點與組織經營活動所產生的數(shù)據(jù)特征一致,例如互聯(lián)網、金融、通信等行業(yè)的內部審計大數(shù)據(jù)就屬于實時計算分析的動態(tài)模式。本文不強調審計主體所面臨的審計大數(shù)據(jù)差異,而是探索大數(shù)據(jù)分析工具在審計工作中的應用,以彌補傳統(tǒng)計算機輔助審計工具(Computer Assisted Audit techniques,簡稱CAAtS)的不足。
據(jù)筆者對我國CAAtS應用的了解,不同審計主體的審計人員所熟練掌握的CAAtS有較大差異:政府審計人員比較熟悉SQL和審計軟件AO;事務所審計人員比較熟悉面向賬套審計的審計軟件和EXCEL;內部審計不能一概而論,實力較強的公司會在ERP中嵌入內部審計模塊或者開發(fā)專門的審計分析平臺,而實力較弱的審計人員比較依賴EXCEL。反觀現(xiàn)在的大數(shù)據(jù)技術,一系列名詞一貫而出:Hadoop、Spark、Storm、Mahout、R、Python等。R和Python是當前最流行的大數(shù)據(jù)分析工具,兩者都能夠支持不同格式、不同數(shù)據(jù)源;支持絕大部分模型算法;支持多平臺(如Hadoop、Spark)運行,本文主要介紹R語言在審計領域的應用。
R語言對于絕大多數(shù)審計人員是陌生的,學習并熟練應用必然有一個過程。然而,要推動大數(shù)據(jù)技術在審計領域的應用,需要從大數(shù)據(jù)催生的數(shù)據(jù)科學視角重新審視審計數(shù)據(jù)分析范圍,在理解傳統(tǒng)審計數(shù)據(jù)分析和數(shù)據(jù)科學視角的審計數(shù)據(jù)分析的真正差異后,審計人員才能明白新興大數(shù)據(jù)工具如何彌補傳統(tǒng)CAAtS的不足,才能促進大數(shù)據(jù)環(huán)境下的審計技術和方法向“數(shù)據(jù)化、及時性、智能化和預見性”轉變(秦榮生,2014)。
(一)傳統(tǒng)審計數(shù)據(jù)分析發(fā)展
目前我國It環(huán)境下的審計數(shù)據(jù)分析方法主要有:賬表分析、數(shù)據(jù)查詢、審計抽樣、統(tǒng)計分析和數(shù)值分析等(陳偉,2012),常用CAAtS工具有:審計軟件、SQL、EXCEL、ACCESS等。審計人員運用SQL查詢、審計軟件對結構化數(shù)據(jù)的微觀審計方法極大促進了我國審計信息化發(fā)展,但是時過盡遷,在面臨大數(shù)據(jù)分析時,傳統(tǒng)輔助審計工具在提升審計查核、評價和宏觀分析能力方面顯得力不從心。
(二)數(shù)據(jù)科學視角下的審計數(shù)據(jù)分析
大數(shù)據(jù)催生了數(shù)據(jù)科學產生與發(fā)展,它是基于統(tǒng)計學、計算機科學、機器學習、數(shù)據(jù)挖掘等方法從結構化數(shù)據(jù)、半結構化和非結構化的復雜海量數(shù)據(jù)高效獲取有價值信息過程的新興交叉科學(魏瑾瑞等,2014)。近幾年與數(shù)據(jù)科學有關的理論、方法和工具在多個領域得到推廣與應用,相比較之下,審計數(shù)據(jù)分析發(fā)展遠落后于數(shù)據(jù)科學發(fā)展。美國注冊會計師協(xié)會(AICPA)在2014年發(fā)布的《在無線世界中重構審計》白皮書中指出:“數(shù)據(jù)科學領域中的各種技術與方法如果能夠應用在審計實踐中,審計人員就可以更有效地執(zhí)行審計,提供以前無法提供的多種形式的審計證據(jù)?!痹谠摪灼校珹ICPA對審計數(shù)據(jù)分析的定義也具有了數(shù)據(jù)科學味道。
AICPA認為審計數(shù)據(jù)分析是為執(zhí)行審計計劃、完成審計業(yè)務目標,對被審計單位數(shù)據(jù)進行數(shù)據(jù)發(fā)現(xiàn)、分析數(shù)據(jù)模式、識別異常、提取有用信息,或者進行相關分析、建模和可視化的科學和藝術。具體包括:(1)識別和分析數(shù)據(jù)中的異常模式和異常值;(2)為聚焦審計風險對財務業(yè)績及其他經營單元、系統(tǒng)、產品或其他維度的數(shù)據(jù)進行映射和可視化;(3)建立統(tǒng)計模型(如回歸模型)或其他模型來解釋數(shù)據(jù)與相關因素的關系,并從模型中識別顯著波動;(4)組合多種數(shù)據(jù)源或多種分析結果,從而產生更有意義的額外信息(AICPA,2014)??梢夾ICPA對審計數(shù)據(jù)分析的界定并沒有特別突出“大數(shù)據(jù)”,而是強調數(shù)據(jù)科學的模式識別、數(shù)據(jù)建模和數(shù)據(jù)可視化應用,而要實現(xiàn)這些功能必須依賴高級數(shù)據(jù)分析工具。
從大數(shù)據(jù)角度來講,學者認為對于審計師而言的大數(shù)據(jù)是多種數(shù)據(jù)類型的混合,包括傳統(tǒng)結構化的財務與非財務數(shù)據(jù)、業(yè)務數(shù)據(jù)、傳感器數(shù)據(jù)、EMAIL、通話紀錄、社交媒體數(shù)據(jù)以及其他內外部數(shù)據(jù),對于這些復雜數(shù)據(jù)的分析可以更好支持審計證據(jù)發(fā)現(xiàn),增強審計證據(jù)的充分性、可靠性和相關性(Alles,2015)。復雜審計數(shù)據(jù)分析與學術領域研究的社交網絡分析、文本挖掘、數(shù)據(jù)匹配、機器學習有很多相似之處,學術研究方法和成果應盡快向審計實務界轉移(Kyunghee,2015)。我國當前It審計學術研究不乏應用數(shù)據(jù)挖掘方法取得良好審計結論的研究成果,但學術研究強調了數(shù)據(jù)分析算法與模型應用,卻較少考慮審計人員如何在實踐中加以運用。
本文認為,數(shù)據(jù)科學視角下的審計數(shù)據(jù)分析是傳統(tǒng)審計數(shù)據(jù)分析的擴展和延伸,其數(shù)據(jù)對象由微量的結構化數(shù)據(jù)擴展為復雜多變的海量混合型數(shù)據(jù),其數(shù)據(jù)分析方法由傳統(tǒng)審計經驗導向的數(shù)據(jù)匯總與查詢轉變?yōu)閿?shù)據(jù)導向的數(shù)據(jù)挖掘、機器學習分析方法(AICPA,2014),那么分析工具就應該由從傳統(tǒng)CAAtS轉變?yōu)榧y(tǒng)計學、數(shù)據(jù)挖掘、計算機科學為一體的數(shù)據(jù)科學分析工具,而R語言正是將傳統(tǒng)審計數(shù)據(jù)分析引入數(shù)據(jù)科學分析的有力利器之一。
R語言是統(tǒng)計學界知名的開源數(shù)據(jù)分析工具,兼?zhèn)渫暾臄?shù)據(jù)處理、分析和繪圖功能, R通過程序內置函數(shù)和用戶自編函數(shù)實現(xiàn)全面的數(shù)據(jù)分析,這些函數(shù)集合可以從公共網站上免費下載,又稱為軟件包或擴展包(Packages)。目前,R軟件包已經擴展到6000多個,能夠支持多種架構多種類型的數(shù)據(jù)分析,例如基于Hadoop擴展包,R可以實現(xiàn)Hadoop平臺上的深度集成分析。鑒于R強大的數(shù)據(jù)分析能力,許多知名It巨頭公司基于R研發(fā)了新產品,例如IBM的Big R、甲骨文的Oracle R Enterprise、SAP的R for HANA等,微軟的Azure Machine Learning,而且微軟最近正式宣布在SQL Server2016版中全面支持R,阿里云基于R開發(fā)了XFILE平臺。R已成為大數(shù)據(jù)科學家和開發(fā)者的必備技能,下面就結合審計數(shù)據(jù)分析步驟來說明R語言如何實現(xiàn)的。
(一)R支持多種審計數(shù)據(jù)類型采集
傳統(tǒng)結構化數(shù)據(jù)是審計人員接觸最多的數(shù)據(jù)來源,即用數(shù)據(jù)庫二維邏輯表存儲及表現(xiàn)數(shù)據(jù),對于傳統(tǒng)數(shù)據(jù)R可以通過加載RODBC包,通過建立ODBC數(shù)據(jù)庫連接,即可以通過該包實現(xiàn)數(shù)據(jù)庫中的數(shù)據(jù)讀取,該包中Sqlquery函數(shù)支持SQL語句將符合條件的數(shù)據(jù)加載到R中,以便進行下一步分析。對于常見的結構化數(shù)據(jù)保存格式,如tXt、CSV,讀取更是十分簡單。
在大數(shù)據(jù)環(huán)境下,越來越多非結構數(shù)據(jù)成為審計人員發(fā)現(xiàn)審計線索的數(shù)據(jù)來源,例如基于Word、PDF會議文檔、XML標準數(shù)據(jù)、HtML網頁報告、以及各種工程圖紙、音頻或視頻文件等等,對這些數(shù)據(jù)類型進行單個查閱并不是難事,難點在于實現(xiàn)這些文件的批量讀取,而且還要進行一定深度、廣度的分析。審計人員往往安裝支持不同數(shù)據(jù)格式的分析軟件,分析效果有限。在R中,可以加載多個軟件包來讀取和分析這些非結構化數(shù)據(jù)類型,例如支持XML格式的XML包,支持網頁數(shù)據(jù)抓取的RCurl包、支持中文文本挖掘的tmcn包等,這些包可以輕松將非結構化數(shù)據(jù)轉換為結構化數(shù)據(jù),并包括對此類格式的處理和分析的函數(shù)和模型,極大彌補傳統(tǒng)CAAtS對非結構化數(shù)據(jù)分析的不足。在審計實踐中,用XLconnect包批量讀取半結構化的財務報表數(shù)據(jù),進行處理之后就可以轉換為結構化數(shù)據(jù),從而進行批量財務指標計算。
(二)R支持靈活的審計數(shù)據(jù)處理
由于被審計單位多樣,數(shù)據(jù)標準不一,審計人員必須做大量的數(shù)據(jù)處理和清洗工作,統(tǒng)稱為審計預處理。R有關數(shù)據(jù)處理的強大包可以滿足較難實現(xiàn)的審計預處理問題。例如R基礎包的apply函數(shù),可以實現(xiàn)表中行、列的自定義操作,對于行的操作可以大大彌補SQL游標處理效率較低的缺陷,對于SQL不易實現(xiàn)的復雜行數(shù)據(jù)操作,利用R強大的處理功能,往往是事半功倍的作用。此外,plyr包利用R的數(shù)據(jù)框、向量、列表多個數(shù)據(jù)對象,可以實現(xiàn)高效的數(shù)據(jù)分割和整合操作;reshape2包可以實現(xiàn)融(melt)數(shù)據(jù)和揉(cast)數(shù)據(jù)操作,輕松實現(xiàn)長寬數(shù)據(jù)的靈活轉換,以適應不同場合的數(shù)據(jù)分析需求,例如表1和表2的轉換,僅僅是用melt函數(shù)一句話就可以實現(xiàn)。
需要指出,對結構化數(shù)據(jù)庫中的后臺數(shù)據(jù)表轉換會涉及多表關聯(lián)、合并,且數(shù)據(jù)量較大,這種數(shù)據(jù)處理SQL操作會相對容易,而對于復雜操作或者涉及數(shù)據(jù)游標操作時,R操作會相對容易,且效率更高。
表1 原始寬數(shù)據(jù)示例
表2 轉換之后的長數(shù)據(jù)示例
圖1 某公司損益類科目關鍵詞發(fā)生頻數(shù)圖
(三)R具備豐富的科學數(shù)據(jù)分析模型
數(shù)據(jù)分析模型是It審計核心,審計人員基于多年審計實踐經驗,形成系統(tǒng)分析——類別分析——個體模型的審計分析思路,建立了多種基于業(yè)務處理邏輯、勾稽關系、法律法規(guī)等審計數(shù)據(jù)分析方法,這與AICPA提出的科學審計數(shù)據(jù)分析仍存有較大差距。R語言包含豐富的統(tǒng)計分析、數(shù)據(jù)挖掘和機器學習模型,其中分類、聚類、關聯(lián)規(guī)則等成熟算法十分有助于審計數(shù)據(jù)模式歸納、審計異常點發(fā)現(xiàn)和審計預測。一些審計人員會認為其他統(tǒng)計軟件SPSS、EVIEWS也可以提供這些算法,而正是因為R語言的開源性、更新速度快、可編程的特點,所提供的數(shù)據(jù)挖掘或統(tǒng)計分析功能的數(shù)量遠遠超過傳統(tǒng)統(tǒng)計分析軟件,其算法準確性與國際一流數(shù)據(jù)挖掘軟件SAS相媲美,R的CRAN網站現(xiàn)已經成為世界一流數(shù)據(jù)分析專家發(fā)布先進算法和模型的重要平臺。
本文認為審計數(shù)據(jù)分析的創(chuàng)新重點不是數(shù)據(jù)算法的創(chuàng)新,這是統(tǒng)計學家、計算機專家應該做的事情,審計人員應該做的是選擇合適模型應用在合適審計場景,并對模型進行選優(yōu),從而進行科學審計數(shù)據(jù)分析。例如,在高速公路審計的收費審計中,運用R基礎包中的kmeans模型(常用的聚類算法之一)對審計人員最關注的車貨總重、行駛里程和通行次數(shù)三個變量進行聚類,分析結果快速定位到全年超載最嚴重的10個收費站。這些收費站中,除J是省內收費站外,其他全部是省際邊界收費站,且以B收費站超載最嚴重,那么J和B收費站就成為審計重點;可以對其超載原因進行分析。另外,審計人員也可以把這10個收費站作為篩選條件,進一步查詢來往頻繁的車輛、來源入口站號和路段,重點超載路段的收入、成本和費用分析,特別大、中修費用花銷情況。可見,簡單的聚類分析可以給審計人員提供相對科學的審計線索,進而結合傳統(tǒng)審計查詢深入分析。
(四)R具備強大的數(shù)據(jù)可視化功能
數(shù)據(jù)可視化是數(shù)據(jù)分析的共性技術,可用于探索性分析和總結性的模型分析結果展示。Dilla 認為根據(jù)任務特征、任務復雜度和審計人員特點提出數(shù)據(jù)可視化的技術框架,以提高異常數(shù)據(jù)分析的效率和準確性(Dilla等,2015)。R的可視化功能十分卓越,被公認為業(yè)界的佼佼者。R基礎包的畫圖功能就可以運用圖形參數(shù)來指定字體、顏色、線條類型和標注等,可以滿足一般圖形展示要求。對于高級數(shù)據(jù)圖形展示,會用到ggplot2包,其理念是將繪圖與數(shù)據(jù)分離,以圖層作圖的理念,并把常見的統(tǒng)計數(shù)據(jù)變換融入到繪圖中,可以創(chuàng)建優(yōu)雅、信息豐富、定制化的圖形。這些圖形在其他軟件中不僅費時費力,且可能根本無法做到。憑證是審計人員最常見的數(shù)據(jù)分析對象,審計人員一般用審計軟件查詢或EXCEL篩選或SELECt語句查詢某一會計科目的大額收支情況,例如主營業(yè)務收入、應收賬款發(fā)生的收入來源、管理費用的招待費,每一次查詢事項有限??梢赃\用大數(shù)據(jù)文獻中見到的詞云圖來展現(xiàn)摘要關鍵詞,形成的憑證詞云圖如圖1所示,審計人員可以看到該單位某類會計科目發(fā)生頻次較多的業(yè)務有哪些。此外,審計人員不僅關注關鍵詞的發(fā)生頻數(shù),還需要關注發(fā)生次數(shù)較少而金額較大的經濟業(yè)務,那么將金額進行標準化處理,生成金額維度的詞云圖。這樣,該會計科目發(fā)生金額較大的業(yè)務和發(fā)生頻數(shù)較多的業(yè)務可以生成在一張圖中,有助于審計人員迅速把握下一步查詢事項。如果是在審計全覆蓋的要求下,可以將多家被審計單位批量生成詞云圖,方便進行集中比較和分析。
通過上述審計數(shù)據(jù)分析步驟的介紹,我們可以大體了解R語言能夠在審計數(shù)據(jù)分析中的用途。同時,還需要考慮R語言的缺點:(1)R是在內存中加載數(shù)據(jù)分析對象,會受到內存大小限制,對于大數(shù)據(jù)處理,需要專門的軟件包支持,例如不受內存限制的ff包、filehash包,或者支持中量級數(shù)據(jù)規(guī)模的data.table包,更可以加載支持分布式的Hadoop包,學習略有難度;(2)R的強大是因為有無限可擴展的軟件包支持,同時也會帶來R包的良萎不全,建議初學者運用成熟的R包進行分析;(3)由于R語言靈活的語法規(guī)則和繁多的數(shù)據(jù)包,學習具有一定學習曲線。
熟練掌握一門優(yōu)秀的數(shù)據(jù)分析工具是大數(shù)據(jù)環(huán)境下審計人員必備的專業(yè)勝任能力。審計人員在強有力的數(shù)據(jù)科學分析工具支持下,融合傳統(tǒng)審計分析經驗和科學數(shù)據(jù)分析模型、算法,才能真正達到利用數(shù)據(jù)分析手段提高審計查核和宏觀評價能力。R作為流行的數(shù)據(jù)科學分析工具之一,具有免費、高效、功能多、可視化強的優(yōu)點,是本文推薦審計人員學習的主要原因。結合筆者學習R語言過程,提出以下應用建議。
1.結合審計數(shù)據(jù)處理熟悉R語言的環(huán)境和語法。對于熟練數(shù)據(jù)處理技術的審計人員來講,學習R語言的技術門檻并不高。審計人員對應常見數(shù)據(jù)處理中的數(shù)據(jù)匯總、排序、查詢等操作學習在R中如何實現(xiàn),很快就發(fā)現(xiàn)R語言代碼靈活、簡練,且處理效率高,可以較好調動審計人員的學習積極性。對于熟悉SQL的審計人員,R的sqldf包更是為熟練掌握SQL人員研發(fā),可以輕松實現(xiàn)R與SQL語句的配合。對于審計數(shù)據(jù)的分割、合并、轉換等操作,則建議應用plyr和reshape2包,大大提高審計處理效率。
2.數(shù)據(jù)可視化應用。數(shù)據(jù)可視化因為受傳統(tǒng)分析工具限制,在審計實踐中未能引起足夠重視。對于R超強的可視化功能,可以在基礎包、Lattice包、ggplot2包等協(xié)助下,考慮運用哪些圖形來生動探索數(shù)據(jù)、直觀展現(xiàn)審計分析結果,審計人員可以發(fā)現(xiàn)數(shù)據(jù)可視化帶來的好處,更好地學以致用。
3.非結構化數(shù)據(jù)的處理與分析。對于文本、網頁、圖像、空間數(shù)據(jù)等非結構化的數(shù)據(jù)類型,需要專門軟件包支持,審計人員可以通過借鑒多個經典數(shù)據(jù)分析案例來熟悉這些包的應用,探索從非結構化數(shù)據(jù)中發(fā)現(xiàn)更多的審計證據(jù)和線索。
4.數(shù)據(jù)模型應用。數(shù)據(jù)模型的學習難度相對大一些,但是審計人員無需從底層的概率論、線性代數(shù)、科學算法學起,而是了解常用的分類、聚類、預測的模型有哪些,適合于哪些數(shù)據(jù),模型的優(yōu)缺點何在,如何實現(xiàn)模型選優(yōu)。在這方面,建議和高校、科研機構合作,全面梳理各種代表性的數(shù)據(jù)分析模型適用的審計分析場景,通過案例展現(xiàn)如何應用。只有讓審計人員了解科學數(shù)據(jù)模型的原理以及能夠達到的分析效果,才能結合審計需求拓展分析思路,才能真正踐行大數(shù)據(jù)技術的應用指導方針。
本文是山東省自然科學基金(編號:ZR2014GM013),教育部人文社會科學研究青年基金(編號:14YJCZH111),國家自然科學基金(編號:71572080)階段性研究成果。
作者單位:審計署審計科研所 山東省審計廳南京審計大學審計科學院
主要參考文獻
1.程學旗,靳小龍,王元卓,郭嘉豐,張鐵贏,李國杰.大數(shù)據(jù)系統(tǒng)和分析技術綜述.軟件學報.2014(9)
2.秦榮生.大數(shù)據(jù)、云計算對審計的影響研究.審計研究.2014(6)
3.魏瑾瑞、蔣萍.數(shù)據(jù)科學的統(tǒng)計學內涵.統(tǒng)計研究.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.