2. PSI 计算公式:数学表达式、参数含义与计算步骤详解

群体稳定性指标(Population Stability Index, PSI)的核心在于量化两个分布之间的差异程度。其数学基础源于信息论中的 相对熵(KL 散度),但通过对称化处理,使其成为一个衡量分布偏移的实用统计量。下面从数学表达式、参数含义和计算步骤三个层面进行拆解。

2.1 数学表达式

PSI 的标准计算公式如下:

PSI = Σ (P_actual_i - P_expected_i) * ln(P_actual_i / P_expected_i)

其中:

  • Σ:对评分卡或模型输出的所有分数段(通常为 10~20 个分箱)进行求和。
  • P_actual_i:第 i 个分数段中,实际样本(当前期)的占比。
  • P_expected_i:第 i 个分数段中,期望样本(基准期/建模期)的占比。
  • ln:自然对数。
关键理解: 公式本质上是每个分箱的“占比差异”与“占比比值的对数”的乘积之和。当两个分布完全一致时,每个分箱的 P_actual_i = P_expected_i,ln(1)=0,PSI=0。差异越大,PSI 值越大。

2.2 各参数含义详解

参数 符号 含义 典型取值/说明
实际占比 P_actual_i 当前监控期(如本月)落在第 i 个分数段的样本数占总样本数的比例 0 ≤ P_actual_i ≤ 1,所有分箱之和 = 1
期望占比 P_expected_i 基准期(如建模时或上个月)落在第 i 个分数段的样本占比 0 ≤ P_expected_i ≤ 1,所有分箱之和 = 1
分箱序号 i 分数段编号,通常按分数从低到高或从高到低排列 i = 1, 2, ..., N(N 通常为 10 或 20)
自然对数 ln 对占比比值取自然对数,放大差异信号 当 P_actual_i < P_expected_i 时,ln 为负值
求和符号 Σ 对所有分箱的贡献值进行累加,得到最终 PSI 值 PSI 值 ≥ 0
⚠️ 避坑提示: 当某个分箱的 P_expected_i = 0 时,公式中的 ln(P_actual_i / 0) 无定义。实际处理中,需对空箱进行合并或添加极小平滑值(如 0.0001),避免计算异常。

2.3 计算步骤详解

PSI 的计算遵循一套标准化的流程,共分为 5 个步骤:

  1. 步骤 1:确定基准分布(期望分布)
    选取一个稳定的历史时期(如模型开发时的验证集、或上个月的全量样本)作为基准。统计该时期每个分数段的样本数量,并计算占比 P_expected_i。
  2. 步骤 2:确定当前分布(实际分布)
    选取当前监控周期(如本月)的样本,按照与基准期完全相同的分数段切分方式,统计每个分数段的样本数量,并计算占比 P_actual_i。
  3. 步骤 3:计算每个分箱的差异贡献
    对每个分箱 i,计算 (P_actual_i - P_expected_i) * ln(P_actual_i / P_expected_i)。
  4. 步骤 4:求和得到 PSI
    将所有分箱的差异贡献值相加,得到最终的 PSI 值。
  5. 步骤 5:结果解读
    根据 PSI 值的大小判断分布偏移程度(详见后续章节的哨兵阈值设定)。

2.4 计算流程可视化

下图展示了从基准期和当前期数据输入,到最终 PSI 值输出的完整计算链路:

PSI 计算流程 基准期样本 当前期样本 分箱 & 统计占比 分箱 & 统计占比 逐箱计算差异贡献 (P_actual - P_expected) * ln(P_actual / P_expected) Σ 求和 → PSI 值 PSI = 0 → 无偏移

2.5 计算示例(手工模拟)

假设我们将评分卡分数划分为 3 个分箱(实际应用中通常为 10~20 箱),基准期和当前期的样本分布如下:

分箱 i 分数区间 基准期样本数 基准期占比 P_expected 当前期样本数 当前期占比 P_actual
1 0~300 200 0.20 150 0.15
2 301~600 500 0.50 550 0.55
3 601~1000 300 0.30 300 0.30
合计 — 1000 1.00 1000 1.00

逐箱计算差异贡献:

  • 分箱 1: (0.15 - 0.20) * ln(0.15 / 0.20) = (-0.05) * ln(0.75) = (-0.05) * (-0.2877) = 0.0144
  • 分箱 2: (0.55 - 0.50) * ln(0.55 / 0.50) = (0.05) * ln(1.10) = 0.05 * 0.0953 = 0.0048
  • 分箱 3: (0.30 - 0.30) * ln(0.30 / 0.30) = 0 * 0 = 0.0000

PSI = 0.0144 + 0.0048 + 0.0000 = 0.0192

💡 经验解读: 本例中 PSI = 0.0192,远小于 0.10,说明当前期分布与基准期分布非常接近,模型稳定性良好,无需触发预警。

2.6 分箱策略对 PSI 的影响

分箱方式直接影响 PSI 的敏感度和稳定性。下表对比了两种主流分箱策略:

分箱策略 方法 优点 缺点
等距分箱 按分数区间等宽划分(如每 50 分一箱) 分箱边界固定,便于跨期对比 可能导致某些分箱样本过少或过多
等频分箱 按样本量均分(每箱约 10% 样本) 每个分箱样本量均衡,统计稳定 分箱边界随分布变化而移动,跨期对比需固定边界
推荐做法: 在模型上线时,使用基准期的等频分箱边界作为固定切分点。后续所有监控周期均沿用这套固定边界,确保 PSI 计算的一致性。