用SPSS-Modeler分析银行信用风险评分方法

实际经济生活中引发信用风险、市场风险和操作风险的因素往往是相伴而生,由于多重因素的风险管理失控而导致整个机构遭受灭顶之灾,银行业监管机构要求商业银行对信用风险、市场风险和操作风险资本需求的评估采取一种全方位的风险管理观。

因业务需要,银行必需承担风险。一般是风险越大,预期收益越大。风险与收益有非对称关系。风险本身并不是坏东西,我们的主要责任是管理风险。最糟糕的是对风险没有正确认识和错误管理风险。

银行获取的客户信息具有不完全性,信用风险具有非系统性特性,信用风险收益率呈非正态分布。我们做实验的目的就是在这种情况下使用以计量模型为代表的量化管理工具和手段对申请贷款的人的信用风险进行可行的分析。运用先进的数据挖掘技术和统计分析方法,通过对申请贷款的企业或个人客户的数据资料进行统计分析,挖掘客户特征与信用风险之间的关系,并将其发展成为预测模型,以综合评分来评估客户未来的某种信用表现。 

第一章 引言
1.1数据分析的背景
    2008年9月15日,美国第四大投资银行雷曼兄弟按照美国公司破产法案的相关规定提交了破产申请,成为了美国有史以来倒闭的最大金融公司。其引发的连锁反应致使信贷市场陷入混乱。
    次贷的产生是由于在美国存在着一批人,这批人没有什么信誉担保,甚至目前也没有什么偿还能力,例如一些名牌大学的大学生。但是当他们毕业之后就会有偿还能力,所以,基于此,如果这批人申请贷款来买房,银行就会降低贷款的标准,也就次于了正常的按揭贷款(即用房产等固定资产进行抵押来申请贷款)。当然了,与此同时,次贷的利息也会比正常贷款的利息要高很多。次贷的产生迎合了一句话——高风险意味着高回报。因为追逐利益的欲望的驱使,次贷闪亮登场了!
    但是人们在追求高回报的时候渐渐的忽略了高风险!随着次贷的产生,房地产市场逐渐走热,毕竟人们都有贷款可以买房了。在次贷的刺激下,房价攀升,而次贷的风险也就随之消失在人们记忆中,因为房价在攀升,所以如果一个人无法偿还贷款,那么他买的房子将和他的贷款相抵,不仅如此,因为房子的升值,相反银行还能挣钱。但是房子不可能总在涨,所以在房价走低的时候,问题就发生了,随着房价的走低,和上述所讲相同,如果一个人无法偿还贷款,那么他买的房子将不能够偿还他的贷款,因为房子贬值了嘛。那么银行就会造成亏损。
    有的金融机构,还故意将高风险的按揭贷款,“静悄悄”地打包到证券化产品中去,向投资者推销这些有问题的按揭贷款证券。突出的表现,是在发行按揭证券化产品时,不向投资者披露房主不仅难以支付的高额可调息按揭付款、而且购房者按揭贷款是零首付的情况。而评级市场的不透明和评级机构的利益冲突,又使得这些严重的高风险资产得以顺利进入投资市场。也就是说银行为了避免风险,选择将次贷当作一种债卷出卖,这样的债券的产生刺激了次贷,所以,将危机进一步的扩大,全球各大投资银行都购买了很多次贷债券,所以在房价走低时候,实际上给美国银行埋单的是全球的投资银行!
    所以,商业银行应该更好的对待风险,这有两个办法,一是规避风险,而是承担一定的风险,求得最大利润。
    现代社会,信用对个人和企业都是无比重要的品质。个人,有信用,在银行可以办理信用卡进行透支;在电信,当你要出国开会或者旅游,开通国际长途可以不用交押金;爱车上保险,也可以打折。企业,有信用可以获取大额的透支或者融资额度。便宜服务不是每个客户都能享受得到的,银行先考察客户的信用,再决定是否发放信用卡,以及卡片的类型(普卡、金卡、钻石卡)和额度;开通国际长途不要押金需要你符合一系列条件才行;汽车保险打折要求你有良好的索赔记录。
    信用评分是使用统计模型的方法来对潜在客户和已有客户在贷款时的风险通过评分卡的方式进行评价的一种方法。
