3、探索性数据分析(EDA):单变量分析、双变量分析、相关性矩阵、IV值与WoE编码

好,咱们进入建模流程中最关键的一步——探索性数据分析,简称EDA。

说实话,很多新手一上来就急着调模型,结果跑出来的效果惨不忍睹。我个人的习惯是,拿到数据后先花至少一半的时间做EDA。为什么?因为数据不会骗人,但模型会。你只有把数据摸透了,后面的建模才能顺风顺水。

3.1 单变量分析:先看看每个变量长什么样

单变量分析,说白了就是单独看每一个特征。我一般会从两个维度入手:

  • 连续型变量:看均值、中位数、标准差、最大值、最小值。特别关注缺失值和异常值。
  • 分类型变量:看每个类别的频数、占比。重点关注类别是否过于稀疏。

举个例子,我在做信贷评分卡时,遇到过「年龄」这个变量。一看分布,发现有不少人填了「0」或「200」。这明显是异常值,需要处理。

核心要点:单变量分析帮你快速发现数据质量问题。缺失值、异常值、类别不平衡,这些问题越早发现越好。

3.2 双变量分析:变量和目标的关系

单变量看完了,接下来要看每个变量和目标变量(违约/非违约)之间的关系。这才是真正有意思的部分。

我常用的方法:

  • 连续变量 vs 目标:画箱线图或分箱后的违约率折线图。好的变量,违约率应该呈现单调趋势。
  • 分类变量 vs 目标:计算每个类别下的违约率。如果某个类别的违约率明显偏高或偏低,说明这个变量有区分能力。

嗯,这里要注意:双变量分析不是让你找因果关系,而是找相关性。我曾经见过有人把「下雨天带伞」和「下雨」当成因果关系,这就不对了。

个人经验:我习惯在双变量分析时,把结果做成一张「变量表现速览表」。哪个变量单调性好,哪个变量区分度高,一目了然。

3.3 相关性矩阵:别让变量互相打架

相关性矩阵,说白了就是看变量之间有没有「互相抄袭」。如果两个变量高度相关(比如相关系数大于0.7),那它们提供的信息就重复了。

我一般用热力图来展示相关性矩阵。颜色越深,相关性越强。你想想看,如果「收入」和「负债」相关系数高达0.9,那建模时只保留一个就够了。

为什么会这样?因为多重共线性会让模型不稳定,系数估计不准确。我在一个项目中就吃过这个亏,当时没做相关性分析,结果模型上线后一遇到新数据就崩。

避坑指南:我曾经因为没做相关性分析,导致模型在验证集上表现极差。后来发现「月收入」和「年收入」两个变量高度相关,删掉一个后模型立马稳定了。

3.4 IV值与WoE编码:量化变量的预测能力

这部分是风控建模的核心。IV(Information Value)和WoE(Weight of Evidence)是专门用来评估变量对违约预测能力的工具。

3.4.1 WoE编码

WoE编码,说白了就是把分类变量转换成数值,同时保留其与目标变量的关系。公式如下:

WoE = ln( (违约样本占比) / (非违约样本占比) )

举个例子,假设「婚姻状况」这个变量:

婚姻状况 违约人数 非违约人数 违约占比 非违约占比 WoE
已婚 100 900 0.10 0.45 -1.50
未婚 300 500 0.30 0.25 0.18
离异 600 600 0.60 0.30 0.69

你看,WoE值越大,说明该类别违约风险越高。我习惯用WoE编码后的变量直接建模,效果往往比原始变量好。

3.4.2 IV值

IV值是对WoE的汇总,用来衡量一个变量整体的预测能力。公式:

IV = Σ ( (违约占比 - 非违约占比) * WoE )

IV值的判断标准:

  • IV < 0.02:无预测能力,建议删除
  • 0.02 ≤ IV < 0.1:弱预测能力
  • 0.1 ≤ IV < 0.3:中等预测能力
  • IV ≥ 0.3:强预测能力

核心要点:IV值帮你快速筛选变量。我一般只保留IV大于0.02的变量,低于这个值的直接扔掉,省时省力。

3.5 知识体系结构图

下面这张图,是我自己总结的EDA核心逻辑。你一看就明白:

探索性数据分析 (EDA) 单变量分析 双变量分析 相关性矩阵 IV值与WoE编码 缺失值/异常值 分布/统计量 违约率趋势 箱线图/折线图 多重共线性 热力图 变量筛选 编码转换

这张图把EDA的四个核心模块串起来了。你从单变量开始,逐步深入到双变量、相关性,最后用IV和WoE做变量筛选。每一步都有明确的目的和输出。

我的建议:做EDA时,别急着写代码。先拿纸笔把变量列出来,想清楚每个变量可能存在的问题,再动手。这样效率最高。

好了,EDA这部分就讲到这里。记住一句话:数据质量决定模型上限,EDA就是帮你守住这个上限的。

专注资料整理