转载:评分卡模型剖析之一(woe、IV、ROC、信息熵)
在开发信用评分卡模型时,连续变量的离散化是特征工程的重要步骤之一,主要是将连续变量转换为离散变量,同时根据不同分段对目标变量的影响力作数值转换。
在将连续变量离散化的过程中,如果仅仅按照分段的顺序赋予新的数值,则无法确定新数值的具体值,合理的方法是按照不同分段对目标变量的影响赋值。
WOE公式如下:
w
o
e
i
=
l
n
(
p
y
1
p
y
0
)
=
l
n
(
B
i
/
B
T
G
i
/
G
T
)
woe_{i}=ln({\frac{p_{y_{1}}}{p_{y_{0}}}})=ln(\frac{B_{i}/B_{T}}{G_{i}/G_{T}})
woei=ln(py0py1)=ln(Gi/GTBi/BT)
Age | Bad | Good | WOE |
---|---|---|---|
0-10 | 50 | 200 | l n ( 50 / 100 200 / 1000 ) = l n ( 50 / 200 100 / 1000 ) ln({\frac{50/100}{200/1000}})=ln({\frac{50/200}{100/1000})} ln(200/100050/100)=ln(100/100050/200) |
10-18 | 20 | 200 | l n ( 20 / 100 200 / 1000 ) = l n ( 20 / 200 100 / 1000 ) ln({\frac{20/100}{200/1000}})=ln({\frac{20/200}{100/1000})} ln(200/100020/100)=ln(100/100020/200) |
18-35 | 5 | 200 | l n ( 5 / 100 200 / 1000 ) = l n ( 5 / 200 100 / 1000 ) ln({\frac{5/100}{200/1000}})=ln({\frac{5/200}{100/1000})} ln(200/10005/100)=ln(100/10005/200) |
35-50 | 15 | 200 | l n ( 15 / 100 200 / 1000 ) = l n ( 15 / 200 100 / 1000 ) ln({\frac{15/100}{200/1000}})=ln({\frac{15/200}{100/1000})} ln(200/100015/100)=ln(100/100015/200) |
50以上 | 10 | 200 | l n ( 10 / 100 200 / 1000 ) = l n ( 10 / 200 100 / 1000 ) ln({\frac{10/100}{200/1000}})=ln({\frac{10/200}{100/1000})} ln(200/100010/100)=ln(100/100010/200) |
汇总 | 100 | 1000 |
以age为例,由于年龄是连续自变量,需要对其进行离散化处理,假设离散化为5组,Bad和Good表示在这五组中违约用户和正常用户的数量分布,最后一列为woe值的计算方法,通过计算公式可以看出,woe反应了自变量每个分组下违约用户对正常用户占比和总体中违约用户对正常用户占比之间的差异,从而可以直观的认为woe蕴含了自变量取值对于目标变量(违约概率)的影响。再加上woe计算形式与逻辑回归中目标变量的logistic变换(
l
o
g
i
s
t
p
=
l
n
(
p
1
−
p
)
logist_{p}=ln({\frac{p}{1-p}})
logistp=ln(1−pp))相似,因而可以将自变量woe值代替原先自变量值。
IV值计算公式如下:
I
V
i
=
(
B
i
B
T
−
G
i
G
T
)
∗
l
n
(
B
i
/
B
T
G
i
/
G
T
)
IV_{i}=(\frac{B_{i}}{B_{T}}-\frac{G_{i}}{G_{T}})*ln(\frac{B_{i}/B_{T}}{G_{i}/G_{T}})
IVi=(BTBi−GTGi)∗ln(Gi/GTBi/BT)
IV值是衡量某一个自变量的信息量,相当于自变量woe值的加权求和,其值大小决定了自变量对于目标变量的影响程度;另外IV值的计算公式与信息熵的计算公式非常相似。
举例说明
value | N | n1 | n0 | p1 | p0 | cump1 | cump0 | woe | iv |
---|---|---|---|---|---|---|---|---|---|
A12 | 269 | 105 | 164 | 0.35 | 0.2342857 | 0.35 | 0.2342857 | 0.4013918 | 0.046446 |
A11 | 274 | 135 | 139 | 0.45 | 0.1985714 | 0.8 | 0.4328571 | 0.8180987 | 0.205693 |
A14 | 394 | 46 | 348 | 0.153333 | 0.4971429 | 0.95333 | 0.93 | -1.1762632 | 0.404410 |
A13 | 63 | 14 | 49 | 0.0466667 | 0.07 | 1.0 | 1.0 | -0.4054651 | 0.009460 |
sum | 1000 | 300 | 700 | 1.0 | 1.0 | 2.0 | 2.0 | 0.0 | 0.666011 |
数据来自著名的German credit dataset,取了其中一个自变量说明问题。第一列是自变量的取值,N表示对应每个取值的样本数,n1和n0分别表示违约样本与正常样本数,p1和p0分表表示违约样本和正常样本各自占总体的比例,cump1和cump0分别表示了p1和p0的累计值,woe是对应自变量每个取值的woe( l n ( p 1 p 0 ) ln(\frac{p1}{p0}) ln(p0p1)),iv是 w o e ∗ ( p 1 − p 0 ) woe*(p1-p0) woe∗(p1−p0)。对iv求和就得到该变量的IV值。