2. PSI 指标详解:群体稳定性指标

群体稳定性指标(Population Stability Index,PSI)是衡量两个样本分布之间差异程度的统计量,在风控、营销和机器学习模型监控领域被广泛用于检测数据分布是否发生显著变化。本章将从定义、数学推导、物理意义和取值范围四个维度对 PSI 进行深度拆解。

2.1 PSI 的定义与核心思想

PSI 本质上衡量的是 实际分布(Actual Distribution) 相对于 期望分布(Expected Distribution) 的偏移程度。在模型监控场景中,期望分布通常指模型训练集或验证集上的预测分数分布,实际分布指当前生产环境中的预测分数分布。

PSI 的计算基于分箱(Binning)思想:将连续变量或概率分数划分为若干区间(通常为 10 或 20 个等宽或等频分箱),然后比较每个箱中样本占比的变化。

关键理解: PSI 不是直接比较原始数值,而是比较每个区间内的样本比例变化。这使得它对分布形状的变化非常敏感,而对绝对数值的缩放不敏感。

2.2 数学公式推导

PSI 的完整计算公式由两部分组成:分箱比例计算和逐箱差异聚合。

2.2.1 分箱比例

假设我们将预测分数或特征值划分为 n 个互斥的箱(bins),对于第 i 个箱:

  • 期望占比 \( p_i = \frac{\text{期望分布中落入箱 } i \text{ 的样本数}}{\text{期望分布总样本数}} \)
  • 实际占比 \( q_i = \frac{\text{实际分布中落入箱 } i \text{ 的样本数}}{\text{实际分布总样本数}} \)

为保证公式的数学稳定性,通常要求 \( p_i > 0 \) 且 \( q_i > 0 \)。若某个箱的占比为 0,可做极小值平滑处理(如加 0.0001)。

2.2.2 逐箱 PSI 贡献

第 i 个箱对 PSI 的贡献为:

箱贡献_i = (q_i - p_i) * ln(q_i / p_i)

其中 ln 为自然对数。这个公式具有以下数学性质:

  • 当 \( q_i = p_i \) 时,贡献为 0(因为 ln(1) = 0)
  • 当 \( q_i > p_i \) 时,贡献为正
  • 当 \( q_i < p_i \) 时,贡献也为正(因为 (q_i - p_i) 为负,ln(q_i/p_i) 也为负,乘积为正)
  • 分布差异越大,贡献值越大

2.2.3 总体 PSI

将所有箱的贡献求和,即得到总体 PSI:

PSI = Σ_{i=1}^{n} (q_i - p_i) * ln(q_i / p_i)

这个公式与 KL 散度(Kullback-Leibler Divergence)有密切关系。实际上,PSI 可以看作是两个分布之间的 对称化 KL 散度:

PSI = KL(实际 || 期望) + KL(期望 || 实际)

其中 KL 散度定义为 \( KL(P||Q) = Σ p_i * ln(p_i / q_i) \)。对称化使得 PSI 对两个分布的角色交换不敏感,更适合作为监控指标。

公式记忆口诀: "比例差乘对数比,逐箱求和得 PSI" —— 先算每个箱的 (实际占比 - 期望占比) × ln(实际占比 / 期望占比),再对所有箱求和。

2.3 PSI 的物理意义

PSI 的物理意义可以从三个层面理解:

层面 物理意义 监控场景解读
分布偏移 衡量两个概率分布之间的整体差异程度 当前模型输出分布是否偏离训练时的分布
信息损失 用期望分布编码实际分布所需的额外信息量 模型在新数据上的预测不确定性是否增大
群体构成变化 反映各分数段客户群体占比的重新分配 高分段客户是否变多或变少,客群结构是否改变

在风控场景中,PSI 升高通常意味着:

  • 宏观经济环境变化导致客户还款能力整体偏移
  • 获客渠道调整带来客群质量变化
  • 数据采集或特征工程环节出现异常
  • 模型本身随时间衰减,区分能力下降
PSI 物理意义三层结构 PSI 总体指标 分布偏移程度 信息损失度量 群体构成变化 实际 vs 期望分布 概率密度函数差异 分位数偏移程度 额外编码比特数 KL 散度对称化 预测不确定性变化 各分数段占比变化 客群质量迁移 渠道/政策影响

2.4 PSI 的取值范围与判定标准

PSI 是一个非负实数,理论上取值范围为 [0, +∞)。在实际工程应用中,通常采用以下经验阈值进行判定:

