先上一张评分卡

一、评分卡逻辑
信贷业务评估的是客户的客户违约率(Percent of Default)即PD,是[0,1]的概率,比如2%即100个客户中有2个违约,简称为p。
评分卡中不直接用客户违约率p,而是用违约概率与正常概率的比值,称为Odds,即
Odds=1−pp, p=1+OddsOdds
评分卡的背后逻辑是Odds的变动与评分变动的映射(把Odds映射为评分),分值是根据Odds的前提条件算出来的,不是人工取的。以单个客户在整张评分卡的得分的变动(比如评分从50分上升到70分)来反映Odds的变动(比如Odds从5%下降至1.25%),以及背后相对应的客户违约率PD的变动(比如从4.8%下降到1.2%)。违约率PD不直观、业务看起来不方便、不便计算,而评分就很直观、便于计算。如图所示。

因此评分卡的生成过程,就是Odds变动映射成评分变动的过程。
二、评分映射公式
Odds映射为评分的公式为:
Score=A−Blog(1−pp)
<1> 预设条件
要算出系数A、B的话,需要从业务角度先预设两个前提条件:
- 在某个特定的比率θ0设定特定的预期分值P0
- 指定比率翻番时分数的变动值(PDO)
解释:
- 比如根据业务经验,消费金融信贷的客户违约率4.8%算正常(θ0=Odds=5%))。预设评分卡的分值为0−100分,那取预期分值P_0)为50分,并指定当Odds按双倍上下浮动时(比如2.5%或10%),分值则对应上下变动10分(比如60分或40分)。
- 这里θ0=5%是根据业务经验来的,没有数学依据;
- 0-100分是根据做评分卡的需要来的,没有数学依据。要是想做成600-1000分的评分卡也可以,修改对应的P0和PDO就行;
-
P0=50分是根据0-100分来的,也可以取45分或73分,不重要。重要的是随着Odds翻番变动时,分数也随之变动的联动变化体系(你翻番我就变PDO=10分)
<2> 求解A、B
设定好θ0、P0、PDO后,联动变化为:Odds(θ0)对应的分值为P0,且翻番的Odds(2θ0)对应的分值为P0+PDO。则有以下两式:
P0=A−Blog(θ0)
P0+PDO=A−Blog(2θ0)
解出A、B为:
B=log(2)PDO
A=P0+Blog(θ0)
按上面的解释举个例子:
设θ0、P0、PDO为5%、50分、10分,则
B=ln(2)10=14.43
A=50+14.43∗ln(0.05)=6.78
则
Score=6.78−14.43log(1−pp)
<3> 完整的对应关系表
按照公式,可以把所有Odds(1−pp)和客户评分、客户违约概率(PD)的对应关系算出来

该关系对应表应该算信用评分卡的核心思想了,评分是外层表现,客户违约率是内层核心,Odds是中间层转换计算
三、Odds映射X变量
那问题来了,现在能算Score了,但输入是Odds。但数据的输入是特征变量[x1,x2,x3,⋯,xn],这里怎么对应呢?这就要说到逻辑回归本身了,先放结论:
log(1−pp)=β0+β1x1+β2x2+⋯+βnxn
怎么来的,以下详细讲。
<1> Sigmoid
逻辑回归来源于线性回归(二维空间中就是一条直线拟合所有样本点),虽然线性回归是回归算法,逻辑回归是分类算法,但从算法表达式上,逻辑回归就是在线性回归算法外面套了一层壳。
线性回归:
f(x)=β0+β1x1+β2x2+⋯+βnxn

逻辑回归:
f(x)=1+e−(β0+β1x1+β2x2+⋯+βnxn)1

可以看到,从表达式上看,逻辑回归只是在线性回归的表达式外面套了一层f(x)=1+e−x1的壳。为什么要套这层壳,因为线性回归的值域为实数集R,但逻辑回归是二分类算法,需要输出的是类别1和类别2的概率,而概率是个[0, 1]之间的数。因此需要将线性回归的输出实数变成[0, 1]之间的概率,而能满足输入是实数而输出是[0, 1]的,就是Sigmoid函数,它的图形是个类S(见上面逻辑回归图)的限定在[0, 1]之间的函数。因此将Sigmoid函数套在线性回归外面,构成逻辑回归,拥有处理非线性的能力,可以做分类。
<2> 变换公式形式
那么在信贷评分卡上,f(x)即为要预测的客户违约率(PD)p,另将β0+β1x1+β2x2+⋯+βnxn简写为向量形式βTx,即:
p=1+e−βTx1
经过变换,可得ln(1−pp)=βTx
四、X变量细分到分组
好,回到主线,log(1−pp)=β0+β1x1+β2x2+⋯+βnxn,将score公式中的输入p变成输入特征变量X。到这里按理就可以结束了,有X就可以产出客户的Score,即:
Score=A−B(β0+β1x1+β2x2+⋯+βnxn)
但我们要做的是分组评分卡,X是要对应到每个分组,得到各变量分组的评分然后相加得到客户总评分的,那就还需要将X打散到各分类(用离散型数据入逻辑回归模型)。因此这里的输入X就不能是原始变量,而是原始变量分箱并算WOE后的woe值(类似离散变量中各类别的数值化),即:
Score=A−B[β0+β1(δ11w11+δ12w12+δ13w13)+β2(δ21w21+δ22w22+δ23w23+δ24w24)+⋯+βn(δn1wn1+δn2wn2)]
- 假设类别型变量x1、x2、xn分别有3、4、2个分类(数值型变量先分箱成类别型变量)
-
δij代表第i个变量的第j个分类,客户数据参与评分时,某个变量x只会有1个数,只会对应一个分类。比如,变量x1的取值是第2个分类的话,那δ12为1,则第二个分类的woe值w12生效,x1的其他两个δ则为0,对应的其他两个分类的woe值无效不参与计算
五、生成评分卡
将上面的公式变下形式,变成最终可以组成评分卡的样式,即:
Score=A−B{β0+(β1w11)δ11+(β1w12)δ12+(β1w13)δ13+(β2w21)δ21+(β2w22)δ22+(β2w23)δ23+(β2w24)δ24+⋯+(βnwn1)δn1+(βnwn2)δn2}
Score=(A−Bβ0)−(Bβ1w11)δ11−(Bβ1w12)δ12−(Bβ1w13)δ13−(Bβ1w14)δ14−⋯−(Bβnwn1)δn1−(Bβnwn2)δn2

A、B已经算出,β是逻辑回归模型的输出系数,β0是逻辑回归模型的输出截距项,w是分箱后的woe值
嗯,至此评分卡就可以生成了。