4. 监控指标体系
在金融模型上线之后,真正决定告警是否可信的,不是“有没有监控”,而是“用什么指标监控、指标是否匹配当前的数据形态”。同一个模型,用 PSI 可能风平浪静,用 KS 却已经报警;用 KL 散度可能数值爆炸,用 JS 散度却稳定可读。本章聚焦五类常用漂移度量指标,讲清它们的数学直觉、适用边界和落地选择逻辑。
一、核心原理:五类指标在度量什么
漂移度量的本质,是比较两个分布或两个样本集合的差异。差异可以来自概率密度、累积分布、分箱占比或离散类别频次,不同指标正是从不同“投影面”去观察同一件事。
- PSI(群体稳定性指数):把连续变量分箱后,比较基准期与监控期各箱占比的加权差异。它衡量的是“分箱结构是否稳定”,对分箱方式和箱数敏感,适合风控评分、额度、利率等业务分箱场景。
- KL 散度:衡量用监控分布去近似基准分布时损失的信息量,公式为 Σ p·ln(p/q)。它不对称,且当 q 中某处为 0 而 p 不为 0 时会趋于无穷,因此对零概率和稀疏分箱非常敏感。
- JS 散度:KL 的对称化与有界化版本,先取两个分布的均值 M,再计算 0.5·KL(P‖M)+0.5·KL(Q‖M),取值落在 [0, ln2] 或 [0,1](取决于底数),数值稳定,适合需要跨模型、跨时间对比的场景。
- KS 统计量:比较两个累积分布函数的最大垂直距离,直接回答“在哪个阈值点上,两个样本的累计占比差异最大”。它对分布整体平移和形状变化都敏感,常用于评分卡和风险排序模型。
- 卡方检验:针对离散类别或分箱后的频次表,检验观测频次与期望频次是否独立。它输出统计量和 p 值,适合类别型特征、审批结果、产品类型等离散变量的漂移判断。
选择指标的第一原则:先看变量类型(连续/离散),再看业务关注点(排序能力、分箱占比、概率密度),最后看数值稳定性要求。没有“最好”的指标,只有“最匹配”的指标。
二、方法流程:从数据到告警的标准化链路
指标本身只是计算函数,真正落地需要一条可复现的流程。建议按以下步骤执行:
- 确定基准期与监控期:基准期通常取模型训练期或上线后稳定期,监控期按日、周或月滚动。基准期样本量建议不少于 5000,否则分箱占比波动会淹没真实漂移。
- 变量分类与预处理:连续变量做等频或等距分箱,离散变量做类别归并;缺失值单独成箱,避免被均值填充掩盖漂移。
- 并行计算多指标:同一变量同时计算 PSI、KS、JS,离散变量补充卡方。不要只依赖单一指标下结论。
- 设定阈值与分级:PSI 常用 0.1/0.25 作为轻度和重度阈值;KS 可用 0.05/0.1;JS 可用 0.01/0.05;卡方以 p 值小于 0.05 且统计量显著为触发条件。
- 归因与告警:定位到具体变量、具体分箱,结合业务事件(政策调整、客群变化、渠道迁移)判断是真实漂移还是数据管道问题。
# 以 PSI 为例的监控配置片段
monitor:
variable: credit_score
baseline: 2024-01-01 ~ 2024-03-31
window: 2024-06-01 ~ 2024-06-30
bins: 10
metrics: [psi, ks, js]
thresholds:
psi_warn: 0.10
psi_alert: 0.25
ks_warn: 0.05
js_warn: 0.01
missing_as_bin: true
三、案例/场景:同一变量,不同指标的告警差异
某消费金融评分模型监控 credit_score 变量。基准期与监控期的分箱占比如下表所示(简化示意):
| 分箱 | 基准期占比 | 监控期占比 | PSI 贡献 | 说明 |
|---|---|---|---|---|
| [300, 500) | 8% | 14% | 0.052 | 低分客群明显增加 |
| [500, 600) | 22% | 24% | 0.003 | 基本稳定 |
| [600, 700) | 35% | 30% | 0.008 | 轻微下降 |
| [700, 800) | 25% | 20% | 0.011 | 中高分减少 |
| [800, 900] | 10% | 12% | 0.004 | 高分略增 |
该变量 PSI 合计约 0.078,未触发 0.1 的预警线;但 KS 统计量达到 0.09,已超过 0.05 的观察阈值,说明累积分布在中低分段出现了明显偏移。若只看 PSI,会漏掉这次客群下沉;若只看 KS,又无法定位到具体分箱。两者结合,才能既发现“有漂移”,又回答“漂移在哪”。
实战建议:PSI 负责“分箱结构稳定性”的粗筛,KS 负责“排序分布偏移”的细查,JS 负责“跨模型可比”的横向对比,卡方负责“离散类别”的显著性检验。四者组合,覆盖连续与离散、整体与局部。
四、误区/复盘:指标使用中的常见陷阱
- 误区一:分箱数越多越敏感。分箱过多会让每个箱样本量过小,PSI 和卡方统计量剧烈波动,产生大量假告警。建议每箱样本占比不低于 5%,总箱数控制在 5~20。
- 误区二:KL 散度直接用于生产告警。KL 不对称且可能无穷大,监控期出现基准期没有的类别时直接爆表。生产环境优先用 JS 散度替代。
- 误区三:忽略样本量对卡方的影响。大样本下微小差异也会显著,p 值很小但业务影响可忽略。应同时看效应量(如 Cramér's V)和实际占比变化。
- 误区四:把数据管道故障当成模型漂移。字段映射错误、时区偏移、上游补数都会造成分布突变。告警后应先核对数据血缘和 ETL 日志,再判断是否触发模型重训。
- 误区五:阈值一刀切。不同变量、不同业务线对漂移的容忍度不同。核心评分变量应更严格,辅助变量可放宽,阈值需要按变量分级配置。
复盘要点:每次告警都应记录“指标值、触发阈值、归因结论、处置动作”四要素。长期积累后,才能反推哪些指标组合真正有效,避免监控体系沦为“狼来了”的噪音源。
把这张图当作选型速查表:连续变量先看 PSI 和 KS,需要跨模型对比时补 JS;离散变量优先卡方;KL 散度更适合作为研究或离线诊断工具,而非生产告警的第一道防线。指标选对了,告警才有意义;指标选错了,再灵敏的监控也只是在放大噪音。