1.2分析的目的与意义
    信用风险产生的原因及特点:银行获取客户信息的不完全性。银行只能通过客户提交的各种资料、报表和其他有限途径间接地获取信息,而这种信息的不完全性可能会是未来的风险隐患。信用风险具有非系统性特性。贷款企业或个人的还款能力虽然会受到整体经济大环境的影响,但是大多数情况下取决于其自身财务状况、经营的好坏以及还款意愿等个体因素。信用风险收益率呈非正态分布。在大多数情况下贷款能够顺利收回,此时银行可以得到一定的利息收入,但是当坏账的小概率事件发生时,银行将损失整个本息。
    对于信用评级,可以运用先进的数据挖掘技术和统计分析方法,通过对申请贷款的企业或个人客户的数据资料进行统计分析,挖掘客户特征与信用风险之间的关系,并将其发展成为预测模型,以综合评分来评估客户未来的某种信用表现。
信用评分卡建立以后可以帮助银行一线人员进行多种决策:是否同意某笔贷款的发放、是否同意个人的信用卡申请及向其发放何种类型的信用卡、是否同意客户关于提高信用卡透支额度的申请、当客户的信用卡发生延期还款时,催讨策略如何。
这种形式便于理解和使用;监管机构容易对银行审核标准合规性进行有效监管。通过信用评分卡方式,监管机构很容易看到银行使用了哪些因素作为审核标准,从而判断这种标准是否合规;信用评分卡很容易实施和监控。
第二章 数据审核与数据预处理
2.1原始数据表说明
    建立新的工作流之后,读入原始数据表,可以看到原始数据表有3000条记录,表中共有11个字段,分别是年龄、收入、孩子数量、家庭人口数、在现住址时间、在现工作时间、住房种类、国籍、信用卡类型、是否违约、权重,如图2-1所示。数据的类型,数据的范围,如图2-2所示。数据类型的详细情况如表2-1所示。

图2-1 原始数据表

图2-2 数据类型

表2-1 信用评分建模数据变量情况表

2.2数据分布与数据审核

        输出数据审核,看数据的情况,可以看到,这11个字段的属性,在现住址时间和在现工作时间这两个字段的有效数据分别是2907和2966,小于总数据量,其他的9个字段有效数都是3000如图2-3所示。在数据中在现住址时间这一字段里面,999表示数据缺失,如图2-4所示。

图2-3数据审核

图2-4 在现住址时间数据缺失

2.3数据预处理

        从原始数据表中看到孩子数量可能和家庭人口数有相关性,所以对这两个属性做一个相关性分析,看看这两个属性之间的相关性如何。如图2-5所示。

图2-5 孩子数量和家庭人口数

       选择相关性节点计算孩子数量和家庭人口数量的相关性,直观的表达出是否相关以及如果相关的话相关程度的强弱。设置如图2-6所示,结果如图2-7所示。从结果来看,孩子数量和家庭人口数的相关性为0.949,这说明二者有强相关关系。所以,在后续的数据中,就可以选择把家庭人口数这个字段过滤掉,只考虑孩子数量就可以了,如图2-8所示。

图2-6 设置计算相关性的节点

图2-7 孩子数量和家庭人口数的相关性

2-8 过滤家庭人口数属性

从前面的观察中知道数据表有权重这一字段,所以应该去看一下权重的具体数值,选择分布节点,再选取权重字段,可以看到好客户的权重值是30,意味着一个好客户代表着30个好客户。如图2-9所示。

图2-9 好坏客户的权重值

        知道了权重以后,下一步将好坏客户筛选出来,确定各自各有多少个。使用选择节点,用“=”函数,等0的是好客户,等1的是违约客户,输出结果是好客户有1500条记录,违约客户有1500条记录,根据他们的权重,这意味着好客户是有1500*30=45000条记录,违约客户有1*1500=1500条记录,如图2-10所示。

