信用分建模

信用分模型

目前有 n n n个样本,每个样本表示一个贷款客户的信息。则第 i i i个样本表示为 { x i . y i } \{x_i.y_i\} {xi.yi},其中 y ∈ { 0 , 1 } y\in \{0,1\} y{0,1} 0代表正常,1代表逾期
写成矩阵的形式:
X = { 1 x 1 , 1 x 1 , 2 . . . x 1 , r 1 x 2 , 1 x 2 , 2 . . . x 2 , r . . . . . . . . . . . . . . . 1 x n , 2 x n , 3 . . . x n , r } X = \left \{ \begin{aligned} 1 && x_{1,1} && x_{1,2} && ... && x_{1,r} \\ 1 && x_{2,1} && x_{2,2} && ... && x_{2,r} \\ ... && ... && ... && ... && ... \\ 1 && x_{n,2} && x_{n,3} && ... && x_{n,r} \\ \end{aligned}\right\} X=11...1x1,1x2,1...xn,2x1,2x2,2...xn,3............x1,rx2,r...xn,r
Y = ( y 1 , y 2 , . . . , y n ) T Y = (y_1,y_2,...,y_n)^T Y=(y1,y2,...,yn)T

对客户 i i i而言,如果其逾期的概率是 p i p_i pi,那么其正常的概率就是 1 − p i 1-p_i 1pi ,一个客户要么逾期要么正常,逾期和正常的概率之和必然是1。
因为需要根据 X X X评估用户 i i i是否会逾期。所以可以考虑使用最常见的广义可加模型,其中线性模型最为简单。
如下所示::

在这里插入图片描述

另外,又考虑到概率 p i p_i pi的值域是 [ 0 , 1 ] [0,1] [0,1]区间,T希望输出的函数值在这个值域。因此再嵌套一层函数以变换值域:在这里插入图片描述

显然,上式的值域一定是在[0,1]区间的,这里使用logsitic函数是因为 e z i e^{z_i} ezi在微分求导上更便利。
样本 x i x_i xi对应的借款人,可能是逾期,也可能是正常,可以用一个公式同时表示这两种情况:

P i = P ( y i ∣ x i β i ) = ( p i ) y i ( 1 − p i ) ( 1 − y i ) y i ∈ { 0 , 1 } P_i=P(y_i|x_i\beta_i) = (p_i)^{y_i}(1-p_i)^{(1-y_i)}\\y_i \in \{0,1\} Pi=P(yixiβi)=(pi)yi(1pi)(1yi)yi{0,1}
对n个样本而言,样本之间是相互独立的,因此对所有样本而言,其全体概率是:
L ( β ) = ∏ i = 0 n P i L(\beta)=\prod_{i=0}^nP_i L(β)=i=0nPi
那么我们就需要对其中的参数 β j \beta_j βj进行估计,也就是让 L ( β ) L(\beta) L(β)的值最大,这里采用的是极大似然估计,这样就可以得到损失函数:
m i n min min l n L ( β ) = − 1 m ∑ ( y i 1 p i + ( 1 − y i ) 1 ( 1 − p i ) ) ln^{L(\beta)} =-\frac{1}{m}\sum(y_i\frac{1}{p_i}+(1-y_i)\frac{1}{(1-p_i)}) lnL(β)=m1(yipi1+(1yi)(1pi)1)
得到损失函数以后,我们再使用梯度下降法求得近似最优解.

评分卡模型建立

评分卡的分值分配,由比率决定。例如,一个评分卡可以设定,评分每降低 20 20 20分,违约的比率升高一倍, 600 600 600分账户的违约比率是 620 620 620 分账户的两倍。每个得分对应一个特定的违约比率,便于控制预期违约账户。


O d d s = p i 1 − p i %排公式 \begin{aligned} %自动编号 Odds=\frac{p_i}{1-p_i} \end{aligned} Odds=1pipi
O d d s Odds Odds(几率):不违约概率与违约概率的比值
公式 o d d s odds odds做个变形,也就有:
p i = O d d s 1 + O d d s \begin{aligned} %自动编号 p_i=\frac{Odds}{1+Odds} \end{aligned} pi=1+OddsOdds

评分卡的信用分计算:
S c o r e = A − B ln ⁡ ( O d d s ) \begin{aligned} %自动编号 Score=A-B\ln(Odds) \end{aligned} Score=ABln(Odds)

其中,A和B是常数。如果违约率 p p p很小,那么Odds是一个正的小数,比如0.01、0.02,表示逾期概率很低,此时 l n ( O d d s ) ln(Odds) ln(Odds)是大的负数, S c o r e Score Score的分数高。反之可知 S c o r e Score Score的分数低。

