评分卡在实验前和实验后需要对准备大量的评估工作,这里的评估报告可以分成两类:

  1. 实施前报告: 查看不同变量在不同范围内的得分分布,并与用户的违约率进行比较
  2. 实施后报告: 评估评分卡在防止违约方面的有效性

评分卡作为一个简单实用的信用评分工具被广泛使用,可以从下面几个方面帮助企业解决问题: 1. 如何将评分卡与企业的总体经营战略相结合? 2. 如何衡量客户行为的变化并在信贷策略中对其原因进行说明? 3. 评分卡是滞运行良好?何时需要对评分卡进行升级或重建评分卡?

1. 稳定性报告

稳定性报告是用于评估和监测评分卡的表现,目的是为了生成一个能够代表总体的分值分布随时间的移动或变化的指数。因为评分卡的创建过程使用的是历史数据,这些数据随着时间可能会发生变化,而导致评分卡发生变动。因此,得分代表的是获取这些数据时的客户行为,而不是实施评分卡时的客户行为。

客户行为的变化,可能有下面两种因素: 1. 客户群体发生变化,新用户涌入,老用户流失 2. 市场发生变化,市场环境,政策变化,经济周期

稳定性指数可以用来评估评分卡模型的稳定性,它是计算实际的和预期的分值分布之间差异的一个衡量指标。计算过程和之前的WOE和IV计算过程有些类似。

  1. 先是将评分分成几个分数段,例如以10分为步长,进行划分区间,这里区间数划分时不要太多。统计每个区间内,实际和模型预期的用户占比
  2. 按照公式$\ln(\frac{实际占比}{预期占比})(实际占比 - 预期占比)$ ,计算每个区间的指数,请注意一上,这里的百分比的单位是 %
  3. 最后的稳定性指数是各个区间指数的求和

可以设计一个表格

按照设定的得分区间,分别统计实际和预期的用户占比

IV值的是衡量两个离散变量之间的关联性,较低的取值 ,表明这两个变量的类别 分布相似。根据统计的稳定性指数,可以用来判断模型的稳定性。在判断的过程当时,也需要结合卡方检验的显著性标准。如果前面分布的区间有10个,那个卡方检验的自由度应该为$10-1 = 9$,以0.65和0.997的显著性水平,可以得到这下面的推荐标准:

  1. 稳定性在(0, 0.1], 无显著变化,无须采取行动,小于0.65的置信区间
  2. 稳定性指数在(0.1, 0.25],发现某些变化,建议进行检查
  3. 稳定性指数在(0.25, ),发现显著变化,建议重构评分卡,大于0.99的置信区间

上面是以10个区间数的时的一些推荐标准,如果划分的区间数不同,建议可以自己使用卡方检验进行查看

计算模型的稳定性指数可以我们发现下面一些问题:

  1. 作为验证统计量,以发现模型在训练集和测试集之间的差异,如果发现显著差异,可能需要用不同的变量、分箱等方法重新构建评分卡。而且还需要在划分训练集和测试集时的方法是否正确
  2. 可以监控模型上线后的表现。模型上线一段时间后,可以监控模型是否与预期目标发生变化,如果有的话,也需要对模型进行更新
  3. 通过稳定性指标,还可以检验上线后模型的好坏用户分布与预期的好坏用户分布是否有变化。

2. 评分卡要素分析

前面我们从模型整体上比较实际上线的模型和预设模型之间的变化。而在前面也提到过,模型上线后发生变化的原因可能是自变量的分布发生了变化。评分卡要素分析的目的就是评估自变量分布的认糨对于最终评分结果的冲击。

要素分析报告的分析过程有些类似稳定性分析

  1. 要素分析的区间正是做评分卡时变量计算WOE的区间,并记录各个区间对应的评分
  2. 分别统计每个变量区间内实际、预期的人数占比(占实际或预期全部人数的百分比)
  3. 按照公式 $(实际占比 - 预期占比) \times 区间对应的得分$,这里获得的每个区间的变量,对最后模型得分的影响
  4. 将各个区间按照第3步计算得到的得分求和,得到该变量的变动,对模型得分的影响

具体的计算过程,可以参考下面的表格。该表格以年龄变量为例,分别计算各个年龄区间的得分变化,再将这些得分变化进行求和。

上面的表中,最终求和的结果是 -3.99 ,说明了因为年龄变量分布差异,导致模型的平均得分比预期少了3.99($\approx 4$)分

3. 卡方检验

为了查看一组数据的分布是否和预期的数据分布是否一致,这里需要使用到的是卡方适度性检验(Goodness of fit)12

R 代码

> a = c(18,19,23,20,16,24)
> b = c(20,20,20,20,20,20)
> chisq.test(cbind(a,b))
> chisq.test(cbind(a,b))

    Pearson's Chi-squared test

data:  cbind(a, b)
X-squared = 1.1483, df = 5, p-value = 0.9497

最后的P-value为0.9497,不显著,数组a和数据b的分布一致。

Python 代码

from scipy.stats import chisquare 
a = [18,19,23,20,16,24]
b = [20,20,20,20,20,20]
chisquare(a,b)
Power_divergenceResult(statistic=2.3, pvalue=0.8062668698851285)

这里的P值是0.80,不显著,数据a和数据b的分布一致。这里需要注意的一点是R里面的卡方检验是单尾检验,Python里面的双尾检验。可以看出来 R算出的卡方值是Python中的一半。

上面的评分卡稳定性报告和要素分析整理自信用风险评分卡研究的第12章。


  1. 适度性检验(https://en.wikipedia.org/wiki/Goodness_of_fit) 

  2. 卡方检验(https://wiki.mbalib.com/wiki/%E5%8D%A1%E6%96%B9%E6%A3%80%E9%AA%8C)