中国统计网|Python实战:信用评分模型开发「Part 1」( 三 )


  • 等深分段(Equal frequency intervals):先确定分段数量 , 然后令每个分段中数据数量大致相等;
  • 最优分段(Optimal Binning):又叫监督离散化(supervised discretizaion) , 使用递归划分(Recursive Partitioning)将连续变量分为分段 , 背后是一种基于条件推断查找较佳分组的算法 。
  • 我们首先选择对连续变量进行最优分段 , 在连续变量的分布不满足最优分段的要求时 , 再考虑对连续变量进行等距分段 。 最优分箱的代码如下:
    针对我们将使用最优分段对于数据集中的RevolvingUtilizationOfUnsecuredLines、
    age、DebtRatio和MonthlyIncome进行分类 。
    RevolvingUtilizationOfUnsecuredLines分箱情况
    中国统计网|Python实战:信用评分模型开发「Part 1」
    本文插图
    age分箱情况
    DebtRatio分箱情况
    MonthlyIncome分箱情况
    针对不能最优分箱的变量 , 分箱如下:
    2.WOE
    WoE分析 ,是对指标分箱、计算各个档位的WoE值并观察WoE值随指标变化的趋势 。 其中WoE的数学定义是:
    woe=ln(goodattribute/badattribute)
    在进行分析时 , 我们需要对各指标从小到大排列 , 并计算出相应分档的WoE值 。
    • 其中正向指标越大 , WoE值越小;反向指标越大 , WoE值越大 。
    • 正向指标的WoE值负斜率越大 , 反响指标的正斜率越大 , 则说明指标区分能力好 。
    • WoE值趋近于直线 , 则意味指标判断能力较弱 。
    • 若正向指标和WoE正相关趋势、反向指标同WoE出现负相关趋势 , 则说明此指标不符合经济意义 , 则应当予以去除 。
    3.相关性分析和IV筛选
    接下来 , 我们会用经过清洗后的数据看一下变量间的相关性 。
    注意:这里的相关性分析只是初步的检查 , 进一步检查模型的VI(证据权重)作为变量筛选的依据 。相关性图我们通过Python里面的seaborn包 , 调用heatmap绘图函数进行绘制 , 实现代码如下:
    中国统计网|Python实战:信用评分模型开发「Part 1」
    本文插图
    数据集各变量的相关性
    由上图可以看出 , 各变量之间的相关性是非常小的 。 NumberOfOpenCreditLinesAndLoans和NumberRealEstateLoansOrLines的相关性系数为0.43 。
    接下来 , 我进一步计算每个变量的Infomation Value(IV) 。 IV指标是一般用来确定自变量的预测能力 。 其公式为:
    • IV=sum((goodattribute-badattribute)*ln(goodattribute/badattribute))
    通过IV值判断变量预测能力的标准是:
    • < 0.02: unpredictive
    • 0.02 to 0.1: weak
    • 0.1 to 0.3: medium
    • 0.3 to 0.5: strong
    • > 0.5: suspicious
    IV的实现放在mono_bin函数里面 , 代码实现如下:
    输出图像:
    中国统计网|Python实战:信用评分模型开发「Part 1」
    本文插图
    输出的各变量IV图
    可以看出 , 以下几个变量:
    • DebtRatio
    • MonthlyIncome
    • NumberOfOpenCreditLinesAndLoans
    • NumberRealEstateLoansOrLines
    • NumberOfDependents
    变量的IV值明显较低 , 所以予以删除 。


    推荐阅读