图2-10 筛选好坏用户

        知道了好用户在原始数据表中的数量和权重之后,就要考虑把好用户的数量还原成45000个,以便于后面的数据分析。使用平衡节点来进行这一步的操作,将权重为30的抽取30次,权重为1的抽取1次。得到的新的分布结果如图2-11所示。

图2-11 调整过权重的是否违约占比

第三章 数据分析
3.1总体思路
    (一)通过前面的数据预处理可以看到实验所用的数据比较多,数据比较杂乱,所以就想到先把数据进行分箱,通过分箱将数据划分为几个段。
    (二)通过计算各字段的WOE值和IV值知道字段的证据权重和预测信息的能力的大小。
    (三)用第二步得到的内容构建回归模型。
    (四)借助回归模型建立评分模型,即评估信用等级的模型。
    (五)用K-S法验证建立的回归模型。
3.2基于SPSS Modeler的数据分析过程
3.2.1对连续输入变量分箱
    第一步,对输入变量进行分箱操作,目的是通过减少变量取值个数,提高建模效率。连续变量的分箱原则有四,分别是分箱数应当适中,不宜过多或过少。过少区分度不足,过多则稳定性不强且不方便管理;各个分箱内的记录数合理,不应过多或过少;结合目标变量,分箱应该能表现出明显的趋势特征;相邻分箱的目标变量分布差异应该较大。
首先对连续变量进行分箱。一共有5个连续变量,分别是年龄、收入、孩子数量、现住址时间、现工作时间。所以这一小节一共有5个分箱操作。在分级化节点里面使用最优分级自动将上述的5个属性进行分级操作,并导出节点。新生成的属性加上_bin后缀。如图3-1所示。

图3-1 自动分级节点

(一)对年龄这一属性进行分箱操作。一共分为年龄<23、23<=年龄<28、28<=年龄<46、年龄>=46四个分箱并生成新的导出节点,如图3-2所示。

图3-2 按年龄分箱

(二)对收入这一属性进行分箱操作。一共分为收入<1000、1000<=收入<2400、2400<=收入三个分箱并生成导出节点,如图3-3所示。

图3-3 按收入分箱

(三)对孩子数量这一属性进行分箱操作。一共分为孩子数量<1、孩子数量>=1二个分箱并生成导出节点,如图3-4所示。

图3-4 按孩子数量分箱

(四)对现住址时间这一属性进行分箱操作。一共分为现住址时间<18、18<=现住址时间两个分箱并生成导出节点,如图3-5所示。

图3-5 按在现住址时间分箱

(五)对现工作时间这一属性进行分箱操作。一共分为现工作时间<18、18<=现工作时间<96、96<=现工作时间三个分箱并生成导出节点,如图3-6所示。

图3-6 按现工作时间分箱

3.2.2对离散输入变量分箱
    在将连续变量分箱完之后,还有两个离散变量需要分箱,分别是国籍和信用卡类别,需要将这两个变量通过别的方式确定分箱的依据。
    (一)按国籍属性分箱,首先汇总国籍属性下的不同国籍违约客户数量,然后使用导出节点计算违约比例,计算公式是违约比例=是否违约_Sum/Record_Count。第三步按照违约比例升序排序,最后使用重新分类节点根据违约比例的排序手动分箱,如图3-7所示。

图3-7 按国籍分箱

(二)按信用卡类型属性分箱,首先汇总信用卡类型属性下的不同信用卡类型违约客户数量,然后使用导出节点计算违约比例,计算公式是违约比例=是否违约_Sum/Record_Count。第三步按照违约比例升序排序,最后使用重新分类节点根据违约比例的排序手动分箱,如图3-8所示。

图3-8 按信用卡类型分箱

到这里以后,分箱操作就全部完成了,完成分箱操作以后便于后续的操作继续进行,且简化了后面的计算量。

