先上一张评分卡

信贷风险评分卡

一、评分卡逻辑

信贷业务评估的是客户的客户违约率(Percent of Default)即PD,是[0,1]的概率,比如2%即100个客户中有2个违约,简称为p。

评分卡中不直接用客户违约率p,而是用违约概率与正常概率的比值,称为Odds,即

Odds=p1pOdds=\frac{p}{1-p}p=Odds1+Oddsp=\frac{Odds}{1+Odds}

评分卡的背后逻辑是Odds的变动与评分变动的映射(把Odds映射为评分),分值是根据Odds的前提条件算出来的,不是人工取的。以单个客户在整张评分卡的得分的变动(比如评分从50分上升到70分)来反映Odds的变动(比如Odds从5%下降至1.25%),以及背后相对应的客户违约率PD的变动(比如从4.8%下降到1.2%)。违约率PD不直观、业务看起来不方便、不便计算,而评分就很直观、便于计算。如图所示。

信贷风险评分卡

因此评分卡的生成过程,就是Odds变动映射成评分变动的过程。

二、评分映射公式

Odds映射为评分的公式为:

Score=ABlog(p1p)Score=A-Blog(\frac{p}{1-p})

<1> 预设条件

要算出系数A、B的话,需要从业务角度先预设两个前提条件:

  1. 在某个特定的比率θ0\theta_0设定特定的预期分值P0P_0
  2. 指定比率翻番时分数的变动值(PDO)

解释:

  1. 比如根据业务经验,消费金融信贷的客户违约率4.8%算正常(θ0=Odds=5%)0100\theta_0=Odds=5\%))。预设评分卡的分值为0-100分,那取预期分值P_0)为50分,并指定当Odds按双倍上下浮动时(比如2.5%或10%),分值则对应上下变动10分(比如60分或40分)。
  2. 这里θ0\theta_0=5%是根据业务经验来的,没有数学依据;
  3. 0-100分是根据做评分卡的需要来的,没有数学依据。要是想做成600-1000分的评分卡也可以,修改对应的P0P_0和PDO就行;
  4. P0P_0=50分是根据0-100分来的,也可以取45分或73分,不重要。重要的是随着Odds翻番变动时,分数也随之变动的联动变化体系(你翻番我就变PDO=10分)

<2> 求解A、B

设定好θ0\theta_0P0P_0、PDO后,联动变化为:Odds(θ0)Odds(\theta_0)对应的分值为P0P_0,且翻番的Odds(2θ0)Odds(2\theta_0)对应的分值为P0P_0+PDO。则有以下两式:

P0=ABlog(θ0)P_0=A-Blog(\theta_0)

P0+PDO=ABlog(2θ0)P_0+PDO=A-Blog(2\theta_0)

解出A、B为:

B=PDOlog(2)B=\frac{PDO}{log(2)}

A=P0+Blog(θ0)A=P_0+Blog(\theta_0)

按上面的解释举个例子:

θ0\theta_0P0P_0、PDO为5%、50分、10分,则

B=10ln(2)=14.43B=\frac{10}{ln(2)}=14.43

A=50+14.43ln(0.05)=6.78A=50+14.43*ln(0.05)=6.78

Score=6.7814.43log(p1p)Score=6.78-14.43log(\frac{p}{1-p})

<3> 完整的对应关系表

按照公式,可以把所有Odds(p1p)Odds(\frac{p}{1-p})和客户评分、客户违约概率(PD)的对应关系算出来

信贷风险评分卡

该关系对应表应该算信用评分卡的核心思想了,评分是外层表现,客户违约率是内层核心,Odds是中间层转换计算

三、Odds映射X变量

那问题来了,现在能算Score了,但输入是Odds。但数据的输入是特征变量[x1,x2,x3,&ThinSpace;,xn][x_1,x_2,x_3,\cdots,x_n],这里怎么对应呢?这就要说到逻辑回归本身了,先放结论:

log(p1p)=β0+β1x1+β2x2++βnxnlog(\frac{p}{1-p})=\beta_0+\beta_1x_1+\beta_2x_2+\cdots+\beta_nx_n

怎么来的,以下详细讲。

<1> Sigmoid

逻辑回归来源于线性回归(二维空间中就是一条直线拟合所有样本点),虽然线性回归是回归算法,逻辑回归是分类算法,但从算法表达式上,逻辑回归就是在线性回归算法外面套了一层壳。

线性回归:
f(x)=β0+β1x1+β2x2++βnxn f(x)=\beta_0+\beta_1x_1+\beta_2x_2+\cdots+\beta_nx_n

信贷风险评分卡

逻辑回归:
f(x)=11+e(β0+β1x1+β2x2++βnxn) f(x)=\frac{1}{1+e^{-(\beta_0+\beta_1x_1+\beta_2x_2+\cdots+\beta_nx_n)}}
信贷风险评分卡

