4. PSI漂移根因分析流程
当PSI告警触发后,不能直接进入模型迭代或回退操作。必须按照标准化的根因分析流程,逐层定位漂移来源,判断是数据质量问题、特征分布变化、业务策略调整还是外部环境变化所致。本节将流程拆解为五个核心步骤。
4.1 流程总览
PSI漂移根因分析采用“漏斗式”排查策略:从告警信号出发,先排除数据层异常,再聚焦特征层,最后落到业务层和影响评估。每一步都设置明确的判定标准和输出物。
核心原则: 先校验数据质量,再分析特征分布;先定位漂移特征,再追溯业务原因;先评估影响范围,再决定处置策略。
4.2 步骤一:告警接收与分级
PSI告警并非所有都需要立即响应。根据漂移严重程度和影响范围,将告警分为三个等级,不同等级对应不同的响应时效和处理流程。
| 告警等级 | PSI阈值范围 | 响应时效 | 处理要求 |
|---|---|---|---|
| L1 严重 | PSI > 0.25 | 2小时内 | 立即暂停模型决策,启动紧急排查 |
| L2 中等 | 0.15 < PSI ≤ 0.25 | 24小时内 | 启动根因分析,输出影响评估报告 |
| L3 关注 | 0.10 < PSI ≤ 0.15 | 72小时内 | 纳入监控周报,持续观察趋势 |
实操建议: 告警接收环节应自动附带告警上下文信息:触发时间、PSI值、对比窗口(T vs T-1/T-4/T-12)、涉及模型版本、数据源批次号。这些信息能大幅缩短后续排查时间。
4.3 步骤二:数据校验
数据校验是根因分析的第一道过滤网。大量PSI告警的根因并非真实分布漂移,而是数据管道异常。校验内容覆盖三个维度:
- 数据完整性: 检查特征缺失率是否突增、记录数是否骤降、关键字段是否为空。
- 数据口径一致性: 确认特征计算逻辑、衍生规则、编码映射是否在对比窗口内发生过变更。
- 数据时效性: 验证当前批次数据是否包含完整的时间窗口,是否存在数据延迟或截断。
常见陷阱: 特征缺失率从1%上升到5%时,PSI可能被推高0.05~0.10。此时应先修复缺失值处理逻辑,而非直接归因于客群变化。数据校验环节能避免至少30%的无效告警。
4.4 步骤三:特征级PSI分解
通过数据校验后,进入特征级PSI分解。这一步的目标是找出导致整体PSI漂移的主导特征。常用的分解方法有两种:
4.4.1 单特征PSI贡献度
计算每个特征在整体PSI中的贡献占比,按贡献度从高到低排序。通常前3个特征的累计贡献度会超过80%。
| 特征名称 | 单特征PSI | 贡献占比 | 累计贡献 | 漂移方向 |
|---|---|---|---|---|
| 收入等级 | 0.082 | 41.0% | 41.0% | 低收入组占比上升 |
| 负债率 | 0.056 | 28.0% | 69.0% | 高负债组占比上升 |
| 查询次数 | 0.034 | 17.0% | 86.0% | 高频查询组占比上升 |
| 其他特征 | 0.028 | 14.0% | 100.0% | — |
4.4.2 组合特征交互分析
当单特征PSI贡献度分散、无明显主导特征时,需要检查特征之间的交互效应。例如:收入等级和负债率单独看PSI不高,但两者联合分布出现明显偏移。
# 组合特征PSI计算示例(Python伪代码)
def compute_joint_psi(df_ref, df_cur, features, bins=10):
# 对两个特征进行联合分箱
df_ref['joint_bin'] = pd.cut(df_ref[features[0]], bins=bins).astype(str) + '_' + \
pd.cut(df_ref[features[1]], bins=bins).astype(str)
df_cur['joint_bin'] = pd.cut(df_cur[features[0]], bins=bins).astype(str) + '_' + \
pd.cut(df_cur[features[1]], bins=bins).astype(str)
# 计算联合分布PSI
ref_dist = df_ref['joint_bin'].value_counts(normalize=True).sort_index()
cur_dist = df_cur['joint_bin'].value_counts(normalize=True).sort_index()
psi = 0
for bin_label in ref_dist.index:
p = ref_dist[bin_label]
q = cur_dist.get(bin_label, 0.0001)
psi += (p - q) * np.log(p / q)
return psi
4.5 步骤四:业务归因
特征级PSI分解定位到具体特征后,需要与业务团队协作,追溯特征分布变化的业务原因。常见的业务归因方向包括:
- 客群结构变化: 渠道投放策略调整、获客地域偏移、季节性客群波动。
- 产品策略调整: 额度审批规则变更、利率定价策略调整、产品准入标准放宽/收紧。
- 外部环境变化: 监管政策出台、宏观经济波动、行业竞争格局变化。
- 数据源变更: 第三方数据供应商切换、数据采集字段调整、数据清洗逻辑更新。
归因验证方法: 对每个候选业务原因,构造“反事实分布”——假设该业务变更未发生,特征分布应是什么样。将反事实分布与实际分布对比,若PSI显著下降,则确认该原因为主导因素。
4.6 步骤五:影响评估
根因分析的最后一步是评估漂移对模型实际业务效果的影响。不能仅凭PSI值判断模型是否需要迭代,必须结合模型性能指标和业务指标综合决策。
| 评估维度 | 核心指标 | 判定标准 | 处置建议 |
|---|---|---|---|
| 区分能力 | AUC / KS | 下降超过0.03 | 启动模型迭代 |
| 校准度 | 校准曲线 / Brier Score | 校准偏差超过5% | 调整模型阈值 |
| 业务通过率 | 审批通过率 / 授信通过率 | 波动超过10% | 评估策略影响 |
| 坏账率 | 逾期率 / 不良率 | 上升超过20% | 紧急干预 |
影响评估报告输出: 每次根因分析完成后,应输出标准化的《PSI漂移根因分析报告》,包含:告警基本信息、数据校验结果、特征级PSI分解表、业务归因结论、影响评估矩阵、处置建议。报告存档作为模型监控历史记录,用于后续趋势分析和模型迭代参考。