计算A和B:

我们使用PDO(指定的违约概率翻倍的分数)方法来计算A,B

1.设定某个比率为 θ 0 \theta_0 θ0的对应的分值是 p 0 p_0 p0,然后,比率为 2 θ 0 2\theta_0 2θ0的点的分值是 p 0 + P D O p_0+PDO p0+PDO

2.将上述两个设定带入公式,有如下两个等式:

p 0 = A − B ln ⁡ ( θ ) p 0 + P D O = A − B ln ⁡ ( 2 θ ) \begin{aligned} %自动编号 p_0=A-B\ln(\theta) \end{aligned}\\\begin{aligned} %自动编号 p_0+PDO=A-B\ln(2 \theta) \end{aligned} p0=ABln(θ)p0+PDO=ABln(2θ)

3.两个等式联合求解,可得:
B = P D O ln ⁡ ( 2 ) A = p 0 + B ln ⁡ ( θ 0 ) \begin{aligned} %自动编号 B&=\frac{PDO}{\ln(2)}\\ A&=p_0+B\ln(\theta_0) \end{aligned} BA=ln(2)PDO=p0+Bln(θ0)

4.计算示例,违约比 O d d s = 1 60 Odds=\frac{1}{60} Odds=601的时候,是合理的违约比,此时对应的分值是 p 0 = 600 p_0=600 p0=600分,违约比每翻倍,分数变小 20 20 20分,也就是PDO= 20 20 20。那么,根据上述公式可以求出 A = 481.86 A=481.86 A=481.86 B = 28.85 B=28.85 B=28.85,也就是 S c o r e = 481.89 − 28.85 l n ( O d d s ) Score=481.89-28.85ln(Odds) Score=481.8928.85ln(Odds)。如果 O d d s = 1 30 Odds=\frac{1}{30} Odds=301,增加一倍,则 S c o r e Score Score经过计算可得是 580.01 580.01 580.01,四舍五入后是 580 580 580,符合预期。

评分卡的模型建立

现在,我们重另外一个角度解释分箱的意义:
首先,我们知道:
l n ( p i 1 − p i ) = z i ln(\frac{p_i}{1-p_i})=z_i ln(1pipi)=zi
那么公式
S c o r e = A − B ln ⁡ ( p i 1 − p i ) \begin{aligned} %自动编号 Score=A-B\ln(\frac{p_i}{1-p_i}) \end{aligned} Score=ABln(1pipi)
可以变形为
S c o r e = A − B ( β 0 + β 1 x i , 1 + . . . + β r x i , r ) S c o r e = A − B β 0 + B ( − β 1 x i , 1 − . . . − β r x i , r ) (0) Score=A-B(\beta_0+\beta_1x_{i,1}+...+\beta_rx_{i,r})\\Score=A-B\beta_0+B(-\beta_1x_{i,1}-...-\beta_rx_{i,r})\tag{0} Score=AB(β0+β1xi,1+...+βrxi,r)Score=ABβ0+B(β1xi,1...βrxi,r)(0)
计算信用分,还可以进一步简化。根据上式计算信用分,需要 x i x_{i} xi和多个参数进行计算,让操作人员使用直接使用这些参数是不合适的,首先结算结果解释性不清晰,其次核查每个属性对信用分产生的影响略显复杂。因此,简化的预期是,
第一,一线人员不需要记住 A A A B B B β j ( j − 0 , 1 , . . . , r ) \beta_j(j-0,1,...,r) βj(j0,1,...,r) p 0 p_0 p0等参数
第二,要知道 x i x_i xi的每个属性变量对信用分的贡献,大小多少。

举例来说,年龄 a g e age age是一个属性。信用分计算使用年龄属性,与其把年龄数值代入公式(0)进行计算,不如把进行分段,比如 a g e < 18 age<18 age<18是一段,对应一个分值,比如10分, 18 ≤ a g e ≤ 35 18\le age\le 35 18age35是一段,对应一个分值,比如20分, a g e > 35 age>35 age>35是一段,对应一个分值,比如15分。这样在计算信用分的时候,根据年龄所在的分段,查找分数。其他属性以此类推,把所有变量对应的分数加起来,再加上基础分,就得到信用分。