可以看到,从表达式上看,逻辑回归只是在线性回归的表达式外面套了一层f(x)=11+exf(x)=\frac{1}{1+e^{-x}}的壳。为什么要套这层壳,因为线性回归的值域为实数集R,但逻辑回归是二分类算法,需要输出的是类别1和类别2的概率,而概率是个[0, 1]之间的数。因此需要将线性回归的输出实数变成[0, 1]之间的概率,而能满足输入是实数而输出是[0, 1]的,就是Sigmoid函数,它的图形是个类S(见上面逻辑回归图)的限定在[0, 1]之间的函数。因此将Sigmoid函数套在线性回归外面,构成逻辑回归,拥有处理非线性的能力,可以做分类。

<2> 变换公式形式

那么在信贷评分卡上,f(x)f(x)即为要预测的客户违约率(PD)pp,另将β0+β1x1+β2x2++βnxn\beta_0+\beta_1x_1+\beta_2x_2+\cdots+\beta_nx_n简写为向量形式βTx\beta^Tx,即:

p=11+eβTxp=\frac{1}{1+e^{-\beta^Tx}}

经过变换,可得ln(p1p)=βTxln(\frac{p}{1-p})=\beta^Tx

四、X变量细分到分组

好,回到主线,log(p1p)=β0+β1x1+β2x2++βnxnlog(\frac{p}{1-p})=\beta_0+\beta_1x_1+\beta_2x_2+\cdots+\beta_nx_n,将score公式中的输入p变成输入特征变量X。到这里按理就可以结束了,有X就可以产出客户的Score,即:

Score=AB(β0+β1x1+β2x2++βnxn)Score=A-B(\beta_0+\beta_1x_1+\beta_2x_2+\cdots+\beta_nx_n)

但我们要做的是分组评分卡,X是要对应到每个分组,得到各变量分组的评分然后相加得到客户总评分的,那就还需要将X打散到各分类(用离散型数据入逻辑回归模型)。因此这里的输入X就不能是原始变量,而是原始变量分箱并算WOE后的woe值(类似离散变量中各类别的数值化),即:

Score=AB[β0+β1(δ11w11+δ12w12+δ13w13)+β2(δ21w21+δ22w22+δ23w23+δ24w24)++βn(δn1wn1+δn2wn2)]Score=A-B[\beta_0+\beta_1(\delta_{11}w_{11}+\delta_{12}w_{12}+\delta_{13}w_{13})+\beta_2(\delta_{21}w_{21}+\delta_{22}w_{22}+\delta_{23}w_{23}+\delta_{24}w_{24})+\cdots+\beta_n(\delta_{n1}w_{n1}+\delta_{n2}w_{n2})]

  1. 假设类别型变量x1x_1x2x_2xnx_n分别有3、4、2个分类(数值型变量先分箱成类别型变量)
  2. δij\delta_{ij}代表第i个变量的第j个分类,客户数据参与评分时,某个变量x只会有1个数,只会对应一个分类。比如,变量x1x_1的取值是第2个分类的话,那δ12\delta_{12}为1,则第二个分类的woe值w12w_{12}生效,x1x_1的其他两个δ\delta则为0,对应的其他两个分类的woe值无效不参与计算

五、生成评分卡

将上面的公式变下形式,变成最终可以组成评分卡的样式,即:
Score=AB{β0+(β1w11)δ11+(β1w12)δ12+(β1w13)δ13+(β2w21)δ21+(β2w22)δ22+(β2w23)δ23+(β2w24)δ24++(βnwn1)δn1+(βnwn2)δn2} \begin{aligned} Score=A-B\{\beta_0 &amp; +(\beta_1w_{11})\delta_{11}+(\beta_1w_{12})\delta_{12}+(\beta_1w_{13})\delta_{13} \\ &amp; +(\beta_2w_{21})\delta_{21}+(\beta_2w_{22})\delta_{22}+(\beta_2w_{23})\delta_{23}+(\beta_2w_{24})\delta_{24} \\ &amp; +\cdots \\ &amp; +(\beta_nw_{n1})\delta_{n1}+(\beta_nw_{n2})\delta_{n2}\} \end{aligned}

Score=(ABβ0)(Bβ1w11)δ11(Bβ1w12)δ12(Bβ1w13)δ13(Bβ1w14)δ14(Bβnwn1)δn1(Bβnwn2)δn2 \begin{aligned} Score=(A-B\beta_0) &amp; - (B\beta_1w_{11})\delta_{11}-(B\beta_1w_{12})\delta_{12}-(B\beta_1w_{13})\delta_{13}-(B\beta_1w_{14})\delta_{14} \\ &amp; -\cdots-(B\beta_nw_{n1})\delta_{n1}-(B\beta_nw_{n2})\delta_{n2} \end{aligned}

信贷风险评分卡

A、B已经算出,β\beta是逻辑回归模型的输出系数,β0\beta_0是逻辑回归模型的输出截距项,w是分箱后的woe值

嗯,至此评分卡就可以生成了。

相关文章: