牛艷芳 鄧雪梅 陳偉
數據科學工具之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)??梢夾ICPA對審計數據分析的界定并沒有特別突出“大數據”,而是強調數據科學的模式識別、數據建模和數據可視化應用,而要實現這些功能必須依賴高級數據分析工具。
從大數據角度來講,學者認為對于審計師而言的大數據是多種數據類型的混合,包括傳統結構化的財務與非財務數據、業務數據、傳感器數據、EMAIL、通話紀錄、社交媒體數據以及其他內外部數據,對于這些復雜數據的分析可以更好支持審計證據發現,增強審計證據的充分性、可靠性和相關性(Alles,2015)。復雜審計數據分析與學術領域研究的社交網絡分析、文本挖掘、數據匹配、機器學習有很多相似之處,學術研究方法和成果應盡快向審計實務界轉移(Kyunghee,2015)。我國當前It審計學術研究不乏應用數據挖掘方法取得良好審計結論的研究成果,但學術研究強調了數據分析算法與模型應用,卻較少考慮審計人員如何在實踐中加以運用。
本文認為,數據科學視角下的審計數據分析是傳統審計數據分析的擴展和延伸,其數據對象由微量的結構化數據擴展為復雜多變的海量混合型數據,其數據分析方法由傳統審計經驗導向的數據匯總與查詢轉變為數據導向的數據挖掘、機器學習分析方法(AICPA,2014),那么分析工具就應該由從傳統CAAtS轉變為集統計學、數據挖掘、計算機科學為一體的數據科學分析工具,而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語言過程,提出以下應用建議。
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.