承接上文
挂枝儿:HomeDefaultRisk之自己来篇 - 做个评分卡玩zhuanlan.zhihu.com![ea75031d1209df461462a21bc8f0e317.png](https://i-blog.csdnimg.cn/blog_migrate/e95711225c25a3cc1ca14e2f8402a36b.jpeg)
最后做评分卡的时候我又懵逼了,感觉对于这块的认知还差点事,所以这篇文章作为自己这两天对于评分卡知识点的总结认知。本内容总结自:
数据化风控 (豆瓣)book.douban.com![aaefaf599eeed52f3c1d5e773a3d0f5a.png](https://i-blog.csdnimg.cn/blog_migrate/3bf79a468e8e12d6df85c231a75e777e.jpeg)
这本书个人读下来觉得在流程上写的非常全面流畅,对于新手非常友好。
|目录:
1.基础知识与应用
2.样本定义
3.变量分析
4.模型建立,选择,与风险校准
5.Cut-off点设定
6.模型监控报告
| 1. 基础知识与应用:
目前业界大部分使用的评分卡是按照申请时间作区分,分别是:
a.申请评分:进件快照
b.行为评分:变量比A卡更多(累计了客户一部分贷后数据)
c.催收评分 预测还款概率,作为行为评分的延伸应用
评分卡的制作一般分为以下7个阶段(括号内是个人理解的实际作用):
1. 确定评分目的 (为啥要做卡?目的是啥?)
2. 基本定义 (好坏样本如何定义?)
3. 资料准备 (数据哪里来?怎么取数?)
4. 变量分析 (找特征!)
5. 建立模型 (做模型!)
6. 拒绝推论 (在拒件数据上的表现)
7. 效力验证 (OOT验证,在时间外样本上验证模型区分度)
信用评分的应用十分广泛,包括申请准驳,额度区间,贷后额度管理,复审,风险定价,交叉销售以及催收作业。在实务中一般会对模型结果的风险排序,切分为10~20个风险等级(Aligned Risk Grade, ARG),将风险相近者归为一类(例如下图)
![890e159325f6470a046098ed0ed60735.png](https://i-blog.csdnimg.cn/blog_migrate/d14034907ac5c6e8533ace7942a9a3c4.jpeg)
在累计核准率与累计违约率概率决定临界点(Cut-Off Point) ,以下图为例,
- 如果希望进件核准率在80%上,我们就可以得到对应的预期违约率为3.9%,这样可以非常直观的review每个决策边界带来的预期收益,风险。
- 临界点的个数可以分为单临界点,双临界点以及多临界点。双临界点代表在好坏区间中部的人进入人工审核,多临界点多余决策树结果,不同条件下搭配不同的评分临界点,作出不同的决策。
![9ebe3251be232d21b679d30442924728.png](https://i-blog.csdnimg.cn/blog_migrate/077b3556ae7d179672e375a5a39906e5.jpeg)
| 2~3 基本定义,资料准备
2. 数据收集:
- 确定坏样本数量是否足够,数据字段稳定性是否在建模与上线期间稳定,对于不同变量的定义各部门是否一致.
- 样本范围的定义,应该排除因政策更改或其他因素致使其信用行为与一般客户不同的样本条件。这段话我的理解是,对于信息失真,或者信息与目标客群不一致的样本,我们需要做排除,比如,被反欺诈规则命中的客户 。
- 样本窗口,好坏客户的定义。 一般是用账龄分析(Vintage Analysis)观察目标客户违约器的成熟期长度(也就是看哪个时间点客户的逾期率变化开始稳定)。比如下图,我们可以发现9个月后坏件率趋于平缓,由此可判定,我们的表现期可以定于9~12个月,最后可以由此确定好坏样本的选择。
![58643340489edc370c5cc36712aab89a.png](https://i-blog.csdnimg.cn/blog_migrate/ae79e1c37f46d602f90b7e3dce8b0fcb.jpeg)
|3.变量分析
3.1 变量选择
模型的变量有两种类型,一般会分为连续型变量(Continuous Variable)和离散型变量(Discrete Variable)。两种变量都适用于评分模型,但一般都把变量做成离散形态来进行评分模型开发,主要原因:
- 离散型变量鲁棒性更强,有利于处理极端值.
- 非线性的因变量可用于线性模型.
- 离散型变量可以协助开发人员更好的了解变量与目标事件的趋势关系。
3.2 变量单因子分析
在初步选取变量后,最多使用的事群体稳定度指标(Population Stability Index, PSI)与信息值(Value Of Information , VOI)来进行判定。
3.2.1 稳定度指标(Population Stability Index, PSI)
这个指标可以用来评估整体模型的评分概况,也可以用于评估变量层面的变动情况,公式如下:
A 代表比较节点分组样本百分比 E代表基准节点分组样本百分比
一般而言,当PSI小于0.1时,我们认为变量的分组样本百分比无显著变化,模型、变量的稳定性较好,可以用下图这个例子来说明:
![f2f5cc4666f707c5e192f7806982d7e9.png](https://i-blog.csdnimg.cn/blog_migrate/357e9bdf4323f932fb84d8cf99ec4979.jpeg)
3.2.2 信息值(Value Of Information , VOI)
说信息值可以协助开发人员对于目标事件的单一预测能力的高低,进一步挑选高预测能力的变量进行开发,公式如下:
G 代表箱内好样本占比,B代表箱内坏样本占比
IV值一般可以按以下这个标准作为评判:
![68fc3b675581f09e3fb86693e839bd89.png](https://i-blog.csdnimg.cn/blog_migrate/44a925e71d6aea3c0f3a04a41155406e.png)
我们一般可以使用下面的格式来进行变量的IV 整体核验:
![8ec616200ef71d1598d53ff90de88467.png](https://i-blog.csdnimg.cn/blog_migrate/c145269732fb5e48ec53f533197ed126.jpeg)
![6909427fa8bf7ade6f9e6538ac80c7fa.png](https://i-blog.csdnimg.cn/blog_migrate/d8cc9380a6dc8eb4d1eb04ad3b49ef0f.png)
3.2.3 相关系数(Correlation Coeffcient)
在我们选取的变量中,肯定有一些变量存在共线性(Collinearity)问题,导致模型预测能力下降(甚至一些其他诡异的情况)。所以为了避免变量间的高度相关削弱模型的预测能力,开发人员会计算变量间的相关系数来精简变量(or just to make sure)。
相关系数的公式:
对于上式我的理解是,分子表达的是变量间纯粹的趋势,但数字可能会很大or很小,所以需要分母来剔除标准差,使得这个指标
我们对于变量筛选的衡量尺度一般根据下表:
![a7f01d063b7f7cb11175829bb0d60db4.png](https://i-blog.csdnimg.cn/blog_migrate/6de1ecf3475cc8720e00d2a5b2e4e78f.png)
一般而言,当变量满足 PSI <=1 && VOI >0.1 时,相关系数>0.7的变量我们会根业务经验优选挑选较为适合预测目标事件的变量进行后续的开发。
一般对于最终变量分类我们有以下几个原则:
- 变量的上升或下降趋势需要与实务经验一致
- 单一变量最多维持8个区间
- 各组好坏对比需要差距15以上
- 各分组需要覆盖2%以上的模型开发样本
- 各分组至少有1%目标事件样本
- 将空白、缺失值或其他特殊变量值合并至同一区间,统称为空集(Null Group)
- 一般Null Group分组好坏比需要比整体低(好坏对比值接近100)
一般比较好的变量趋势图会长这样
![7725ea3104022f7a2c0984251358da4d.png](https://i-blog.csdnimg.cn/blog_migrate/206f0f8765e792d576f1a48760a60193.jpeg)
|4. 模型建立,选择,与风险校准
4.1.1 模型选择:
评分卡一般使用线性模型(However在梅老师的书里也有xgboost,本质上来说能提供一个odds就行)。线性回归是研究单一因变量或一个以上自变量之间的关系。线性回归适用于连续属性的模型配对,如果自变量有p个,则公式为:
Y为因变量,x为自变量,beta0是结局,beta是参数,e是残差项.
对于此类多元线性模型,我们一般需要特征满足以下基本假设:
- 自变量与因变量呈线性关系
- 残差项的期望指为0
- 残差项的变异数是常数
- 观测值互相独立(?)
- 残差项需服从常态分配
4.1.2 变量选择:
在选取自变量时,最常用的方式是逐步回归(Stepwise Multiple Regression),可以细分为3中方法:
- 同时分析法(Simultaneous Multiple Regression(???)
- 逐步分析法(Stepwise Multiple Regression)
- 阶层分析法(Hierarchical Multiple Regression)(???)
其中逐步分析法最常用,包括如下三种
- 顺向选择法(Forward Selection)
从所有变量中选择对模型贡献最大者进入回归方程式,然后逐一选择第二个,第三个.....直至满足要求。进入的标准是是否具有最小F概率值,通畅设为0.5.
2. 反向淘汰法(Backward Elimination)
此方法和顺向选择法相反,先拉进来一起跑,然后逐一删除对模型贡献最小的。
3. 逐步分析法(Stepwise Analysis)
此为上述两项技术的结合。先顺向选择贡献最大的变量进入回归模式,但是在每一步中,已被纳入的模型的自变量必须再经过反向淘汰法的考研,再决定该变量是被淘汰还是悲留下。
我们可以使用决定系数(R方)来判定回归是是否有意义.
决定系数是用以说明所估计出的回归是能够解释实际样本结果的程度,通常以判定系数R方判断因变量与整体自变量的关系是否密切,也就是回归模式的解释能力是否充足.
公式:
其中:
因0<=SSE<=SST,所以0<=R^2<=1,约接近1代表解释能力越强。
4.2.1 模型选择 - 逻辑回归
的逻辑回归的因变量是二选一的属性变量,其出现的变量值为好与坏的二选一可能事件。此方法具有易懂,非黑箱作业以及能与概率结合当地有点。是开发评分卡最常使用的方法的。
这里扯开说一句,对于逻辑回归的多想回归式是怎么转换到概率上的我其实一开始不太明白,后来弄懂了才发现是odds,概率,sigmoid函数的美丽结合,所以在这里放一下我个人的推到.
- 首先我们知道逻辑回归最终输出的结果概率,概率是通过模型rawresults根据sigmoid函数得到的,而我们常说的odds其实就是好人的概率比上坏人的概率,所以我们就可以从如下2个条件式子说起:
其中,1式可以转换为:
带入二式就可以得到:
两天取对数:
至此,我们完成了多项式到概率,好坏比上的映射。
4.2.2 模型选择- 变量处理
自变量的处理:
一般会进行WOE编码处理,这一部网上教程太多了就不写了,本质上来说WOE编码可以很好的处理变量中的极值问题(Outliers),同时也可以减少模型过拟合的现象
这里额外的提一句有些公式会把g 写在前面,有些把b写在前面,其实是一样的,只不过就是这个数字越大代表的越好或者越坏而已。
4.2.3 模型建立:
建立模型的步骤一般如下:
- 模型建立:一般分为训练测试集,分别占比30%~70%左右
- 第一阶段回归——逻辑回归模型:如果有变量区间与对应的好坏对比值出现矛盾,或与实际认知互斥,则需要重新设计该变量区间或选择排除该变量,再重新执行回归动作。
- 相关分析:检查相关性,剔除相关系数高于85%的变量。
- 重复2~3以找到最佳模型.
- 第二阶段回归:步骤4可得到第一阶段逻辑回归计算后的残差值,以此作为第二阶段线性回归的因变量。相似的回归分析过程也在第二阶段执行,重复执行步骤2~步骤5以确保所挑选变量组合符合统计与实务经验,最后得出最终评分模型。
- 模型检验:利用30%的保留样本(Holdout)与时间外样本(Outoftime)分别进行效度检验,以确保模型的精确性及稳定性,若无法达到指定标准,则重复步骤1~步骤5。通常是以Gini值与KS值来作为指定标准,一般而言,Gini值达40%、KS值达30%,表示模型对好坏案件鉴别力强
- 将最终评分模型所得的变量系数乘以1000即可得到评分卡的分数。
4.3.1 最终模型产出与风险校准
使用woe值只做出的模型,需要使用评分卡尺度技术将评分卡系数转换为变为解读的权重,下面举一个例子:
- 平均分数为200分,每隔20分好坏比(Odds)加倍
- 分数尺度在假设每隔20分,odds加倍的前提下,公式如下:
假设平均分数600分,每隔20分odds加倍,因此可以将这个假设带入,则我们可以得到:
当分数增加pdo时,好人比坏人比会比原先增加两倍.
两式互相抵消,我们就可以得到如下方程:
再带入原式,就可以计算A的值
其中,Score为平均分数,Odds则以则以建立模型时的平均水平带入(上一篇Kernal没注意到的点)
举个例子,BaseScore=600, BaseOdds=50,当PDO(Points Of Double Odds) = 20
则:
可以得到我们的分数转换式为:
我们也可以图表上来了解对应分数与好坏比的对应情况
![8e0299cbc82e1f951077016c170bb9c7.png](https://i-blog.csdnimg.cn/blog_migrate/cb33caea7eaf701369180917e4ef0782.png)
同时,根据逻辑回归方程式,Odds等于各变量的WOE以及回归方程系数与常数项结合,根据方程式计算,可以得到以下分数的尺度公式:
式中,
终于弄懂toad模块里每个分箱的分数是怎么来的 了.
最终我们就可以有一个如下的变量对应woe,系数,分数表格.
![72c5a02266b2c8119b8f90ab836f9b98.png](https://i-blog.csdnimg.cn/blog_migrate/57e1f4bd63c8f63e72dca89fca6a75d9.jpeg)
这个方程式的目的是什么呢?
- 便于建立过程中各个版本评分卡的互相比较
- 便于使用者解读
- 便于监理机关进行信息揭露,同时与违约概率整合。
4.3.1 设定风险校准(Risk Calibration)
4.3.1.1 不同评分卡的分数调校
如果同一个产品因不同特性切分为数个评分卡,评分卡间的模型基础会处在不同的水平上。所以必须设定风险校准(Risk Calibration)来转换个分组的评分。
在好坏表现定义于不同分组间相同的前提下,风险校准采用同等好坏比来转换各分组评分分数,使得好坏比达到相同评分的效果,且评分与好坏比应该呈现正向相关。
评分模型风险校准过程如下:
- 计算各分组所有样本的最终评分
- 各分组样本分数由低到高排序
- 将排序后的样本切成n等分,再计算每一等分的good,bad count,ratio以及ln(Odds)以及平均分数。
- 建立每种切等的平均分数以及ln(Odds)的回归是,观察在哪种切等方式下,回归是会有最佳的解释能力。并观察期望好坏壁纸相比于实际好坏比值是否相近。
- 由上述回归式套入Score=A + B * ln(Odds).则可得到最后的校准函数,如BaseScore=400,PDO=40,则最终分数= 400+40/ln(2) * ln(Odds) 。其中ln(Odds)是将平均分输及技术好坏比值间所建立的最佳回归式带入即可。然后利用各种统计软件包求得最佳模型
- 以校准位数为因变量,最终评分模型的变量为自变量进行回归分析,可得到最后各变量属性的系数,也是风险校准后的评分卡(Calibrated Scorecard)的分数。之后评分卡变量监控以及使用介意校准后的评分卡为主。
以下图为例,可以得到分组为30时模型的解释能力最佳(R^2)最高。则其校准函数如下:
![36975898bc1b225112766b6f914b83ec.png](https://i-blog.csdnimg.cn/blog_migrate/6c2fd0aa2dc0f7a9360956e2ccd7795c.jpeg)
期望好坏比值(Expected Odds)与实际好坏比值(Actual Odds)的比较
![c62a4e72c32ea6900d56f0acfd6eb577.png](https://i-blog.csdnimg.cn/blog_migrate/3de558c6b71bd67d77444584e86bf03c.jpeg)
4.3.2 风险等级的区分
此外,我们还会对评分个分数进行风险区分,一般不超过20等分为主。常用的方式是使得每个风险等级分配的人数相近,且每个级距上的建模样本应有一定一定以上的数量。样本数量太少的等级可以和其他相邻区间合并。一般而言,在低分组和高分组的等级中会发生此类情况,我们要求区间内至少要有全体建模样本的3%~5%。可以参考下表:
![3514b620cc961c9c0c862321ea0dfd18.png](https://i-blog.csdnimg.cn/blog_migrate/a174d0e254b405b1bc96563f0500c790.jpeg)
4.3.3 模型验证:
在建模的过程中我们需要能够有效评估信用评分卡预测能力及诊断能力的指标,这块我在这步赘述,网上的教程已经巨多。仅列一下常用指标:
- 基尼系数(Gini Coefficient)
- KS (Kolmogrov-Smirnov)
- ROC-AUC(Another different form of ks)
累计各评分分数下的K-S值,就可以完成K-S测试图。(下图)
![ec00687202a690b5d32fd71b69b77cff.png](https://i-blog.csdnimg.cn/blog_migrate/4850e9bc11d82daba7680405146e4e85.jpeg)
对于以上指标而言,我们一般会用下图的尺度衡量模型的有效性(训练集测试集上的表现都需要关注)
![c72da2de630e5660c643d40ef2f23101.png](https://i-blog.csdnimg.cn/blog_migrate/33e867eee54620bbf580c23f21dcc1cc.jpeg)
样本间验证结果示例(个人感觉训练测试集表现一直,oot有时候真的太玄幻了):
![3c8cef23e681ed4f53ed14b50eabd7ce.png](https://i-blog.csdnimg.cn/blog_migrate/bdfa7dbdbc73db3b4bff4f3e028edfb9.png)
个完整的风险等级区分结果验证可以用下图作为模板:
![32fab38f4f96dbbd696c3e4380267b8d.png](https://i-blog.csdnimg.cn/blog_migrate/1189177c2174e7549231f2b68b3e4b29.jpeg)
5 决策点(Cut-Off)设定:
一般常用的策略方式有四种:
- 好坏件比率(Good/Bad Odds)
以好坏件比率作为预期目标,并由评分分布表从高向低移动核准决策点,而累积比率会随着决策点的移动而 逐步降低,直到接近预期目标时停止移动。此时评分等级便被设定为决策点。弱新开发的信用评分模型鉴别好坏客户能力较佳,则运用此模型所做的决策,在相同的好坏件比率目标下会接受更多的客户。
2. 核准率(Approval Rate)
此方式是以模型开发母体的核准率为预期目标,并由评分分布表高评分等级往低评分等级方向移动核准决策点,而累计核准率也随着核准决策点移动而增加,直到某一评分等级累计核准率接近预期目标时便停止移动,此时评分等级便被设定为决策点。
3. 核准中好客户数(Good Accounts)
4. 核准中坏客户数(Bad Accounts)
一般采用低分拒绝,高分接受,中间阶段进人工的方式.
6. 模型监控:
总体来说,我们从以下2个维度来考量模型的稳定性:
- 观察期间的稳定度。
- 表现期间的鉴别度。
然而,外部经济情势变化、同业间推出的各项商品服务与营销活动,以及公司内部经营策略的调整,均可能使信用评分模型接受的客户类别形态产生结构性转变,进而影响模型稳定度;即使是相同的客户类别形态也可能受到上述因素的影响,从而发生鉴别度不足的状况。因此,信用评分模型的工作不是模型开发完成上线就结束,还要定期执行监控报告作业,并在出现异常状况时进行适当维护,以确保信用评分模型能持续有效地达成其“准确判断评分客户信用风险”的目的。
监控作业一般会包括:
- 确认数据输入评分与作业评分的正确性
- 征信审核人工否决评分结果(Override Score Result)分析
- 营销活动表现分析
- 信用评分模型的稳定度和鉴别度报告。
进一步的,,我们的监控报告可以细分为前端监控报告以及后端监控报告。
6.1 前端监控报告:
此报告的目的是观察申请客户和近期客户的类型与信用评分模型的开发样本是否一致,稳定,常见的前端监控报表有以下几种:
- 评分分布表(Score Distribution Report, SDR)
- 群体稳定性指标(Population Stability Index)
- 变量稳定性分析(Characteristics Analysis)
- 人工否决分析(Override Stability Analysis 申请评分模型)
- 数据输入错误率分析
- 产品大事记。
下面简单说明一下前四项:
评分分布表的样例如下,可以协助帮助监控客群的整体偏移情况。
![a6e36b26d1b1441fe8dcef7ae5f8f4ef.png](https://i-blog.csdnimg.cn/blog_migrate/9381089122f09484d0655f2f8b4c6f25.jpeg)
群体稳定性指标用于监控客户占比的差异程度。
![b0c048daa82e64d7c798e1eef613e26f.png](https://i-blog.csdnimg.cn/blog_migrate/3a1d66d4e554e4518e54c81f19a65252.jpeg)
变量稳定性分析,其实就是变量层面的PSI,用于监控变量的稳定性。
![4b0088f839735cd883df88bdb9ae84bf.png](https://i-blog.csdnimg.cn/blog_migrate/a7573508a1e59a4124d5bed81de82876.png)
人工否决分析
- 高分否决率
- 低分否决率
在上线前,通常会规范高分否决率与低分否决率的上限。当超过此上限时,便与征审人员进行沟通,以避免失去以评分模型作为信用风险决策的目的
6.2 后端监控报告:
后端监控报告的目的是为了观察信用评分模型对申请客户或近期客户群体是否仍具备有效的鉴别力。后端监控报告可在信用评分模型于系统上线一段期间后(可为坏客户的延滞月数或表现期间长度)开始执行。若信用评分模型鉴别力发生显著下降,应分析产生的原因,并提出微调或重新开发信用评分模型等改善方案,避免做出错误的信用决策。
一般有以下指标来监控:
- 好坏客户评分分布表(ScoreDistributionReport,SDR)
- 母体鉴别度指标(KSValue/GiniCoefficient)
- 变量鉴别度分析(CharacteristicsDiscriminationAnalysis)
- 好坏概率与评分分析(Good/BadOddsvs.Score)
- 人工否决表现分析(OverridePerformanceAnalysis,申请评分模型)
好坏客户评分分布表样例:
![3ad312e90bf363c16bb9411973a6e931.png](https://i-blog.csdnimg.cn/blog_migrate/af6699466fc0f1fb2dd09962c9f7b2c4.jpeg)
也可以用分布图来表现,下图中好客户大部分分布在右方高评分组别,坏客户大部分分布在左方低评分组别,与期望相符(获得高评分为好客户、低评分为坏客户),显示此评分模型应具备良好的鉴别力.。
![0acf7a18c60f7060fdc17a3a15585617.png](https://i-blog.csdnimg.cn/blog_migrate/6d996f23caad1a2dd946372764ed41ca.jpeg)
母体鉴别和变量鉴别度分析没啥好说对的,其实就是指标在新的样本上跑一下看和开发时期是否有较大差异。
这篇就写到这里吧....打字打的手要脱臼了,不过也算明白评分卡是怎么回事了。