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时,别急着写代码。先拿纸笔把变量列出来,想清楚每个变量可能存在的问题,再动手。这样效率最高。
好了,EDA这部分就讲到这里。记住一句话:数据质量决定模型上限,EDA就是帮你守住这个上限的。