2. PSI 数学原理:公式推导、期望比例与实际比例对比、分箱计算逻辑

群体稳定性指标(Population Stability Index, PSI)是衡量两个分布之间差异的标准化度量。在模型监控中,它用于量化模型评分在 期望(开发/训练)样本 与 实际(生产/当前)样本 之间的偏移程度。本节从数学公式出发,逐步拆解其计算逻辑。

2.1 PSI 公式推导

PSI 的核心思想来源于信息论中的 相对熵(KL 散度),但 PSI 是对称化版本。其标准计算公式如下:

PSI = Σ (实际比例_i - 期望比例_i) * ln(实际比例_i / 期望比例_i)

其中:

  • 期望比例_i:第 i 个分箱中,开发样本的占比(基准分布)。
  • 实际比例_i:第 i 个分箱中,生产样本的占比(当前分布)。
  • ln:自然对数。
  • Σ:对所有分箱求和。

该公式本质上是 (实际比例 - 期望比例) 与 (对数变化率) 的乘积之和。当两个分布完全一致时,每个分箱的差值为 0,PSI = 0。分布差异越大,PSI 值越大。

关键理解: PSI 对分布尾部变化非常敏感。即使整体分布相似,若某个分箱中实际比例从 5% 变为 0.5%(变化 10 倍),该分箱贡献的 PSI 值会显著增大,从而触发告警。

2.2 期望比例与实际比例的对比

为了直观理解,下表展示了一个 5 分箱的示例,对比了期望比例与实际比例,并计算了每个分箱的 PSI 贡献值。

分箱编号 分数区间 期望比例 (E_i) 实际比例 (A_i) 差值 (A_i - E_i) 对数比 ln(A_i/E_i) 分箱 PSI 贡献
1 [0, 20) 0.10 0.15 +0.05 0.405 0.0203
2 [20, 40) 0.20 0.25 +0.05 0.223 0.0112
3 [40, 60) 0.40 0.30 -0.10 -0.287 0.0287
4 [60, 80) 0.20 0.20 0.00 0.000 0.0000
5 [80, 100] 0.10 0.10 0.00 0.000 0.0000
总计 PSI 0.0602

从上表可以看出:

  • 分箱 3 的绝对差值最大(-0.10),贡献了最高的 PSI 值(0.0287)。
  • 分箱 1 虽然差值较小(+0.05),但由于对数比更大,贡献值也较高。
  • 分箱 4 和 5 比例完全一致,贡献为 0。

2.3 PSI 分箱计算逻辑

PSI 的计算高度依赖分箱策略。不合理的分箱会导致 PSI 值失真。标准的分箱逻辑包含以下步骤:

  1. 确定分箱边界: 基于开发样本(期望分布)确定分箱的切分点。通常使用等频分箱(每个箱包含相同数量的样本)或等距分箱。
  2. 计算期望比例: 统计每个分箱中开发样本的数量,除以开发样本总数,得到期望比例 E_i。
  3. 映射实际样本: 使用相同的分箱边界,将生产样本(实际分布)划分到对应的分箱中。
  4. 计算实际比例: 统计每个分箱中生产样本的数量,除以生产样本总数,得到实际比例 A_i。
  5. 处理零值: 如果某个分箱中期望比例或实际比例为 0,会导致对数计算无定义。通常采用 平滑处理,例如将 0 替换为一个极小值(如 0.0001),或将该分箱与相邻分箱合并。
  6. 求和: 按公式计算每个分箱的贡献并求和,得到最终的 PSI 值。
分箱避坑指南:
  • 分箱数量: 通常建议 10~20 个分箱。分箱过少会掩盖局部漂移;分箱过多会导致每个箱样本稀疏,噪声增大。
  • 边界一致性: 必须使用开发样本的边界来划分生产样本,不能重新分箱。
  • 零值处理: 务必在代码中加入平滑逻辑,否则 ln(0) 会导致程序崩溃。

下图展示了 PSI 分箱计算的核心流程,从原始分数到最终 PSI 值的完整链路。

PSI 分箱计算逻辑流程图 原始分数输入 基于开发样本确定分箱边界 计算期望比例 E_i 映射实际样本并计算 A_i 零值平滑处理 输出 PSI 值

2.4 PSI 阈值与告警逻辑

在实际工程中,PSI 值通常按以下经验阈值进行告警分级:

PSI 范围 稳定性等级 建议操作
PSI < 0.1 稳定 无需操作,分布无显著漂移。
0.1 ≤ PSI < 0.25 轻度漂移 需关注,建议检查近期数据质量或业务策略变化。
PSI ≥ 0.25 严重漂移 立即告警,需重新训练模型或排查数据管道异常。
注意: 上述阈值为行业通用经验值,具体项目应根据业务容忍度进行调整。例如,在风控场景中,PSI > 0.2 即可能触发模型下线审查;而在营销场景中,PSI < 0.3 可能仍被视为可接受。