2. PSI 数学原理与公式推导

群体稳定性指标(Population Stability Index, PSI)是衡量两个分布之间差异的标准化度量。在风控建模中,它用于量化模型评分(或特征分布)在时间维度上的偏移程度。理解 PSI 的数学本质,是后续进行特征筛选与模型监控的基础。

2.1 PSI 的数学定义

PSI 的核心思想是比较两个样本集在相同分箱(Bucket)上的占比差异。其标准计算公式如下:

PSI = Σ (Actual_i - Expected_i) * ln(Actual_i / Expected_i)

其中:

  • Expected_i:第 i 个分箱中,基准样本(如训练集)的占比。
  • Actual_i:第 i 个分箱中,实际样本(如跨时间验证集)的占比。
  • ln:自然对数。

该公式本质上是对每个分箱的“实际占比与预期占比的差异”进行加权求和,权重由对数变换后的差异幅度决定。

2.2 基于信息熵的推导

PSI 与信息论中的 KL 散度(Kullback-Leibler Divergence) 密切相关。KL 散度衡量的是用一个分布 Q 来近似另一个分布 P 时所损失的信息量:

KL(P || Q) = Σ P_i * ln(P_i / Q_i)

PSI 实际上是两个 KL 散度的对称和,即:

PSI = KL(Actual || Expected) + KL(Expected || Actual)

展开后得到:

PSI = Σ Actual_i * ln(Actual_i / Expected_i) + Σ Expected_i * ln(Expected_i / Actual_i)

由于 ln(Expected_i / Actual_i) = - ln(Actual_i / Expected_i),合并后即为标准 PSI 公式。这种对称性使得 PSI 成为一个距离度量,而 KL 散度本身是非对称的。

💡 直观理解: PSI 可以看作是两个概率分布之间的“平均信息差异”。当两个分布完全一致时,每个分箱的 Actual_i / Expected_i = 1,ln(1) = 0,PSI = 0。差异越大,PSI 值越高。
PSI 与 KL 散度的关系 KL 散度(非对称) KL(Actual || Expected) KL(Expected || Actual) PSI(对称) PSI = KL(A||E) + KL(E||A) = Σ (A_i - E_i) * ln(A_i / E_i) 关键区别 KL 散度:非对称,P 对 Q 的差异 ≠ Q 对 P 的差异 PSI:对称,通过双向求和得到稳定的距离度量

2.3 实际分箱计算逻辑

在实际工程中,PSI 的计算依赖于对连续变量进行分箱。分箱方式直接影响 PSI 值的稳定性与可解释性。以下是标准计算流程:

步骤一:确定分箱边界

基于基准样本(Expected)确定分箱的切分点。常用方法包括:

  • 等距分箱:将数值范围均匀划分为 N 段。
  • 等频分箱:使每个分箱内的样本数量大致相等。
  • 自定义分箱:根据业务经验或模型分数阈值(如 0-600, 600-700, 700-800, 800+)进行划分。
⚠️ 注意: 分箱数量通常建议在 5-20 之间。分箱过少会丢失细节,过多则可能导致部分分箱占比为 0,引发对数计算异常。当某个分箱占比为 0 时,通常需要做平滑处理(如加一个小常数 ε)。

步骤二:计算各分箱占比

分别统计基准样本和实际样本在每个分箱中的占比:

分箱编号 分箱区间 基准样本数 基准占比 (Expected_i) 实际样本数 实际占比 (Actual_i)
1 [0, 600) 1500 0.30 1200 0.24
2 [600, 700) 2000 0.40 1800 0.36
3 [700, 800) 1000 0.20 1300 0.26
4 [800, +∞) 500 0.10 700 0.14
合计 — 5000 1.00 5000 1.00

步骤三:逐箱计算并求和

对每个分箱计算 (Actual_i - Expected_i) * ln(Actual_i / Expected_i),然后求和:

分箱1: (0.24 - 0.30) * ln(0.24 / 0.30) = (-0.06) * ln(0.80) = (-0.06) * (-0.2231) = 0.0134
分箱2: (0.36 - 0.40) * ln(0.36 / 0.40) = (-0.04) * ln(0.90) = (-0.04) * (-0.1054) = 0.0042
分箱3: (0.26 - 0.20) * ln(0.26 / 0.20) = (0.06) * ln(1.30) = 0.06 * 0.2624 = 0.0157
分箱4: (0.14 - 0.10) * ln(0.14 / 0.10) = (0.04) * ln(1.40) = 0.04 * 0.3365 = 0.0135

PSI = 0.0134 + 0.0042 + 0.0157 + 0.0135 = 0.0468
PSI 分箱计算流程 步骤 1:确定分箱边界 步骤 2:计算各分箱占比 步骤 3:逐箱计算并求和 输出 PSI 值 关键参数 分箱数 N:5-20 平滑处理:ε 基准分布:Expected 实际分布:Actual 对数底数:自然对数

2.4 PSI 值的解读标准

计算得到 PSI 值后,通常按照以下经验阈值进行判断:

PSI 范围 稳定性等级 建议操作
PSI < 0.10 稳定 无需调整,特征分布无显著偏移
0.10 ≤ PSI < 0.25 轻度偏移 需关注,建议排查业务或数据原因
PSI ≥ 0.25 严重偏移 必须干预,考虑特征剔除或模型重建
📌 实践要点:
  • PSI 对分箱方式敏感。建议在特征筛选阶段固定分箱策略,避免因分箱变化导致误判。
  • 对于评分卡模型,通常对模型分数(Score)计算 PSI;对于特征筛选,则对每个特征单独计算 PSI。
  • 当样本量较小时,PSI 可能因随机波动而偏高,此时可结合 KS 检验或群体稳定性图综合判断。