4. PSI 手动计算实战(一):使用 Excel 进行单特征 PSI 计算
本章将带领你使用 Excel 完成一次完整的单特征 PSI 计算。通过手动分箱、计算占比和最终 PSI 值,你将深入理解 PSI 的每一个计算环节,为后续自动化实现打下坚实基础。
4.1 实战背景与数据集
假设我们监控一个信贷评分模型中的关键特征 “收入等级”(分为 A、B、C、D 四个等级)。我们收集了模型开发时的预期分布(训练集)和当前生产环境中的实际分布(近期样本)。
| 收入等级 | 预期样本数(训练集) | 实际样本数(近期) |
|---|---|---|
| A | 3000 | 2500 |
| B | 4000 | 4200 |
| C | 2000 | 1800 |
| D | 1000 | 1500 |
| 合计 | 10000 | 10000 |
数据准备提示: 在实际工作中,预期分布通常来自模型训练集或验证集,实际分布来自最近一个时间窗口(如最近一周或一个月)的生产数据。确保两个数据集的总样本量一致或使用占比计算,是 PSI 计算的前提。
4.2 第一步:分箱(Binning)
PSI 计算要求将特征划分为若干个互斥的箱(Bin)。对于类别型特征,每个类别天然就是一个箱。对于连续型特征,需要先进行等距分箱、等频分箱或基于业务阈值的分箱。
在本例中,“收入等级”已经是离散类别,因此我们直接使用 A、B、C、D 四个等级作为分箱结果。如果特征值出现预期分布中不存在的类别,需要将其归入“其他”箱,以保证分箱结构一致。
分箱核心原则:
- 预期分布和实际分布必须使用完全相同的分箱边界。
- 每个箱的预期占比应至少大于 1%,避免分母过小导致 PSI 不稳定。
- 连续型特征建议分箱数量在 5~20 之间。
4.3 第二步:计算实际占比与预期占比
在 Excel 中,我们为每个箱计算两个关键指标:
- 预期占比(P_i): 该箱预期样本数 / 总预期样本数
- 实际占比(A_i): 该箱实际样本数 / 总实际样本数
在 Excel 中,假设数据从第 2 行开始,B 列为预期样本数,C 列为实际样本数,则公式如下:
// 预期占比(D2 单元格)
= B2 / SUM($B$2:$B$5)
// 实际占比(E2 单元格)
= C2 / SUM($C$2:$C$5)
将上述公式向下填充至所有箱,得到完整占比表:
| 收入等级 | 预期样本数 | 实际样本数 | 预期占比 (P_i) | 实际占比 (A_i) |
|---|---|---|---|---|
| A | 3000 | 2500 | 0.3000 | 0.2500 |
| B | 4000 | 4200 | 0.4000 | 0.4200 |
| C | 2000 | 1800 | 0.2000 | 0.1800 |
| D | 1000 | 1500 | 0.1000 | 0.1500 |
| 合计 | 10000 | 10000 | 1.0000 | 1.0000 |
4.4 第三步:计算 PSI 值
PSI 的数学公式为:
PSI = Σ (A_i - P_i) × ln(A_i / P_i)
在 Excel 中,为每个箱计算中间值(F 列),然后求和:
// 单个箱的 PSI 贡献(F2 单元格)
= (E2 - D2) * LN(E2 / D2)
// 最终 PSI 值
= SUM(F2:F5)
计算过程与结果如下:
| 收入等级 | 预期占比 (P_i) | 实际占比 (A_i) | A_i - P_i | ln(A_i / P_i) | PSI 贡献 |
|---|---|---|---|---|---|
| A | 0.3000 | 0.2500 | -0.0500 | -0.1823 | 0.0091 |
| B | 0.4000 | 0.4200 | 0.0200 | 0.0488 | 0.0010 |
| C | 0.2000 | 0.1800 | -0.0200 | -0.1054 | 0.0021 |
| D | 0.1000 | 0.1500 | 0.0500 | 0.4055 | 0.0203 |
| PSI = | 0.0325 | ||||
常见计算错误:
- 当某个箱的实际占比为 0 时,ln(0) 无定义。此时建议将该箱与相邻箱合并,或对该箱占比进行极小值平滑处理(如加 0.001)。
- 确保预期占比和实际占比的合计均为 1(或 100%),否则 PSI 计算结果将出现偏差。
4.5 PSI 计算流程总览
下图展示了从原始数据到最终 PSI 值的完整计算链路:
4.6 结果解读与预警阈值
计算得到的 PSI 值为 0.0325。根据行业通用标准:
- PSI < 0.1: 无显著漂移,特征分布稳定。
- 0.1 ≤ PSI < 0.25: 轻度漂移,建议调查原因并加强监控。
- PSI ≥ 0.25: 严重漂移,需要立即采取行动,如模型重训或特征工程调整。
本例 PSI 远低于 0.1,表明“收入等级”特征在近期生产环境中的分布与训练集基本一致,模型在该特征上的表现预计保持稳定。
Excel 模板复用建议: 将上述计算过程保存为 Excel 模板,后续只需替换原始数据,即可快速获得任意单特征的 PSI 值。建议将分箱边界、占比计算、PSI 贡献和最终求和分别放在不同的工作表区域,便于审计和调试。