信贷评分卡模型基础知识
一、模型输出概率转化为分数
风控模型(XGB模型、LGB模型或LR模型)直接输出的是客户逾期概率,在评分卡应用场景中,需要将此概率转化为对客户的评分,转化方式如下。设p表示客户逾期概率,将bad/good的比例记:
o
d
d
s
=
p
1
−
p
odds = \frac{p}{1-p}
odds=1−pp
评分卡分数可表示为下式:
s
c
o
r
e
=
A
−
B
∗
l
o
g
(
o
d
d
s
)
=
A
−
B
∗
l
o
g
(
p
1
−
p
)
\begin{aligned} score &=A-B*log(odds)\\ &=A-B*log(\frac{p}{1-p}) \end{aligned}
score=A−B∗log(odds)=A−B∗log(1−pp)
其中,A和B是常数。式中的负号使得违约概率越低,得分越高。通常情况下,这是分值的理想变动方向,即高分值代表低风险,低分值代表高风险。
常数A、B的值可以通过将两个已知或假设的分值带入计算得到。通常情况下,需要设定两个假设:
(1)给定odds=Ratio时,预期分数为Base;
(2)Ratio翻倍时,分数减少值为PDO(即Point of Double Odds)
于是,可以得到二元一次方程组
{
B
a
s
e
=
A
−
B
∗
l
o
g
(
R
a
t
i
o
)
B
a
s
e
−
P
D
O
=
A
−
B
∗
l
o
g
(
2
∗
R
a
t
i
o
)
\begin{cases} Base&= A-B*log(Ratio)\\ Base- PDO&=A-B*log(2*Ratio) \end{cases}
{BaseBase−PDO=A−B∗log(Ratio)=A−B∗log(2∗Ratio)
由此可求解得到A和B的值
B
=
P
D
O
/
l
o
g
(
2
)
A
=
B
a
s
e
+
B
∗
l
o
g
(
R
a
t
i
o
)
\begin{aligned} B &= PDO / log(2)\\ A&=Base + B * log(Ratio) \end{aligned}
BA=PDO/log(2)=Base+B∗log(Ratio)
举例
我们设定
o
d
d
s
=
1
/
15
odds=1/15
odds=1/15,即
p
b
a
d
/
p
g
o
o
d
=
1
/
15
p_{bad}/p_{good}=1/15
pbad/pgood=1/15时,评分为600。当
o
d
d
s
odds
odds每增大一倍,评分减60分,即PDO=60。由此我们可以得到
B
=
60
/
l
o
g
(
2
)
≈
86.56
B=60/log(2)\approx86.56
B=60/log(2)≈86.56,
A
=
600
+
60
l
o
g
(
1
/
15
)
/
l
o
g
(
2
)
≈
365.59
A=600+60log(1/15)/log(2)\approx365.59
A=600+60log(1/15)/log(2)≈365.59。于是可以得到概率p和评分score的转换公式为
s
c
o
r
e
=
365.59
−
86.56
∗
l
o
g
(
p
/
(
1
−
p
)
)
score=365.59-86.56*log(p/(1-p))
score=365.59−86.56∗log(p/(1−p))
python代码
import numpy as np
def p_to_score(p, PDO=60.0, Base=600, Ratio=1.0/15.0):
"""
逾期概率转换分数
:param p: 逾期概率
:param PDO: points double odds. default = 60
:param Base: base points. default = 600
:param Ratio: odds. default = 1.0/15.0
:returns: 模型分数
"""
B = PDO / np.log(2)
A = Base + B * np.log(Ratio)
score = A - B * np.log(p / (1 - p))
return round(score, 0)
二、模型KS指标
KS指标主要用来验证模型对客户好坏的区分能力。通常是在模型对样本打分后,对分数进行分箱,然后统计每箱好客户和坏客户的累计样本数占比,累积Bad占比与累积Good占比之差即为每箱的KS,模型KS定义为各分箱KS的最大值。
K
S
=
m
a
x
∣
P
c
u
m
(
B
a
d
)
−
P
c
u
m
(
G
o
o
d
)
∣
KS ={max}|P_{cum}(Bad)-P_{cum}(Good)|
KS=max∣Pcum(Bad)−Pcum(Good)∣
KS是最主要的模型评价指标, KS越高,模型越好。但过高的KS可能意味着过度拟合从而导致模型不稳定。通常能达到40%以上的模型就很不错了。数据较差时,20%的KS也勉强可以用。
举例
对应的KS曲线如下图所示