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 值的完整计算链路:

PSI 手动计算流程 PSI 手动计算流程(Excel 实现) 原始数据 分箱 计算占比 计算每个箱的 PSI 贡献 求和得到 PSI 值 PSI < 0.1:无漂移;0.1~0.25:轻度漂移;> 0.25:严重漂移 本例 PSI = 0.0325 < 0.1,说明“收入等级”特征近期未发生显著漂移

4.6 结果解读与预警阈值

计算得到的 PSI 值为 0.0325。根据行业通用标准:

  • PSI < 0.1: 无显著漂移,特征分布稳定。
  • 0.1 ≤ PSI < 0.25: 轻度漂移,建议调查原因并加强监控。
  • PSI ≥ 0.25: 严重漂移,需要立即采取行动,如模型重训或特征工程调整。

本例 PSI 远低于 0.1,表明“收入等级”特征在近期生产环境中的分布与训练集基本一致,模型在该特征上的表现预计保持稳定。

Excel 模板复用建议: 将上述计算过程保存为 Excel 模板,后续只需替换原始数据,即可快速获得任意单特征的 PSI 值。建议将分箱边界、占比计算、PSI 贡献和最终求和分别放在不同的工作表区域,便于审计和调试。