2. PSI 数学原理
群体稳定性指标(Population Stability Index, PSI)的核心在于量化两个概率分布之间的差异程度。本章从数学公式出发,逐步拆解期望分布、实际分布的概念,并揭示 PSI 与 KL 散度的内在联系。
2.1 期望分布 vs. 实际分布
在风控与特征监控场景中,我们通常将建模时使用的样本分布称为 期望分布(Expected Distribution),将当前生产环境或验证时段的样本分布称为 实际分布(Actual Distribution)。PSI 衡量的是实际分布相对于期望分布的偏移程度。
| 概念 | 符号 | 含义 | 典型来源 |
|---|---|---|---|
| 期望分布 | E | 模型训练/开发时的基准分布 | 训练集、OOT 验证集 |
| 实际分布 | A | 当前待评估的实时分布 | 线上月度样本、新批次数据 |
关键理解: 期望分布不是“理论上的理想分布”,而是业务上认可的基准分布。当实际分布与期望分布发生显著偏离时,说明特征或模型评分的人群结构发生了变化,可能影响模型效果。
2.2 PSI 数学公式推导
PSI 的计算基于分箱(Binning)后的离散分布。假设我们将特征或评分值划分为 n 个区间(箱),每个区间在期望分布中的占比为 Ei,在实际分布中的占比为 Ai。PSI 的完整公式为:
PSI = Σ (A_i - E_i) * ln(A_i / E_i) (i = 1, 2, ..., n)
其中:
- Ai = 第 i 个箱中实际样本数 / 实际总样本数
- Ei = 第 i 个箱中期样本数 / 期望总样本数
- ln 为自然对数
公式的推导可以拆解为三步:
- 分箱对齐: 将期望分布和实际分布按相同的分箱规则离散化,确保每个箱的边界一致。
- 计算占比差: 对每个箱计算 (Ai - Ei),反映该箱内占比的绝对变化。
- 加权对数比: 乘以 ln(Ai / Ei),放大占比变化的方向和幅度,最后求和得到整体偏移量。
避坑提示: 当某个箱的 Ei = 0 时,ln(Ai / 0) 无定义。实际计算中需对空箱做平滑处理(如加极小值 1e-6),或合并相邻箱。同样,当 Ai = 0 时,该项贡献为 0,但需注意信息丢失。
2.3 KL 散度与 PSI 的关系
KL 散度(Kullback-Leibler Divergence)是信息论中衡量两个概率分布 P 和 Q 差异的非对称度量。其定义为:
KL(P || Q) = Σ P_i * ln(P_i / Q_i)
PSI 与 KL 散度之间存在对称化关系:
| 度量 | 公式 | 对称性 | 与 PSI 的关系 |
|---|---|---|---|
| KL(P||Q) | Σ P_i * ln(P_i / Q_i) | 非对称 | PSI 的组成部分 |
| KL(Q||P) | Σ Q_i * ln(Q_i / P_i) | 非对称 | PSI 的组成部分 |
| PSI | Σ (A_i - E_i) * ln(A_i / E_i) | 对称 | KL(A||E) + KL(E||A) |
从数学上可以证明:
PSI = KL(A || E) + KL(E || A)
即 PSI 是 KL 散度的对称版本。这使得 PSI 同时考虑了“实际分布相对于期望分布”和“期望分布相对于实际分布”两个方向的偏移,避免了 KL 散度非对称性带来的歧义。
数学推导简证:
KL(A||E) = Σ A_i * ln(A_i / E_i)
KL(E||A) = Σ E_i * ln(E_i / A_i) = - Σ E_i * ln(A_i / E_i)
两者相加:
KL(A||E) + KL(E||A) = Σ (A_i - E_i) * ln(A_i / E_i) = PSI
KL(A||E) = Σ A_i * ln(A_i / E_i)
KL(E||A) = Σ E_i * ln(E_i / A_i) = - Σ E_i * ln(A_i / E_i)
两者相加:
KL(A||E) + KL(E||A) = Σ (A_i - E_i) * ln(A_i / E_i) = PSI
2.4 PSI 计算示例
以下通过一个简化的 3 箱示例,展示 PSI 的手动计算过程:
| 箱号 | 期望占比 Ei | 实际占比 Ai | Ai - Ei | Ai / Ei | ln(Ai / Ei) | 单项贡献 |
|---|---|---|---|---|---|---|
| 1 | 0.30 | 0.25 | -0.05 | 0.833 | -0.182 | 0.0091 |
| 2 | 0.40 | 0.45 | 0.05 | 1.125 | 0.118 | 0.0059 |
| 3 | 0.30 | 0.30 | 0.00 | 1.000 | 0.000 | 0.0000 |
| PSI = | 0.0150 | |||||
该示例中 PSI = 0.015,远小于 0.1 的常见阈值,说明实际分布与期望分布非常接近,特征稳定性良好。
实践要点: 实际业务中分箱数量通常为 10~20 箱。箱数过少会丢失分布细节,箱数过多则可能导致空箱或噪声放大。建议使用等频分箱或等距分箱,并确保每个箱的期望样本数不低于 50。