【评分卡】评分卡入门与创建原则——分箱、WOE、IV、分值分配

【评分卡】评分卡入门与创建原则——分箱、WOE、IV、分值分配

本文主要讲“变量选择”“模型开发”“评分卡创建和刻度”

变量分析

首先,需要确定变量之间是否存在共线性,若存在高度相关性,只需保存最稳定、预测能力最高的那个。需要通过 VIF(variance inflation factor)也就是 方差膨胀因子进行检验。
变量分为连续变量和分类变量。在评分卡建模中,变量分箱(binning)是对连续变量离散化(discretization)的一种称呼。要将logistic模型转换为标准评分卡的形式,这一环节是必须完成的。信用评分卡开发中一般有常用的等距分段、等深分段、最优分段。

单因子分析,用来检测各变量的预测强度,方法为WOE、IV;

WOE

WOE(weight of Evidence)字面意思证据权重,对分箱后的每组进行。假设good为好客户(未违约),bad为坏客户(违约)。

KaTeX parse error: No such environment: align at position 9: \begin{̲a̲l̲i̲g̲n̲}̲ WOE_i &= ln(\f…
#good(i)表示每组中标签为good的数量,#good(T)为good的总数量;bad相同。

IV

IV(information value)衡量的是某一个变量的信息量,公式如下:
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ IV &= \sum_{i=…
N为分组的组数;
IV可用来表示一个变量的预测能力。

IV 预测能力
<0.03 无预测能力
0.03~0.09
0.1~0.29
0.3~0.49
>=0.5 极高

根据IV值来调整分箱结构并重新计算WOE和IV,直到IV达到最大值,此时的分箱效果最好。

分组一般原则

  1. 组间差异大
  2. 组内差异小
  3. 每组占比不低于5%
  4. 必须有好、坏两种分类

举例说明

例如按年龄分组,一般进行分箱,我们都喜欢按照少年、青年、中年、老年几大类进行分组,但效果真的不一定好:

Age good bad WOE
<18 50 40 ln(50/33040/220)=0.182321556793955ln(\frac{50/330}{40/220}) = -0.182321556793955
18~30 100 60 ln(100/33060/220)=0.105360515657826ln(\frac{100/330}{60/220}) = 0.105360515657826
30~60 100 80 ln(100/33080/220)=0.182321556793955ln(\frac{100/330}{80/220}) = -0.182321556793955
>60 80 40 ln(80/33040/220)=0.287682072451781ln(\frac{80/330}{40/220}) = 0.287682072451781
ALL 330 220

KaTeX parse error: No such environment: align at position 9: \begin{̲a̲l̲i̲g̲n̲}̲ IV &= (\frac{…
根据IV值可以看出,预测能力低,建议重新调整分箱。

建立模型

先进行数据划分,一般70%训练集、30%测试集。训练集用于训练模型,测试集用于检测训练后的模型。
一般采用Logistic Regression建立模型,训练模型。将建好的模型对待测样本进行预测。
【评分卡】评分卡入门与创建原则——分箱、WOE、IV、分值分配

评分卡

评分卡计算方法

odds为good用户概率(p)与bad用户概率(1-p)的比值。
odds=p1p odds=\frac{p}{1-p}
评分卡设定的分值刻度可以通过将分值表示为比率对数的现行表达式来定义。公式如下:
score=A+Bln(odds) score_总=A+B*ln(odds)
注:若odds是 \frac{坏客户概率}{好客户概率},odds应取倒数,再经过lnln转换则B前面是减号。所以有的地方此公式B前为负号。

设置比率为θ0\theta_0(也就是odds)的特定点分值为P0P_0,比率为2θ02\theta_0的点的分值为P0+PDOP_0+PDO。带入上面公式可得到:
{P0=A+Bln(θ0)P0+PDO=A+Bln(2θ0) \begin{cases} P_0 &amp;= A+Bln(\theta_0) \\ P_0+PDO &amp;= A+Bln(2\theta_0) \end{cases}
求解上述公式,可以得到A、B值:
{B=PDOln2A=P0Bln(θ0) \begin{cases} B &amp;= \frac{PDO}{ln2} \\ A &amp;= P_0-Bln(\theta_0) \end{cases}

P0P_0PDOPDO 的值都是已知常数,可计算出A、B值带入scorescore公式,得到不同θ0\theta_0下的评分卡分值。
θ0\theta_0也就是oddsodds,可由Logistic Regression模型评估的结果 pp 计算得到。
到这个地方,一个样本的评分结果已经计算得到。

分值分配

在实际的应用中,我们会计算出每个变量的各分箱对应的分值。新用户产生时,对应到每个分箱的值,将这些值相加,最后加上初始基础分,得到最终的结果。
如果用户某个变量发生改变,由一个分箱变成另一个,只需将更新后所在分箱的值做替换,再重新相加即可得到新的总分。

我们都知道,假设模型结果为p,根据Logistic Regression计算公式有:
p=11+eθTx p = \frac{1}{1+e^{-\theta^Tx}}
经过转换得到
ln(p1p)=θTx ln(\frac{p}{1-p})=\theta^Tx
所以
score=A+B(θTx)=A+B(w0+w1x1++wnxn) score_总 = A+B*(\theta^Tx)=A+B*(w_0+w_1x_1+···+w_nx_n)
=(A+Bw0)+Bw1x1++Bwnxn =(A+B*w_0)+B*w_1x_1+···+B*w_nx_n
这里w1,w2,...,wnw_1,w_2,...,w_n是Logistic Regression中的x1,x2,...,xnx_1,x_2,...,x_n的系数。
(A+Bw0)(A+B*w_0)为基础分数,Bw1x1,,BwnxnB*w_1x_1,···,B*w_nx_n为每个变量对应分配到的分数。

之前步骤中每个变量都有进行分箱操作,分为若干类。所以下一步的话,把每个变量对应的分数,分别乘以变量中每个分箱的WOE,得到每个分箱的评分结果。

变量 分箱类别 分值
基础分数 - (A+Bw0)(A+B*w_0)
x1x_1 1
2

ii
(Bw1)WOE11(B*w_1)*WOE_{11}
(Bw1)WOE12(B*w_1)*WOE_{12}
···
(Bw1)WOE1i(B*w_1)*WOE_{1i}
x2x_2 1
2

jj
(Bw2)WOE21(B*w_2)*WOE_{21}
(Bw2)WOE22(B*w_2)*WOE_{22}
···
(Bw2)WOE2j(B*w_2)*WOE_{2j}
··· ··· ···
xnx_n 1
2

kk
(Bwn)WOEn1(B*w_n)*WOE_{n1}
(Bwn)WOEn2(B*w_n)*WOE_{n2}
···
(Bwn)WOEnk(B*w_n)*WOE_{nk}

以上步骤都完成后,假如新产生一个用户,我们只需将此用户每个变量对应到各分箱中得到其对应的WOE值,再根据上面的公式计算出这个样本在每个变量下的分数。最后将所有变量对应的分数相加,即为最终评分结果。

最后说一下,特征选择方面,并不是维度越多越好。一个评分卡中,一般不超过15个维度。可根据Logistic Regression模型系数来确定每个变量的权重,保留权重高的变量。通过协方差计算的相关性大于0.7的变量一般只保留IV值最高的那一个。

引用
《信用风险评分卡研究》Mamdouh Refaat著
《互联网金融时代消费信贷评分建模与应用》单良著
手把手教你用R语言建立信用评分模型
《统计学习方法》李航著