PSI 值范围 判定等级 建议操作
PSI < 0.1 无显著漂移 无需干预,模型可继续使用
0.1 ≤ PSI < 0.25 轻度漂移 需关注,排查可能的原因,准备模型更新
PSI ≥ 0.25 严重漂移 立即告警,模型需重新训练或回滚
阈值选择注意事项: 上述阈值是行业通用经验值,实际应用中应根据业务场景调整。例如,在信贷风控中,PSI 阈值可能更严格(如 0.1 即告警);而在营销响应模型中,阈值可适当放宽(如 0.2 再告警)。建议根据历史数据回测确定适合自身业务的阈值。

2.4.1 PSI 的极端情况

  • PSI = 0: 两个分布完全一致,每个箱的占比完全相同。这是理想状态,实际中几乎不可能达到。
  • PSI 趋近于无穷大: 当某个箱在期望分布中占比极小(趋近于 0),而在实际分布中占比显著大于 0 时,ln(q_i/p_i) 会非常大,导致 PSI 发散。这通常意味着出现了期望分布中从未出现过的新模式。
  • PSI 为负值? 不可能。因为每个箱的贡献 (q_i - p_i) * ln(q_i/p_i) 始终非负(当 q_i ≠ p_i 时为正,相等时为 0),所以 PSI 永远 ≥ 0。

2.5 PSI 计算示例

以下是一个简化的 PSI 计算示例,帮助理解公式的实际应用:

分箱 期望占比 p_i 实际占比 q_i q_i - p_i q_i / p_i ln(q_i/p_i) 箱贡献
箱 1 (0-0.1) 0.10 0.15 0.05 1.50 0.4055 0.0203
箱 2 (0.1-0.2) 0.10 0.12 0.02 1.20 0.1823 0.0036
箱 3 (0.2-0.3) 0.10 0.10 0.00 1.00 0.0000 0.0000
箱 4 (0.3-0.4) 0.10 0.08 -0.02 0.80 -0.2231 0.0045
箱 5 (0.4-0.5) 0.10 0.07 -0.03 0.70 -0.3567 0.0107
箱 6 (0.5-0.6) 0.10 0.10 0.00 1.00 0.0000 0.0000
箱 7 (0.6-0.7) 0.10 0.12 0.02 1.20 0.1823 0.0036
箱 8 (0.7-0.8) 0.10 0.11 0.01 1.10 0.0953 0.0010
箱 9 (0.8-0.9) 0.10 0.09 -0.01 0.90 -0.1054 0.0011
箱 10 (0.9-1.0) 0.10 0.06 -0.04 0.60 -0.5108 0.0204
PSI = 0.0652

该示例中 PSI = 0.0652 < 0.1,属于无显著漂移范围。注意箱 1 和箱 10 的贡献最大,说明分布的两端发生了较明显的偏移。

PSI 计算流程 步骤 1 分箱(等宽/等频) 步骤 2 计算各箱占比 步骤 3 计算箱贡献 步骤 4 求和得 PSI 关键注意事项 • 分箱数量通常为 10 或 20,太少会丢失细节,太多会导致统计不稳定 • 每个箱的样本数建议 ≥ 50,否则占比估计方差过大 • 遇到占比为 0 的箱,建议做极小值平滑(如加 0.0001)避免除零错误

2.6 PSI 与其他分布差异指标的关系

指标 公式 与 PSI 的关系 适用场景
KL 散度 KL(P||Q) = Σ p_i ln(p_i/q_i) PSI = KL(实际||期望) + KL(期望||实际) 非对称度量,PSI 是对称化版本
JS 散度 JSD = 0.5 * KL(P||M) + 0.5 * KL(Q||M) JS 散度取值范围 [0, ln2],PSI 无上界 需要归一化指标时使用 JS 散度
卡方检验 χ² = Σ (O_i - E_i)² / E_i 卡方检验关注统计显著性,PSI 关注效应大小 大样本下卡方容易显著,PSI 更实用
Wasserstein 距离 基于最优传输理论 对分布形状变化更敏感,计算复杂度更高 需要捕捉分布形状变化时使用
工程建议: 在实际监控系统中,PSI 是最常用的指标,因为它计算简单、解释直观、阈值经验丰富。建议将 PSI 作为主要监控指标,辅以特征级别的 KS 统计量或 Wasserstein 距离进行深入分析。