4. PSI 漂移原因分析(上):数据源变更、特征采集逻辑变化、外部宏观环境变化导致的漂移
PSI(Population Stability Index)告警是风控模型监控中最常见的信号之一。当 PSI 超过阈值(通常为 0.1 或 0.25),意味着模型评分分布发生了显著偏移。然而,PSI 漂移本身只是一个“症状”,真正的病因往往隐藏在数据链路或业务环境中。本章将深入剖析三大核心诱因:数据源变更、特征采集逻辑变化以及外部宏观环境变化。
核心原则: 遇到 PSI 告警,不要急于调整模型参数。先排查数据源与特征逻辑,再评估外部环境。80% 的漂移问题源于数据链路,而非模型本身。
4.1 数据源变更导致的漂移
数据源是风控模型的“原材料”。当上游数据源发生变更时,即使模型逻辑不变,输入特征的分布也会随之改变,直接引发 PSI 漂移。
4.1.1 常见数据源变更场景
| 变更类型 | 具体场景 | 对特征分布的影响 |
|---|---|---|
| 供应商切换 | 从 A 征信机构切换到 B 征信机构 | 同一字段(如“逾期天数”)的统计口径、覆盖人群不同,导致特征值整体偏移 |
| 数据接口升级 | API 版本从 v1 升级到 v2,返回字段精度或格式变化 | 数值型特征可能因四舍五入规则改变而产生微小但累积的偏移 |
| 数据仓库迁移 | 从 Oracle 迁移到 Hadoop,ETL 脚本重写 | 空值处理逻辑、时间窗口计算方式差异导致特征分布突变 |
| 字段映射错误 | 新老系统字段 ID 对应关系配置错误 | 特征取值出现大量异常值或缺失值,PSI 瞬间飙升 |
4.1.2 排查数据源变更的步骤
- 查看变更日志: 确认 PSI 告警时间点前后,是否有上游数据源发布变更通知。
- 对比字段统计量: 对告警特征,分别计算“训练集/基准期”与“监控期”的均值、方差、缺失率、分位数。
- 交叉验证: 从原始日志中抽取少量样本,人工比对新老数据源在同一笔申请上的取值。
- 回滚测试: 如果条件允许,临时回滚到旧数据源,观察 PSI 是否恢复。
实战技巧: 建立“数据源血缘图谱”,记录每个特征的上游来源、版本号、更新时间。当 PSI 告警时,可以快速定位受影响的特征链路。
4.2 特征采集逻辑变化导致的漂移
即使数据源不变,特征采集层的代码逻辑变更也会改变特征分布。这类问题隐蔽性强,往往需要深入代码层面才能发现。
4.2.1 典型逻辑变更类型
- 时间窗口调整: 例如“近 30 天申请次数”从自然月改为滚动 30 天,导致统计值整体上升或下降。
- 缺失值填充策略变更: 从填充 0 改为填充均值,或从删除缺失行改为填充中位数。
- 异常值截断规则变更: 从 99% 分位数截断改为 95% 分位数截断,影响特征尾部分布。
- 特征衍生公式错误: 如“负债率 = 总负债 / 总收入”误写为“负债率 = 总收入 / 总负债”,导致特征值完全反转。
- 分组/分箱逻辑变更: 离散型特征的分箱边界调整,导致各箱体占比剧烈变化。
4.2.2 逻辑变更的排查方法
| 方法 | 操作 | 适用场景 |
|---|---|---|
| 代码 diff | 对比特征采集代码的 Git 提交记录 | 有版本管理的团队,快速定位变更行 |
| 特征值分布可视化 | 绘制基准期与监控期的直方图/KDE 图 | 观察分布形状是否发生结构性变化 |
| 分位数对比 | 列出 P5、P25、P50、P75、P95 的数值变化 | 发现尾部或中心位置的偏移 |
| 空值率监控 | 检查特征缺失率是否突然升高或降低 | 发现填充策略或字段映射问题 |
避坑提醒: 特征逻辑变更往往伴随“灰度发布”或“AB 测试”。如果只有部分流量受到影响,PSI 可能呈现“阶梯状”上升,而非一次性跳变。此时需要按流量分组计算 PSI。
4.3 外部宏观环境变化导致的漂移
当数据源和特征逻辑都未变更时,PSI 漂移可能源于外部宏观环境的变化。这类漂移是“真实”的分布偏移,反映了客群行为或市场环境的改变。
4.3.1 宏观环境变化类型
- 政策法规调整: 如网贷新规出台,导致部分客群退出市场,剩余客群资质分布变化。
- 经济周期波动: 经济下行期,整体收入下降,负债率特征分布右移。
- 季节性因素: 双十一、春节等消费旺季,申请量激增,客群结构临时变化。
- 突发事件: 疫情、自然灾害等导致特定行业客群集中违约或消失。
- 市场竞争变化: 竞品推出低息产品,优质客群流失,导致申请客群整体风险上升。
4.3.2 宏观环境漂移的识别与应对
| 识别方法 | 说明 | 应对策略 |
|---|---|---|
| 外部数据交叉验证 | 对比行业报告、宏观经济指标(如 CPI、失业率) | 确认漂移是否与宏观趋势一致 |
| 客群画像对比 | 分析漂移前后客群的年龄、地域、职业分布 | 判断是否发生了客群结构性变化 |
| 模型分层监控 | 按客群分层计算 PSI,定位漂移来源 | 针对特定客群进行模型校准或策略调整 |
| 压力测试 | 模拟极端宏观场景下的 PSI 变化 | 提前制定应急预案 |
关键认知: 宏观环境导致的 PSI 漂移是“不可逆”的,模型需要重新训练或校准。而数据源和逻辑变更导致的漂移是“可修复”的,只需回滚或修正代码即可。
4.4 三类漂移原因对比总结
为了帮助快速诊断,下表总结了三大类漂移原因的核心特征与排查优先级。
| 维度 | 数据源变更 | 特征采集逻辑变化 | 外部宏观环境变化 |
|---|---|---|---|
| 排查优先级 | 最高(最常见) | 高(隐蔽性强) | 中(需结合业务判断) |
| 漂移特征 | 多个相关特征同时漂移 | 单个或少数特征突变 | 全特征系统性偏移 |
| 时间模式 | 跳变式,与变更时间点吻合 | 跳变或阶梯式 | 渐进式或周期性 |
| 修复方式 | 回滚数据源或修正映射 | 回滚代码或修复逻辑 | 模型重训或策略调整 |
| 是否需要模型更新 | 通常不需要 | 通常不需要 | 通常需要 |
4.5 漂移原因分析流程图
以下流程图展示了 PSI 告警后的标准排查路径,帮助从“数据源 → 特征逻辑 → 宏观环境”逐层定位根因。
4.6 案例:一次由数据源切换引发的 PSI 漂移
背景: 某消费金融公司风控模型在 2024 年 3 月 15 日触发 PSI 告警,PSI 值从 0.03 飙升至 0.28。
排查过程:
- 查看变更日志:发现 3 月 14 日上游征信数据源从“XX 征信 v2.1”切换为“YY 征信 v1.0”。
- 对比字段统计量:特征“近 6 个月逾期次数”在基准期均值为 1.2,监控期均值为 0.8;缺失率从 5% 升至 18%。
- 交叉验证:抽取 100 笔样本,发现 YY 征信对部分小额逾期记录未上报,导致逾期次数偏低。
- 处理:回滚至原数据源,PSI 在 24 小时内恢复至 0.04。
经验总结: 数据源切换前必须进行“分布对齐测试”,计算新老数据源在同一批样本上的特征分布差异。若 PSI > 0.1,则需评估是否可接受,或进行特征映射校准。