聚类分析视角下审计对象分类与抽样研究
2019-09-10李锋
李锋
[摘要]通過聚类分析法收集机构所在区域金融风险、内部控制、内部审计等相关数据,使用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