李鋒
[摘要]通過聚類分析法收集機構所在區域金融風險、內部控制、內部審計等相關數據,使用Python語言將機構分成群組,研究各群組內部各機構間的異同,從而分析全行經營管理情況,較好地平衡審計對象抽樣數量和審計覆蓋的有效性,降低審計風險。
[關鍵詞]聚類分析 審計對象 內部審計 Python
編制審計計劃時,有必要對審計對象進行合理
分類,再基于分類配置審計資源,在保證審計覆蓋率的基礎上,提高審計投入產出效率,有效降低審計風險。在審計對象特征值的維度為個位數時,分類相對比較簡單,人工處理也比較直觀。但當審計對象的特征維度增多,特征的量綱差異變大時,簡單的分類方法就難以奏效,需要借助數據挖掘中的聚類分析方法進行分類。
一、聚類分析概述
聚類分析是把數據分類成子集或簇的過程,每個簇中的對象相似而與其他簇中的對象相異,這些子集或簇的集合叫聚類。聚類分析是一種無監督學習,又稱自動分類,具有鮮明的數據挖掘功能,即事先并不需要知道聚類分析后形成的簇群個數或層次結構,而是自動根據不同維度特征值之間的距離,通過無監督學習和自動收斂,發現事先不能預見的聚類,從而較大程度地避免主觀判斷對分類的影響。
基本的聚類算法包括劃分方法、層次方法、基于密度和基于網格的方法等。不論采用哪種方法,對聚類的可行性和聚類結果的質量進行評估至關重要。評估包括三個方面:一是估計聚類的趨勢。即評估數據集均勻分布的概率,因為數據如果均勻分布,聚類沒有任何意義,換句話說,數據應該具有非隨機結構,一般可以用霍普金斯統計量來檢驗變量的空間隨機性。二是選擇最優的分類簇數。假設數據集有n個樣本,那么簇數應該在1和n之間,決定聚類后的簇數實際上就是一個顆粒度大小的問題,最適宜的簇數依賴于數據集分布的形狀和尺度。三是評估聚類結果的質量。在有基準可用的情況下,可以采用外在方法(監督方法)將聚類與基準比較;若沒有基準可用,可以用輪廓系數等工具來衡量簇的分離情況和緊湊情況。
二、聚類分析在審計對象分類與抽樣中的應用
商業銀行內部審計部門在年初制訂審計計劃時,需要考慮審計時間、人力等資源的限制,需要平衡審計對象的抽樣數量和審計覆蓋面,既保證審計評價的有效性,又要降低審計風險。比如,在規劃確定信用風險重點檢查機構時,首先需要根據機構所處的區域環境、資產規模、資產質量、風險隱患程度、主管部門的考核排名、上一年度審計報告揭示的重大問題數量等維度,對機構進行全方位的風險評估和分級分類,然后基于風險導向原則確定審計對象。由于描述機構的特征值維度較多,每個維度指標僅能刻畫審計對象的某個方面,所有指標相互配合共同刻畫審計對象的特征。指標變量選擇越準確、測量越可靠,得到的分類結果就越能準確地描述審計對象間的本質區別,簡單的篩選和分類無法進行全面完整的處理,而機器學習算法中的聚類分析可以根據多維空間距離對審計對象進行分組。
(一)聚類分析指標設計和數據處理
1.指標體系設計。對信用風險審計對象的選擇,不僅要考慮機構發展與風險的平衡能力、內部控制情況,還要考慮第三方監督、所在區域的總體風險狀況。綜合考量,選取5個維度9類指標,如表1所示。
2.數據分析工具。Python是一種解釋型、面向對象、動態數據類型的高級程序設計語言,具有豐富強大的庫,功能全面。其中Pandas庫可用于Excel文件的讀寫,Matplotlib庫可以可視化展現數據分析結果,Sklearn和Scipy庫包含大量機器學習的算法,包括各類聚類分析算法。本文基于Python環境引入Pandas、Matplotlib、Sklearn和Scipy庫,對機構的多維度數據進行聚類分析,在此基礎上進行審計對象抽樣。
3.數據處理和檢驗。
(1)對數據進行歸一化處理。從上述9類指標的數據類型看,有的是余額,有的是百分比,有的是排名,量綱差異比較大,需要對數據進行歸一化處理,減少量綱差異對結果的影響。采用常見的Z-Score方法對數據進行歸一化處理,代碼如下:
#讀取數據
import pandas as pd
df0=pd.read_excel(u'機構多維度數據.xlsx')
#對數據進行歸一化處理
df_zscore=(df0-df0.mean( ))/df0.std( )
處理后的指標數據前5條記錄如圖1所示。
(2)分析指標的相關程度。由于涉及的數據類別較多,還需分析指標之間的相關程度,避免過擬合。用Pandas庫自帶的相關系數計算函數指標間的皮爾遜相關系數(Pearson Correlation Coefficient)。代碼如下:
#計算指標間的相關系數
df_zscore.corr()
指標間的相關系數如圖2所示。
從數據看,除了不良率與綜合競爭力呈現較高的負相關(-0.858859),其他指標間的相關程度較弱。考慮到不良率與綜合競爭力相關有其業務合理性,故所有指標都參與最后的分析。
(3)選擇最優的分類簇數。聚類分類是一種無監督的分類方法,但在不同的分類簇數情況下,簇之間的特征差異不同,分類的區分度也不同。一般選用輪廓系數法來評估不同簇數分類的區分度,在合理分組的情況下,平均輪廓系數最大的就是最優的分類簇數。
#通過輪廓系數法計算最優簇數k
from sklearn.metrics import silhouette_score
Scores=[ ]#存放輪廓系數
for k in range(2,18):
estimator=Agglomerative Clustering(n_clusters=k,affinity='euclidean',linkage='ward')
estimator.fit(df_zscore)
Scores.append(silhouette_score(df_zscore,
estimator.labels_,metric='euclidean'))
plt.xlabel(u'簇數k')
plt.ylabel(u'輪廓系數')
plt.plot(range(2,18),Scores,'o-')
plt.axvline(Scores.index(max(Scores))+2,color='red',linestyle='--')
plt.annotate(u'最優簇6',xy=(6.3,0.23),xytext=(9.3,0.19),arrowprops=dict(facecolor='red',shrink=0.01))
plt.title(u'輪廓系數計算\n')
plt.xlim(2,18)
plt.show( )
從結果看,采取層次聚類法,將機構分成2到18簇的情況下,最優簇數為6,輪廓系數法計算結果如圖3所示。
(二)聚類分析結果及評價
根據上述對數據集簇數的計算,確定將聚類分成6個簇(群組)進行分析較為合適,每一簇內的機構在內外部風險形勢、內控水平和綜合競爭力等方面的特征相似。分層聚類并可視化展現的代碼如下:
from sklearn import metrics
fig,ax=plt.subplots(figsize=(10,8))
Z=hierarchy.linkage(df_zscore,method='ward',metric='euclidean')
P=hierarchy.dendrogram(Z,orientation="left",labels=df_zscore.index)
plt.axvline(4.8,color='yellow',label='66')
plt.title(u"機構分層聚類分析結果\n",{'fontname':'SimHei','fontsize':18})
plt.show( )
運行后得到的聚類分析譜系圖如圖4所示。垂直黃線為最優分組閾值,黃線右側莖葉及其子葉為同一簇(群組)的機構。
依據聚類分析譜系圖,將20家機構分類進一步整理成表格,如表2所示。
第一簇包括機構04、機構03、機構17和機構16,都處于經濟欠發達地區,區域金融風險等級為低,綜合競爭力和內控水平較低,業務規模較小,審計發現問題較多。其中,機構04和機構03所在的兩省地域相連、資源稟賦相近,分在一起具有合理性。
第二簇包括機構09、機構08、機構15和機構10。其中機構08和機構09位于同一地區,所在區域經濟處于上行階段、償債率指標低、區域金融風險處于中低程度,兩家機構的綜合競爭力和內控排名靠前,審計發現的重要問題也比較多。機構15和機構10分在一起出乎意料,機構15業務發展和內控水平都處于中游;機構10綜合競爭力排名靠前,但內控排名相對落后。
第三簇包括機構14和機構13,都是資產規模較大、內控評級靠前、資產質量優質的大型機構,區域經濟發達、金融風險等級為中,但兩家機構的綜合競爭力近年來出現下滑趨勢。
第四簇包括機構07、機構06和機構12,三家機構這幾年經營比較困難,資產質量較差,綜合競爭力和內控排名靠后,審計發現的問題數量處于平均水平。
第五簇包括機構11、機構01、機構02和機構05,四家機構位于同一地區,其中機構11和機構01規模相近,管理基礎較薄弱,內控水平較差;機構02的規模明顯小于其他三家,審計發現問題較少,綜合競爭力和內控排名不是很靠前;機構05所在區域經濟發達、金融風險程度為中,前幾年不良貸款暴露較多,但經過前期清收和處置后,不良率已降到較低水平。
第六簇包括機構19、機構18和機構20,三家機構地域相鄰,面臨相同的區域風險形勢和金融生態,金融風險等級為高,尤其是信貸缺口高,表明金融系統對損失的化解能力差;三家機構存量資產的質量差,內部綜合競爭力和內控排名靠后。
三、研究結論和應用建議
(一)研究結論
1.從聚類分簇看,20家機構具有明顯的聚集特征,機構之間具有簇內相似性和簇間相異性,結合持續審計掌握的情況,聚類結果具有較強的準確性。
2.聚類結果顛覆了對一些機構的傳統認識,一些機構情況已經發生了實質性變化,需要調整審計策略,有效降低審計風險。
3.聚類結果有助于預估各家機構的審計風險、審計開展的難易程度及審計工作量,可以根據各級審計機構的能力范圍和業務專長,合理搭配和安排審計項目。
(二)應用建議
聚類分析應盡可能選擇有代表性的指標,如果指標變量過多、關聯度高,容易導致分類不精確。在一些研究中采用因子分析降低維數,選取重點的有代表性的指標作聚類分析,以保證分類結果的精確性。還有一些研究采用主成分分析和因子分析的多元統計方法,計算提取主成分和公共因子,然后再進行聚類分析。
(作者單位:交通銀行總行審計監督局,郵政編碼:200120,電子郵箱:158845434@qq.com)
主要參考文獻
曹曉俊.對我國上市銀行經營業績的分析:基于主成分分析、因子分析和聚類分析的方法[J].宿州學院學報, 2016(7):25-29
丁紅艷,陳建,張敏.基于因子分析和聚類分析的新疆各地區經濟發展水平綜合評價[J].數學的實踐與認識, 2016(4):36-43
彭振江,楊李娟.金融周期視角下區域金融風險差異化防控研究[J].金融監管研究, 2017(5):50-67
Jiawei Han, Micheline Kamber, Jian Pei.范明,孟小峰譯.數據挖掘:概念與技術[M].北京:機械工業出版社, 2012