3.3计算WOE值和IV值

WOE值意思是证据权重,是对原始自变量的一种编码。WOE的计算公式是这样的:

 

        IV值意思是信息价值或信息量,可用来表示该变量是否对预测目标变量具有显著意义。根据经验,当IV<0.02时,该变量对预测目标变量几乎无帮助;当0.02<=IV<0.1时,该变量对预测目标变量具有一定帮助;当0.1<=IV<0.3时,该变量对预测目标变量具有较大帮助;当IV>=0.3时,该变量对预测目标变量具有很大帮助。但是当IV>0.5时,该变量对目标变量有过渡预测的倾向,应仔细查看是不是选用了和目标变量有很强因果关系的变量,这种变量是否可用于预测模型。

        IV值的计算公式是这样的:

 

3.3.1计算年龄字段的WOE值和IV值

        计算年龄属性的WOE值,需要好客户和坏客户的数量,所以增加一个好客户新变量。选择导出节点,如图3-9所示。

图3-9 以是否违约为条件导出

        接下来计算好客户与坏客户的数量,这里要做的操作是更改字段名称和去除无用信息,选择过滤器节点,过滤掉前面做过分箱的年龄、收入、孩子数量、在现住址时间、在现工作时间这五个字段,因为已经生成了更简洁的分箱字段。而国籍和信用卡类型不过滤是因为它们是离散的数据,跟连续数据的分箱无关。将是否违约字段重命名为是否坏客户,将是否不违约字段重命名为是否好客户。如图3-10所示。

图3-10 过滤无用信息并重命名字段

然后分别从这个节点出发,往后流出两个汇总节点,一个汇总总的好客户和坏客户的数量,一个汇总各个年龄分箱段内的好客户与坏客户数量,如图3-11所示。汇总以后再把两个汇总结果横向合并到一起,如图3-12所示。

图3-11 分别汇总好坏客户数量

图3-12 合并汇总的好坏客户数量

        得到上面的数据后,之后分别利用导出节点计算数量占比、好客户占比、坏客户占比以及坏客户比例。再继续用导出节点,算出年龄的WOE值,如图3-13所示。

图3-13 计算年龄的WOE值

        计算完年龄WOE值之后,我们进行年龄的IV值计算。因为IV值是一个加总的值,所以先计算每一段年龄分箱的IV值再把它们汇总,如图3-14所示。

图3-14 年龄IV值
计算完了年龄字段的WOE值和IV值之后,将每段的WOE值导出。
3.3.2计算剩余字段的WOE值和IV值
    因为已经以年龄字段为例详细展示了怎么计算一个字段的WOE值和IV值,故剩余的收入、孩子数量、在现住址时间、在现工作时间、国籍、信用卡类型几个字段的计算过程就只写出关键步骤,不再每一步都贴图展示。
(一)收入的WOE值和IV值
根据计算年龄WOE值和IV值的流,更改必要的字段后即可得出收入的WOE值和IV值,如图3-15所示。

图3-15收入的WOE值和IV值

        (二)孩子数量的WOE值和IV值

        根据计算年龄WOE值和IV值的流,更改必要的字段后即可得出孩子数量的WOE值和IV值,如图3-16所示。

图3-16孩子数量的WOE值和IV值

        (三)在现住址时间的WOE值和IV值

        根据计算年龄WOE值和IV值的流,更改必要的字段后即可得出在现住址时间的WOE值和IV值,如图3-17所示。

图3-17在现住址时间的WOE值和IV值

        (四)在现工作时间的WOE值和IV值

根据计算年龄WOE值和IV值的流,更改必要的字段后即可得出在现工作时间的WOE值和IV值,如图3-18所示。

图3-18在现工作时间的WOE值和IV值

        (五)国籍的WOE值和IV值

        根据计算年龄WOE值和IV值的流,更改必要的字段后即可得出国籍的WOE值和IV值,如图3-19所示。

