2. PSI基础概念:群体稳定性指标的定义、数学公式与直观理解
群体稳定性指标(Population Stability Index,PSI)是风控与机器学习模型监控中最常用的分布漂移度量工具。它量化了同一特征或模型评分在预期分布(开发集/基准集)与实际分布(监控集/当前集)之间的整体偏移程度。PSI值越大,说明两个群体的分布差异越显著,模型失效或数据质量恶化的风险越高。
2.1 数学定义与计算公式
PSI的计算基于分箱(Binning)思想:将连续变量或概率值划分为K个等距或等频区间,然后比较每个区间内样本占比的变化。标准公式如下:
PSI = Σ (Actual_i - Expected_i) × ln(Actual_i / Expected_i)
其中:
- Expected_i = 基准集(如训练集)落在第 i 个分箱的样本比例
- Actual_i = 监控集(如当前月份)落在第 i 个分箱的样本比例
- K = 总分箱数(通常取 10 或 20)
- ln = 自然对数
当某个分箱的 Expected_i 或 Actual_i 为 0 时,工程上通常做微小平滑处理(如加 0.0001)以避免除零或对数无穷大。
2.2 分箱方式对比
| 分箱方式 | 做法 | 适用场景 | 注意事项 |
|---|---|---|---|
| 等距分箱 | 按数值范围均分为 K 段 | 评分卡分数、概率值等有明确上下界的变量 | 边界处样本可能稀疏,导致 PSI 波动大 |
| 等频分箱 | 按基准集分位数切分,每箱样本数大致相等 | 长尾分布、无界变量、特征分布严重偏态 | 监控集落在同一分箱的样本数可能变化很大 |
| 自定义分箱 | 根据业务含义或风险等级手动设定断点 | 信用评分卡、利率区间、年龄分段 | 需定期验证断点是否仍符合业务逻辑 |
工程建议:在模型监控中,推荐优先使用等频分箱(10箱)。等频分箱对分布形态的鲁棒性更好,且能避免因个别极端值导致 PSI 虚高。若特征为概率输出(0~1),等距分箱(20箱)能更精细地捕捉尾部漂移。
2.3 PSI 的直观理解:从信息论到分布差异
PSI 的数学形式与KL散度(Kullback-Leibler divergence)密切相关。实际上,PSI 是基准分布 P 与监控分布 Q 之间 KL 散度的对称化变体:
PSI = KL(P||Q) + KL(Q||P) (近似对称形式)
这意味着 PSI 同时衡量了“从基准看监控的差异”和“从监控看基准的差异”,因此它是一个对称且非负的指标。当两个分布完全一致时,PSI = 0;差异越大,PSI 值越高。
关键理解:PSI 不是简单的比例差之和,而是用对数放大了小比例区间的变化。一个分箱从 5% 降到 1%(变化 4 个百分点)对 PSI 的贡献,远大于从 50% 降到 46%(同样变化 4 个百分点)。这使 PSI 对尾部漂移非常敏感。
2.4 PSI 漂移程度判定标准
业界通用的 PSI 阈值与对应行动建议如下:
| PSI 范围 | 漂移程度 | 建议行动 |
|---|---|---|
| PSI < 0.1 | 无显著漂移 | 无需干预,继续常规监控 |
| 0.1 ≤ PSI < 0.25 | 轻度漂移 | 发出预警,排查特征来源或业务策略变化 |
| PSI ≥ 0.25 | 严重漂移 | 立即停止模型决策,启动模型重训或特征重构 |
注意:上述阈值是经验值,实际应用中应根据业务容忍度调整。例如,在信贷审批场景中,PSI > 0.2 就可能触发人工审核;而在推荐系统场景中,PSI 可放宽至 0.3。切勿机械套用阈值,需结合 IC(信息值)和业务指标综合判断。
2.5 PSI 计算流程与可视化
下图展示了从原始数据到 PSI 值的完整计算链路:
2.6 PSI 与 KL 散度的关系
下表总结了 PSI 与 KL 散度的核心区别,帮助理解 PSI 的数学本质:
| 属性 | KL 散度 KL(P||Q) | PSI |
|---|---|---|
| 对称性 | 非对称(KL(P||Q) ≠ KL(Q||P)) | 近似对称(PSI ≈ KL(P||Q) + KL(Q||P)) |
| 取值范围 | [0, +∞) | [0, +∞) |
| 对尾部敏感度 | 高(对数项放大低概率区域) | 高(继承 KL 散度特性) |
| 工程易用性 | 需指定参考分布方向 | 无需指定方向,直接比较两个分布 |
| 业界接受度 | 学术研究常用 | 工业风控监控标准指标 |
2.7 一个直观的数值例子
假设某评分卡模型将客户分为“好/坏”两档,基准集与监控集的分布如下:
| 分箱(评分区间) | 基准集占比 Expected_i | 监控集占比 Actual_i | 差值 (A - E) | ln(A/E) | 单项贡献 |
|---|---|---|---|---|---|
| 0–20(高风险) | 10% | 5% | -5% | -0.693 | 0.0347 |
| 20–40 | 20% | 15% | -5% | -0.288 | 0.0144 |
| 40–60 | 40% | 45% | +5% | 0.118 | 0.0059 |
| 60–80 | 20% | 25% | +5% | 0.223 | 0.0112 |
| 80–100(低风险) | 10% | 10% | 0% | 0.000 | 0.0000 |
计算得到 PSI = 0.0347 + 0.0144 + 0.0059 + 0.0112 + 0.0000 = 0.0662。该值小于 0.1,说明监控集与基准集之间无显著漂移,模型可继续使用。
观察要点:高风险区间(0–20)虽然占比绝对值只下降了 5%,但由于 ln(0.05/0.10) = -0.693 的放大作用,其单项贡献(0.0347)远高于其他区间。这体现了 PSI 对尾部风险变化的高度敏感性——即使少量客户从高风险区间流失,也会被 PSI 明显捕捉。