3. PSI计算原理:实际分布与预期分布的对比、计算公式推导、分箱方法
PSI(Population Stability Index,群体稳定性指标)是衡量两个分布之间差异程度的量化工具。在额度定价风控中,它用于监控模型评分或关键特征在时间维度上的分布偏移。其核心思想是:将实际分布与预期分布进行逐箱对比,累加差异的标准化度量。
3.1 核心概念:实际分布 vs 预期分布
在PSI计算中,两个分布的定义如下:
| 分布类型 | 定义 | 在额度定价中的典型场景 |
|---|---|---|
| 预期分布(Expected) | 作为基准的参考分布,通常来自模型开发时的训练集或验证集 | 模型开发时(T0)的额度评分分布 |
| 实际分布(Actual) | 需要被监控的当前分布,通常来自最新的线上样本 | 当前月份(T1)的额度评分分布 |
PSI的本质是衡量“实际分布”相对于“预期分布”发生了多大程度的偏移。偏移越大,说明模型所处的环境或客群结构发生了显著变化,模型可能失效。
关键理解: PSI不是衡量模型预测准确率,而是衡量模型输入或输出的分布稳定性。一个高PSI值意味着模型在T1时刻面对的客群与T0时刻不同,需要重新校准或迭代。
3.2 计算公式推导
PSI的计算基于信息论中的KL散度(Kullback-Leibler divergence)的对称化形式。其标准计算公式如下:
PSI = Σ (Actual_i - Expected_i) * ln(Actual_i / Expected_i)
其中:
- i 表示第 i 个分箱(bin)
- Actual_i = 第 i 箱中实际样本占比(%)
- Expected_i = 第 i 箱中预期样本占比(%)
- ln 为自然对数
- Σ 表示对所有分箱求和
公式推导步骤:
- 分箱: 将评分或特征值域划分为 k 个互斥的区间(箱)。
- 计算占比: 分别统计预期分布和实际分布落在每个箱中的样本数量,并转换为百分比(占比)。
- 逐箱计算差异: 对每个箱,计算 (Actual_i - Expected_i) 与 ln(Actual_i / Expected_i) 的乘积。
- 求和: 将所有箱的乘积结果相加,得到最终的PSI值。
公式的直观理解:
- (Actual_i - Expected_i): 衡量两个分布在该箱上的“数量差异”。差异越大,贡献越大。
- ln(Actual_i / Expected_i): 衡量两个分布在该箱上的“比例差异”。比例差异越大,贡献越大。
- 两者相乘,既考虑了绝对差异,也考虑了相对差异,使得PSI对分布形状的变化非常敏感。
计算注意事项: 当 Expected_i 或 Actual_i 为 0 时,ln(0) 无定义。实际处理中,通常对占比进行平滑处理(如加一个小常数 0.0001),或将该箱与相邻箱合并,避免除零或取对数错误。
3.3 分箱方法详解
分箱是PSI计算的前置步骤,分箱方式直接影响PSI值的敏感度和稳定性。常用的分箱方法有三种:等频分箱、等距分箱和自定义分箱。
| 分箱方法 | 原理 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| 等频分箱 | 每个箱中包含大致相同数量的样本 | 对数据分布形状不敏感,能保证每个箱都有足够的样本量,避免空箱 | 箱的边界值不固定,可能将相似数值的样本分到不同箱 | 评分卡分数、概率预测值等连续变量 |
| 等距分箱 | 将值域等分为宽度相同的区间 | 边界值固定、直观、易于解释 | 在数据分布不均匀时,可能导致某些箱样本极少或为空,影响PSI计算稳定性 | 年龄、收入等具有明确数值意义的变量 |
| 自定义分箱 | 根据业务经验或模型逻辑手动设定箱边界 | 最灵活,可结合业务含义(如额度等级、风险等级)进行分箱 | 依赖专家经验,主观性强,不易自动化 | 业务规则明确的场景,如额度区间、信用等级 |
3.4 分箱方法对比与选择
以下通过一个具体示例,展示不同分箱方法对PSI计算结果的影响。假设预期分布和实际分布均为1000个样本,评分范围0-1000。
示例数据: 预期分布集中在300-700分,实际分布整体向低分段偏移(200-600分)。
# 等频分箱(5箱,每箱约200个样本)
箱1: 0-350分 预期占比20% 实际占比30%
箱2: 350-450分 预期占比20% 实际占比25%
箱3: 450-550分 预期占比20% 实际占比20%
箱4: 550-650分 预期占比20% 实际占比15%
箱5: 650-1000分 预期占比20% 实际占比10%
PSI = (0.3-0.2)*ln(0.3/0.2) + (0.25-0.2)*ln(0.25/0.2) + ... = 0.081
# 等距分箱(5箱,每箱200分)
箱1: 0-200分 预期占比5% 实际占比15%
箱2: 200-400分 预期占比25% 实际占比40%
箱3: 400-600分 预期占比40% 实际占比30%
箱4: 600-800分 预期占比25% 实际占比12%
箱5: 800-1000分 预期占比5% 实际占比3%
PSI = (0.15-0.05)*ln(0.15/0.05) + (0.4-0.25)*ln(0.4/0.25) + ... = 0.152
从示例可以看出,等距分箱由于箱边界固定,更能捕捉到分布整体偏移的细节,PSI值更高(0.152 > 0.081)。而等频分箱由于自适应调整边界,会“平滑”掉部分偏移信息。
选择建议:
- 监控模型评分稳定性: 优先使用等频分箱,保证每个监控周期内各箱样本量稳定,避免空箱导致的计算异常。
- 监控特征分布偏移: 优先使用等距分箱,能更敏感地捕捉到分布形状的变化。
- 业务规则明确: 使用自定义分箱,如按额度等级(低、中、高)或风险等级(A、B、C、D)分箱。
3.5 PSI计算流程与分箱策略
以下SVG图展示了PSI计算的完整流程,从数据输入到最终输出PSI值,并突出分箱环节的核心地位。
3.6 分箱数量与PSI稳定性
分箱数量(k值)的选择对PSI结果有显著影响。以下是不同分箱数量下的表现对比:
| 分箱数量 | 优点 | 缺点 | 推荐场景 |
|---|---|---|---|
| 5-10箱 | 计算稳定,对微小偏移不敏感,适合高频监控 | 可能掩盖局部偏移 | 日常监控、自动化告警 |
| 10-20箱 | 平衡了敏感度和稳定性,行业常用 | 需要保证样本量充足 | 月度/季度稳定性分析 |
| 20箱以上 | 对分布细节敏感,能捕捉局部偏移 | 易受噪声影响,空箱风险高 | 深度分析、模型诊断 |
实践建议: 在额度定价PSI监控中,建议使用10箱等频分箱作为默认配置。该配置在大多数场景下能兼顾敏感度和稳定性。如果监控发现PSI异常升高,再切换到20箱等距分箱进行深度诊断,定位偏移发生的具体区间。
3.7 分箱方法选择决策树
以下SVG图提供了一个分箱方法选择的决策路径,帮助在实际工作中快速做出选择。
3.8 分箱后的PSI计算示例
以下是一个完整的PSI计算示例,使用10箱等频分箱,展示从原始数据到最终PSI值的完整计算过程。
# 假设预期分布和实际分布各有10000个样本,评分范围0-1000
# 使用10箱等频分箱,每箱约1000个样本
箱号 | 预期占比(%) | 实际占比(%) | 差异(Actual-Expected) | ln(Actual/Expected) | 贡献值
1 | 10.0 | 12.5 | 2.5 | 0.2231 | 0.00558
2 | 10.0 | 11.8 | 1.8 | 0.1655 | 0.00298
3 | 10.0 | 11.2 | 1.2 | 0.1133 | 0.00136
4 | 10.0 | 10.5 | 0.5 | 0.0488 | 0.00024
5 | 10.0 | 10.0 | 0.0 | 0.0000 | 0.00000
6 | 10.0 | 9.5 | -0.5 | -0.0513 | 0.00026
7 | 10.0 | 8.8 | -1.2 | -0.1278 | 0.00153
8 | 10.0 | 8.2 | -1.8 | -0.1985 | 0.00357
9 | 10.0 | 7.5 | -2.5 | -0.2877 | 0.00719
10 | 10.0 | 7.0 | -3.0 | -0.3567 | 0.01070
PSI = 0.00558 + 0.00298 + 0.00136 + 0.00024 + 0.00000 + 0.00026 + 0.00153 + 0.00357 + 0.00719 + 0.01070 = 0.03341
PSI阈值参考:
- PSI < 0.1: 分布稳定,无需关注。
- 0.1 ≤ PSI < 0.25: 轻度偏移,需要关注并分析原因。
- PSI ≥ 0.25: 显著偏移,必须触发告警并启动模型复核流程。