图3-19国籍的WOE值和IV值

        (六)信用卡类型的WOE值和IV值

        根据计算年龄WOE值和IV值的流,更改必要的字段后即可得出信用卡类型的WOE值和IV值,如图3-20所示。

图3-20信用卡类型的WOE值和IV值

3.4建立输入变量与目标变量的Logistic回归模型
3.4.1导出Logistic回归模型数据
    逻辑回归是一种在预测目标变量为离散变量时广泛采用的数据分析技术。

 

P是关注结果出现的概率,本案例中指的是坏客户。

        一般情况下,输入变量主要为连续变量,当输入变量为离散变量时,通常采用哑变量的方式将离散变量转化为连续变量再进行处理。但是在构建信用评分卡时,所有变量都已经被转换为了离散变量。作为替代,使用各个变量分箱对应的WOE值作为Logistic回归的输入变量。

       使用Logistic回归进行预测时,除了可以选择让全部变量进入模型之外,也可以让模型选择最终进入模型的变量:前进法、后退法、逐步法。

       在前面做的数据的基础上,建一个新的新的流,首先添加前文导出的总WOE值数据,如图3-21所示。

图3-21 总WOE值数据

        在读入数据后,使用类型节点,调整各字段的角色,各分箱值不再输入,所以调整角色为无,WOE值是用来预测的自变量,故调整角色为输入,是否违约是与粗目标,故调整角色为目标。特别的是在是否违约这一字段,要改为标记类型的数据,因为是否违约这个字段只有违约和不违约两种结果,所示适用用来表示有两个不同值的标记数据类型。如图3-22所示。

图3-22 调整字段的类型

        然后使用Logistic模型建立回归模型。如图3-23所示。可以看到现住址时间没有了,这是因为它的预测能力很弱,自动的被省略了。

图3-23 回归模型结果

        将回归模型的结果导出成.txt格式的文件,再将.txt文件整理为结构化数据回归系数.csv文件。

3.4.2结构化回归模型数据
使用变量文件源节点导入.txt文件,输出成表格可以观察到有效数据从第8行开始,到第15行结束,每个系数里有“*”和“+”符号。如图3-24所示。

图3-24 .txt文件的数据

        在读入数据后首先将字段名field1改为回归系数这几个比较显眼字方便后面做函数时候用,然后选择只显示8到14行的有效数据。如图3-25所示。

图3-25 更改字段为回归系数并选择有用数据

        之后经过两次条件选择,可以输出有用的数据,最后再过滤一次最开始的那个原始字段,如图3-26和3-27所示。

图3-26 选择有效数据

图3-27 过滤原始字段

        之后从过滤节点出发流出两个选择节点,通过保留常数项和丢弃常数项操作,再在包括常数项的节点后面过滤掉变量字段,因为另外一个丢弃常数项的节点里面已经有这个字段。将这两个节点合并后,得到结构化的回归系数,并将回归系数导出成.csv文件,如图3-28所示。

图3-28 导出结构化回归系数

3.5建立评分模型
3.5.1建立模型
    本次试验最终的目的是建立各个变量各个分箱的评分值。将Logistic回归系数转化为信用评分的形式是一个量表编制的过程。应该有这样的限制:将评分控制在一定范围内,如0~1000分之间;在特定分数时,好客户和坏客户具有一定的比例关系(优比odds=好客户占比/坏客户占比=(1-p)/p);评分值增加应该能够反映好客户和坏客户比例关系的变化。
    先将前面导出的数据合并到一起并和回归系数合并到一起,回归系数可以用填充节点处理一下以消除可能存在的文字前后的空格,就可以利用变量关键字合并了。如图3-29所示。

图3-29 合并WOE值和回归系数

        使用导出节点,用公式计算各分箱的评分,如图3-30所示。

图3-30 用公式计算评分

用过滤节点过滤掉不需要的节点后,输出各变量各分箱评分.csv文件,这一小节完成,如图3-31所示。

图3-31 输出各变量各分箱评分

