蒋 辉,马超群,许旭庆,兰秋军
(湖南大学工商管理学院,湖南 长沙 410082)
信用评估是评估机构根据借款者的财务状况、经营状况、历史还款情况等各类相关信息,采取专家判断或数学分析方法和模型,对借款者如期足额偿还债务本息的能力和意愿进行评价,并按照其违约概率的大小以等级或分数的形式给出评估结论的行为,是降低信息不对称的重要手段。近年来,中小微企业在维持经济增长、缓解就业压力、方便群众生活、推动技术创新、促进国民经济发展和保持社会稳定等方面发挥着越来越重要的作用,企业数量不断增加,对信贷的需求也越来越强劲。与此同时,各类消费信贷市场规模也呈快速增长态势,这都大大激发了各类贷款机构对信贷评估模型的开发需求。
信用评估方法大体可分为三类,早期以信贷专家的主观经验判断为基础的一些方法,如5C法,5P法、LAPP法等较为普遍[1]。后来随着统计方法的推广,回归分析、判别分析、Logistic模型、Probit模型等被引入信用评估,如Altman提出的Z-score模型,穆迪公司的Risk-Calc模型等就是其典型代表[2-4]。近些年,随着机器学习的兴起,人工神经网络(ANN)、贝叶斯网络、支持向量机(SVM)、决策树等方法被大量引入,成为当前构建信用评估模型的热门和主流方法[5-11]。
在对企业特别是中小微企业进行信用评估时,数据缺失现象非常普遍,这大大降低了信用评估模型的有效性和准确性。信用评估工作中数据缺失的原因很复杂,既有被调查者不愿意提供所需信息,也可能是数据采集人员或系统没有收集到完整的信息,还有可能是某些数据项不适用于被调查者等等。总之,信用评估工作中是无法杜绝数据缺失现象的。正因为此,不少学者提出了一些处理方法。例如,Sustersic等提出了基于ANN的模型来解决当金融机构在缺乏常用信用评估数据的情况下的信用评估问题[12]。肖进等针对银行客户信用评估数据存在大量缺失的问题,设计了一种面向缺失数据的动态分类器集成选择模型[13]。Florez-Lopez从处理后模型的鲁棒性,准确性,复杂性等角度对比分析了信用评估中多种缺失值处理方法的性能[14]。
事实上,数据缺失是各类数据统计分析工作中的常见问题,已有不少经典的处理方法,大体归为两大类:删除法和填补法。其中删除法包括样本的删除和变量的删除。该方法简单直接,在数据样本充足,小比例缺失,以及变量间有较强的替代性时,不会带来严重的信息损失,因而不失为一种良好的方法。但当数据样本不是那么富裕,缺失比例较大时,该方法会造成较大的信息损失,此时填补法是更值得推荐的方法。填补法依据两类变量特性,一类是缺失变量自身的分布特性,另一类则是缺失变量与其它变量间的相关特性。典型的基于变量自身分布特性的方法有均值填补法和众数填补法[15]。其中前者适用于连续变量,而后者适用于离散型变量,两者均简单而常用。目前以变量间的相关特性为基础的填补方法更受关注,典型的有回归填补、最近邻填补、期望最大化法(EM)填补等[16]。一般而言,均值或众数填补会带来分布函数的扭曲估计[17]。而回归填补相较于均值填补则更有优势,其填补值更接近于真实数据分布,但显然它是建立在不同变量间数据具有线性回归关系的假设基础之上的。最近邻填补算法也比较简单,它获取缺失样本的K个最相似样本,然后以其加权值进行填补,但如何定义样本之间的相似性却是一个难题[18]。EM算法是一种对含有隐变量的概率分布参数进行极大似然估计的方法,其中隐变量是指不可观测的随机变量。EM算法的最大特点就是通过假设这一隐变量的存在,简化似然方程,将比较复杂的极大似然估计问题转化为较简单的极大似然估计问题[19]。有许多有关EM的改进与应用。如:Meng Xiaoli和 Rubin[20]通过给M步加上约束条件进行简化,提出了ECM法,又将Monte Carlo模拟方法与E步结合,提出了MCEM算法,扩大了EM算法的应用范围[21]。翟继友和张鹏[22]将遗传算法与EM算法相结合,对迭代过程起到了优化作用。总之EM算法受到不少学者的关注,成为缺失值处理的热点算法。
需要指出的是,这些工作绝大多数讨论的是模型构建阶段的问题,即怎样从有缺失的数据集中构建模型。而在模型构建好之后,也即在模型应用阶段,待评估样本也常有部分输入变量缺失的现象。一般的处理策略是在将数据输入评估模型前,对其进行填补,而后再通过模型运算获得其评估结果。针对这种应用场景,本文提出一种新的缺失值处理方法,称之为仿EM算法,它仿照了EM算法交替迭代逼近的思想,但不要求事先假定变量的分布函数,从而其适用性更强。另外,该算法不仅适用于单变量的填补,同时也适用于多变量缺失数据的填补。下文这样组织:首先第2节简要概述EM算法的原理,指出其缺陷,并给出了仿EM算法的基本思想与模型框架;然后第3节重点阐述本文算法两个关键阶段的具体实现;在第4节,基于3个信用评估数据集设计了相关实验,从数据还原能力以及基于填补后数据的模型评估能力两个角度,对比分析了仿EM算法与其它两个经典方法之间的性能差异;最后是结论,总结了仿EM算法的特点、优越性和适用范围。
以隐变量为离散型变量为例,EM算法可描述如下:
已知X是可观测变量,且有n个样本的集合,{x1,x2,…,xn}现要对X服从的分布进行极大似然参数估计,θ是待估计的参数,样本的似然函数用L(θ;x)表示。P(x)表示随机变量X的概率分布,z为隐变量Z取值范围的集合,zi为第i个样本隐变量的值。根据贝叶斯条件概率公式、Jesen不等式,样本的似然函数可以表示为以下形式:
(1)
其中,
(2)
表示在已知参数θ下,样本i属于每个隐藏分布Z的概率。
EM算法具体步骤如下:
(1)初始化参数θ(0)
(2)反复迭代以下两步,直到达到收敛条件,即|θ(k+1)-θ(k)|充分小:
E步:计算Qi(zi)=P(zi|xi;θ(k)),即根据第k次迭代的θ值,计算每个样本隐变量取各值的概率。
M步:计算
θ(k+1)=
(3)
即求解令函数l(θ)取得极大值时的θ值,并更新θ值。
迭代结束后,即可求得缺失数据下概率模型的最佳参数估计,并根据Qi(zi)值的大小估计得到缺失数据最可能的填补值。同理,将概率分布P(x)改成密度函数f(x),累加符号改为积分符号,即可对连续型缺失变量进行估计。EM算法最大的优点在于简单和稳定,每一步迭代都能保证极大似然函数值递增,并且收敛到一个局部最优值,当样本分布越接近总体分布,估计结果越精确。
不难看出,EM算法步骤可以通俗地解释为,先在假定模型参数值已知的基础上估计隐变量的取值,然后利用隐变量的估计值修正模型参数,这样不断交替估计迭代直到收敛。EM算法有一个不容忽视的缺点,即它要求给定似然函数,也即要求给定变量在不同待估参数值下的分布函数,这是一个非常苛刻的条件。本文所提出的仿EM填补方法借鉴了EM算法交替迭代的思想,但它并不对任何变量的分布函数进行假设。
仿EM填补算法分为两个阶段。其中第一阶段为准备阶段,其任务是基于朴素贝叶斯方法对各个变量构建相应的预测估计模型。即基于给定的原始数据集,以每个可能缺失的变量为输出变量,然后从其它变量中选择与其有关的若干变量作为输入变量,构建该变量对应的预测估计模型。这样n个可能有缺失的变量将对应n个预测估计模型,构成本算法的基础模型库,以此作为第二阶段算法的基础。此外,各个可能缺失变量的均值或众数值也在此部分计算给出,并作为模型库的其它参数结果保存以供第二阶段使用。
第二阶段的功能则是具体完成多变量填补任务。它采用仿EM算法,调用前一阶段生成的相应的单变量预测估计模型,通过反复迭代逼近的方式,直至结果收敛,实现多变量缺失值的填补。该模型的框架结构如图1所示。
图1 填补模型总体框架
设原始全体输入变量集为Xall={xl|l=1,2,…,L},可能出现缺失情况的变量子集为X={xi|i=1,2,…,I}⊆Xall,对每个变量xi∈X,(i=1,2,…,I),选取与其相关的若干重要变量构成子集,Xi={xj|xj∈Xall/{xi},且xj与xi相关}。
基于相应的完整的训练数据子集Di(即变量集Xi∪{xi}对应的数据子集),构建相应的单变量估计模型fi:Xi→xi。朴素贝叶斯方法是有着坚实的数学基础的分类算法,它以后验概率最大的取值作为预测估计值,本文以其作为单变量估计模型。其模型可表达为:
(4)
其中V为xi的取值集合。根据贝叶斯公式:
(5)
只需计算P(Xi|xi)P(xi)即可。P(xi)可从训练数据子集Di中估计得到,即数据中取值xi的样本总数除以训练集样本总数。直接计算P(Xi|xi)的难度很大,但在各属性相互独立时,有P(Xi|xi)=∏jP(xj|xi),其中P(xj|xi)可由数据子集Di估值。
此外,除了输出模型之外,算法在执行时也一并将训练子集数据中变量xi对应的分布函数及参数数据一并输出保存,其中包括各变量的平均数或众数、标准差、分布类型等。
简言之,单变量估计模型库的构建过程可表示为如图2所示。
图2 单变量预测估计模型库生成算法流程
不失一般性,对一给定的含缺失值的待补样本数据,不妨设其实际缺失变量集为Xm={x1,x2,…,xm}⊆X,如图3所示。
图3 待补样本数据示意
图4 交替迭代填补算法流程
上述填补更新过程必是收敛的,可证明如下:
(6)
(7)
由于更新时调用模型库的算法,返回的是对应最大后验概率估计值,必有:
(8)
因此,
(9)
可见,填补值的更新过程是一个使得填补值取值组合概率单调递增的过程。由于填补值的取值组合数有限,且概率值最大为1,即有界。因此该过程必然收敛,命题得证!
为了验证仿EM算法在信用评估缺失数据填补方面的有效性,本文以UCI数据库中两个著名的信用评估建模基准数据集以及人人贷平台真实信贷交易数据作为实验数据。实验从填补方法对原始数据的还原能力和信用评估模型判别能力两个角度,比较了仿EM算法、众数填补法、EM填补法的填补性能。其中众数填补是对离散型变量进行简单填补时最常用的方法,而EM算法则是当前比较流行的较为新颖的方法。
German数据集是来自于UCI数据库,记录了德国某银行的信用卡业务数据。该数据集包含了20个属性变量和1个类别变量,其中,类别变量有两个取值,{good,bad},分别代表了信用好的客户和信用差的客户。该数据集总共包含1000条样本,其中信用差的客户300个,信用好的客户700个。
Australia数据集也是来自于UCI数据库的著名信用评估数据集,描述了澳大利亚某银行的信用卡业务情况。该数据集共有690个客户样本,其中信用好的客户有383个,信用差的客户有307个。数据集包含14个属性变量和1个类别变量。为了保护客户的个人隐私,公开数据中的属性变量名称和分类变量取值都使用字母符号进行了替换。
人人贷数据集来源于人人贷理财端网站。该网站是P2P行业内最具影响力的品牌之一。本文通过程序爬取了2014年8月—2015年10月平台发布的借款成功的记录,并且确保未违约的记录都是清偿完毕的。数据集包含了包含12个属性变量和1个类别变量,类别变量将客户分为产生违约行为的坏客户和正常还清借款的好客户。本文实际使用样本数量30256条,其中违约记录2510条,占8.3%。
为了使变量适用于各类分类算法进行计算,本文对原始数据进行了分类型变量取值数字化操作,即基于变量不同取值状态的实际含义,令它们取0,1,2,3…等数值;同时,本文采用信息增益方法对连续型变量进行了离散化操作,若变量按照(a,b],(b,c]…分为若干个区间,则依次令各个区间的值为序数型数据1,2……。
4.2.1 比较各个方法对原始数据的还原能力
对原始数据的还原能力是指各个填补方法根据已知信息对缺失值填补后的值与真实值的接近程度。填补值与真实值之间的偏差越小,说明该方法对原始数据的还原能力越好。
首先从完整的数据集中采用随机抽样的方式选取一定比例的样本作为缺失数据集,剩余样本作为训练数据集。对于缺失数据集,随机选取三个变量作为缺失变量,人工设置缺失。接着,基于训练数据集分别采用仿EM算法、众数填补法、EM填补法对缺失数据集进行缺失值填补,然后将各个方法生成的填补值与真实值对比,计算填补性能。为了避免不同样本对实验结果的影响,最后的结果取10次填补实验的平均值。具体的实验过程如图5所示:
图5 还原能力实验过程
为了比较各个方法对原始数据的还原能力,本文引入均方根误差(RMSE)和预测结果准确率(Accuracy)两个评价准则。
(1)均方根误差(RMSE)描述了填补值与真实值的偏差,具体计算公式如下。RMSE越小,说明偏差越小,填补效果越好。
(10)
其中,n为缺失样本数,Xpred,i代表第i条缺失样本中变量X的填补值,Xreal,i代表第i条缺失样本中变量X的真实值。
但是RMSE指标只适用于取值存在程度上差别的有序型分类变量。例如“学历”变量,假设其有4种取值状态:1(高中及以下);2(大专);3(本科);4(研究生及以上)。当真实值为1时,预测其值为2相比于预测其值为3更接近于真实值,偏差更小。对于无序性分类变量,该指标没有意义。
(2)预测结果正确率(Accuracy)。缺失数据集中,正确填补的样本数与缺失样本数的比值。正确率越高,说明填补效果越好。
4.2.2 比较信用评估模型预测能力
在数据挖掘过程中,进行缺失值处理的目的在于提高后续模型预测结果的准确率。在实际应用信用评估模型时,新增客户常常存在部分字段缺失,必须进行缺失值填补才能完成风险预测。缺失值处理得越合适,模型的预测能力越好。因此,在其他条件相同的情况下,信用评估模型预测的准确率在一定程度上反映了缺失数据填补方法的优劣。
实验随机选取一定比例的样本作为缺失数据集,同时也作为测试集,剩余样本作为训练数据集,用来训练信用评估模型和缺失值填补模型。对于缺失数据集,随机选取三个变量,人工设置缺失,分别采用仿EM算法、众数填补法、EM填补法进行缺失值填补,得到完整测试集。对于训练数据集,采用随机森林算法训练模型,对填补后的完整测试集进行分类预测。为了避免不同样本对实验结果的影响,实验采用10折交叉验证技术,该方法将整个数据集随机分成10 等份,依次取其中1 份作为测试集,而余下的9 份作为模型训练集,如此循环10 次,称之为10 折交叉验证。最后结果取每份测试集结果的平均值。具体实验流程如下图6所示。
图6 评估判别能力实验过程
本文实验中EM填补算法采用R软件中Amelia包实现,其余算法均由Python3编写实现,随机森林算法采用Python中sklearn机器学习库实现。
本文从German、Australia、人人贷数据集中,分别随机选取三个变量进行实验。变量的具体信息如表1所示。
表1 各数据集的缺失变量取值情况
表2给出了三个数据集的缺失变量采用仿EM法进行一次填补实验后的真实值与填补值,由于篇幅限制,这里只列出了前20条缺失样本的填补结果。表3给出了填补实验后,分别采用仿EM法、众数填补、EM法填补后各缺失变量的RMSE与Accuracy平均值。由于Australia数据集的变量含义未被公开,无法得知其是否有序,因此没有计算其RMSE值。从表3中可以看出,在German和人人贷数据集中,采用仿EM法填补后的RMSE比众数填补、EM法填补都要小;同时,在三个数据集中,采用仿EM法填补后的Accuracy相比较于其它两种方法都高。因此,仿EM填补法对原始数据的还原能力要优于众数填补法与EM填补法。
表2 真实值与填补值对比示例(前20个样本)
续表2 真实值与填补值对比示例(前20个样本)
表3 三种方法填补后的效果比较
表4给出了10折交叉验证下,采用三种方法填补后信用评估模型的平均判别准确率。从表中可以看出,对三个数据集,采用仿EM法填补后的判别准确率也都是最高的。
表4 三种方法填补后信用评估模型准确率比较
解决信用模型应用阶段的数据缺失问题,能够为贷款机构提供更为科学、准确的决策支持,帮助其尽可能地减少信用风险带来的损失,意义重大。EM填补法作为一种经典的缺失值填补方法,需要事先假定变量分布函数,当变量的真实分布与假定分布相差较大时,往往无法获得较好的填补效果,本文提出的缺失值处理方法借鉴了EM算法交替迭代逼近的思想,同时又摈弃了其对分布函数的依赖,不仅适用于单变量的填补,同时也适用多变量缺失数据的填补。实验结果表明,无论是填补效果还是填补之后信用评估模型的判别准确性,所提出的仿EM算法都明显好于经典的众数填补法和EM算法。因此,在处理信用评估模型的多变量缺失问题时,仿EM算法是一种有效的处理方法。必须指出,本文仿EM算法建立在单变量预测朴素贝叶斯模型基础上,而该模型的一个重要假设是条件独立性。如何放松该假设仍是值得研究的一个问题。另外,本文实验假设了数据为分类变量,事实上,缺失变量也可以是连续型的,但前提是变量的条件分布函数已知,这样才能在第一阶段以此计算单变量朴素贝叶斯模型。若缺失变量条件分布函数未知,建议还是类似本文实验方法,对变量事先离散化处理,基于频数计算条件概率值,获得单变量预测模型库。