逻辑回归评分卡细节阐述
先上一张评分卡

一、评分卡逻辑
信贷业务评估的是客户的客户违约率(Percent of Default)即PD,是[0,1]的概率,比如2%即100个客户中有2个违约,简称为p。
评分卡中不直接用客户违约率p,而是用违约概率与正常概率的比值,称为Odds,即

、

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

因此评分卡的生成过程,就是Odds变动映射成评分变动的过程。
二、评分映射公式
Odds映射为评分的公式为:

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

备注:经过作者检验,上图公式有误,应为PO-PDO=A-B*log(2*Theta0),违约率上升一倍后,模型分应该减少,因此是PO-PDO
<2> 求解A、B

<3> 完整的对应关系表
按照公式,可以把所有Odds(

)和客户评分、客户违约概率(PD)的对应关系算出来

该关系对应表应该算信用评分卡的核心思想了,评分是外层表现,客户违约率是内层核心,Odds是中间层转换计算
三、Odds映射X变量
那问题来了,现在能算Score了,但输入是Odds。但数据的输入是特征变量[

],这里怎么对应呢?这就要说到逻辑回归本身了,先放结论:

怎么来的,以下详细讲。
<1> Sigmoid
逻辑回归来源于线性回归(二维空间中就是一条直线拟合所有样本点),虽然线性回归是回归算法,逻辑回归是分类算法,但从算法表达式上,逻辑回归就是在线性回归算法外面套了一层壳。
线性回归:


逻辑回归:


可以看到,从表达式上看,逻辑回归只是在线性回归的表达式外面套了一层

的壳。为什么要套这层壳,因为线性回归的值域为实数集R,但逻辑回归是二分类算法,需要输出的是类别1和类别2的概率,而概率是个[0, 1]之间的数。因此需要将线性回归的输出实数变成[0, 1]之间的概率,而能满足输入是实数而输出是[0, 1]的,就是Sigmoid函数,它的图形是个类S(见上面逻辑回归图)的限定在[0, 1]之间的函数。因此将Sigmoid函数套在线性回归外面,构成逻辑回归,拥有处理非线性的能力,可以做分类。
<2> 变换公式形式

四、X变量细分到分组
好,回到主线,

,将score公式中的输入p变成输入特征变量X。到这里按理就可以结束了,有X就可以产出客户的Score,即:

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


五、生成评分卡
将上面的公式变下形式,变成最终可以组成评分卡的样式,即:




嗯,至此评分卡就可以生成了。
参考:https://github.com/xsj0609/data_science/tree/master/ScoreCard