3.5.2验证模型
    有些时候,在目标变量中我们关注的取值比例很少的情况下,模型准确率、模型命中率、模型覆盖率等评价指标将会变得没有意义。就本案例来说,使用逐步法建立Logistic回归模型,使用分析节点选中重合矩阵可以看到如图3-32的结果。从图中可以看到准确率达到了96.77%,可是进一步观察重合矩阵就会发现,这个模型将所有的客户都预测为好客户,但我想要的是哪些客户是坏客户,即违约的客户,所以从这个角度来说这个模型的意义并不是很大。但是,这个模型的增益图和提升图还是有意义的,因为它们是根据客户为坏的可能性进行排序得到的图形,如图3-33所示。

图3-32 分析节点选中重合矩阵

图3-33 增益图和提升图

        除了上面的两个增益图和提升图,这次还会使用K-S指标来验证模型的优劣。适应于目标变量为标志型的预测模型。在模型有效的情况下,坏客户累计占比曲线应该在好客户累计占比曲线之上,且这两条曲线距离越远,模型效果越好,模型区分好客户和坏客户的能力越强。一般认为区分度在30%以上的模型是可以接受的。

        在SPSSmodeler中,没有直接作出K-S指标及图形的节点,但是可以通过节点的组合生成K-S指标和相关图形。下面就做一个K-S指标的计算。在导入前面生成的建模数据后,先用导出节点的@INDEX生成客户编号,如图3-34所示。

图3-34 生成客户编号

       在这之后,用过滤节点过滤掉无用字段。然后从这个过滤节点流出6个导出节点,生成新的字段,名字与各变量评分表中的名字一致,这是因为后面要与评分表进行合并。如图3-35所示。

图3-35 生成新变量

       将6个新生成的数据表追加合并,得到279000条记录。如图3-36所示。

图3-36 追加合并

        经过字段重排,排序后与前面生成的评分表合并,得到评分数据。如图3-37所示。

图3-37 评分表数据

        再经过字段重排和排序后,按客户编号汇总评分值。如图3-38所示。

图3-38 按客户编号汇总评分

        之后按照信用评分排序,排序之后汇总好客户和坏客户数量,再在过滤总数之后与排序节点合并,得到好坏客户数量及评分值的表。

图3-39 好坏客户数量及评分

        用导出节点分别计算好客户累计占比和坏客户累计占比,如图3-40所示。

图3-40 好坏客户累计占比

        有了好坏客户的累计占比,就可以计算K-S图,如图3-41所示。

图3-41 K-S图

        也可以用导出节点得到K-S值,如图3-42所示。

图3-42 K-S值
到这一步为止,关于本次试验的实践操作部分已经完成。
3.6完整数据流
    第一个完整的流,是计算WOE值和IV值的流,如图3-43所示。

3-43 计算WOE值和IV值的流

第二个流,是回归模型流,如图3-44所示。

图3-44 回归模型流

第三个流是结构化回归系数的流,如图3-45所示。

图3-45 结构化回归系数流

第四个流是建立评分模型的流,如图3-46所示。

图3-46建立评分模型流

第五个流是验证评分模型的流,如图3-47所示。

图3-47 验证评分模型流

第四章 结论及建议
4.1根据结果对银行的建议
    前面的分析已经随着实验步骤写过了,这里只分析一下最后的结果。从最后的K-S里面可以看出来,信用分大于492分的客户就有很大可能是属于好客户了,所以对于这一类客户的贷款申请可以同意,而对于信用评分低于492分的客户,就本实验所用的数据来推测很可能就是坏客户,因此就不要同意向他们发放贷款。
    当然,本次实验所用的数据并不是特别的丰富,在实际操作中,也可以再收集客户的婚姻状况、固定资产、车子房子等等信息,讲这些信息一并考虑后再决定是不是发放贷款,毕竟贷款是一项长期的业务。
 

猜你喜欢

转载自blog.csdn.net/youxinyuchu/article/details/83626618