这样就可以从实用角度推导出分箱的必要性。
那么如果把年龄进行分箱,在计算公式(0)的时候,就不能再使用年龄的数值–用什么数据拟合才可以用什么数据预测,用年龄数值拟合的结果不能用年龄分段值进行预测。因此,每个年龄段需要用这个年龄段对应的一个值,替换掉年龄值,进入公式(0)做计算。
每个年龄段用一个值替换,这个值,在本质上需要能反应该年龄段对判别用户是逾期和正常的“价值”。所谓价值,比如说,全部样本有100个,其中正常的是90个,逾期的是10个,其中, a g e < 18 age<18 age<18的样本有30个,这30个样本里,正常的是10个,逾期的是20个,那么, a g e < 18 age<18 age<18这个年龄段对判断逾期,就是有“价值的”,因为这个年龄段逾期的密度比较高。如果 a g e < 18 age<18 age<18的样本有30个,这30个样本里,正常的是27个,逾期的是3个,那么, a g e < 18 age<18 age<18这个年龄段对判断逾期,就是没有“价值的”,因为这个年龄段逾期的密度跟全部样本的逾期密度是一样的。

由此,我们找到一个估算一个分段的价值度量,就是Weight of Evidence:
在这里插入图片描述

其中, k k k表示一个属性的第 k k k个分段, n k g o o d n_k^{good} nkgood表示这个分段对应的样本里正常还款的数量, n k b a d n_k^{bad} nkbad表示这个分段对应的样本里逾期还款的数量, n a l l g o o d n_{all}^{good} nallgood表示所有样本里正常还款的数量, n a l l b a d n_{all}^{bad} nallbad表示所有样本里逾期还款的数量。
一般写作:

以此类推,可以计算每个属性变量的每个分段的 W O E WOE WOE
当拥有了WOE这个工具以后,我们就可以计算特征对于预测函数的贡献程度,使用IV进行判断,不过这属于特征工程的部分,这里就不展开讨论了:
在这里插入图片描述

引入 W O E WOE WOE之后,计算流程如下:

1.对公式公式(0)的每个变量,进行分段。分段方式有多种,也可以根据具体场景自行设计。分段之后,计算每个变量的每个分段的 W O E WOE WOE值。然后,根据 x i , j x_{i,j} xi,j对应的分段,用 W O E k WOE_k WOEk替换 x i , j x_{i,j} xi,j。最终,公式 ( ? ? ? ) (???) (???)所有的值,都是各种 W O E WOE WOE的值,不再有 x i , j x_{i,j} xi,j的值了。

2.后续其他流程完全不变。

评分卡标准形

引入WOE之后,公式(0)变成如下形式
在这里插入图片描述其中, ( − β 1 x i , 1 ) (-\beta_1x_{i,1}) (β1xi,1) ( − β 1 ( δ i , 1 , 1 W O E 1 , 1 + δ i , 1 , 2 W O E 1 , 2 + . . . + δ i , 1 , k 1 W O E 1 , k 1 ) ) (-\beta_1(\delta_{i,1,1}WOE_{1,1}+\delta_{i,1,2}WOE_{1,2}+...+\delta_{i,1,k_{1}}WOE_{1,k_{1}})) (β1(δi,1,1WOE1,1+δi,1,2WOE1,2+...+δi,1,k1WOE1,k1))替换。 x i , 1 x_{i,1} xi,1是第 i i i个样本的第 1 1 1个属性变量,这个数量变量在分段阶段被分为 k 1 k_1 k1段, W O E 1 , k 1 WOE_{1,k_{1}} WOE1,k1表示第 k 1 k_1 k1段的 W O E WOE WOE δ i , 1 , 1 \delta_{i,1,1} δi,1,1表示,如果变量 x i , 1 x_{i,1} xi,1的值在第1个分段,那么 δ i , 1 , 1 = 1 \delta_{i,1,1}=1 δi,1,1=1,如果变量 x i , 1 x_{i,1} xi,1的值不在第1个分段, δ i , 1 , 1 = 0 \delta_{i,1,1}=0 δi,1,1=0,这个变量的目的是让公式(0)的形式整齐。其他以此类推。

每个属性变量被切分成多少个分段是不确定的,肯定是互相不一样,因此需要分别表示,比如第 r r r个属性变量,被切分成 k r k_r kr段。

这样,计算信用分就变成了如下流程:

1.基础分是 A − B β 0 A-B\beta_0 ABβ0

2.对于第一个属性,如果它的值在该第一个分段,增加分值 − β 1 δ 1 , 1 W O E 1 , 1 -\beta_1\delta_{1,1}WOE_{1,1} β1δ1,1WOE1,1,如果它的值在第二个分段,增加分值 − β 1 δ 1 , 2 W O E 1 , 2 -\beta_1\delta_{1,2}WOE_{1,2} β1δ1,2WOE1,2…,由此,计算出第一个属性对应的分值,然后累加到基础分上。

3.以跟2.同样的步骤,处理所有属性变量,得到最终的信用分。
反映在程序上,就是将

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值