批次偏移根因分析:PSI告警后的特征排查流程 - 第2节
2.1 PSI 计算公式详解
群体稳定性指标(Population Stability Index, PSI)是衡量模型评分或特征分布在时间维度上变化程度的量化指标。其核心思想是比较两个独立样本(通常为训练集与当前生产样本)在各分箱上的分布差异,从而判断数据分布是否发生显著偏移。
2.1.1 标准计算公式
PSI 的计算基于信息论中的 KL 散度(Kullback-Leibler divergence)对称化形式。对于将连续变量或概率值划分为 K 个等宽或等频分箱后的场景,计算公式如下:
PSI = Σ (Actual_i - Expected_i) * ln(Actual_i / Expected_i)
其中:
- Expected_i = 训练集(基准集)在第 i 个分箱中的样本占比
- Actual_i = 当前生产集在第 i 个分箱中的样本占比
- i = 1, 2, ..., K(分箱编号)
- ln 为自然对数
2.1.2 分箱策略与计算步骤
实际计算时,分箱方式直接影响 PSI 值的稳定性与可解释性。推荐采用以下标准化流程:
- 确定基准分布:以模型训练集或验证集的特征分布作为 Expected 分布。
- 等频分箱:将基准分布按样本量均分为 10 箱(K=10),记录每箱的上下边界。
- 映射当前分布:使用基准分箱的边界,将当前生产样本落入对应箱中,计算 Actual 占比。
- 处理空箱与零值:若某箱 Actual_i = 0,则令该项贡献为 0(避免 ln(0) 错误);若 Expected_i = 0,则合并相邻箱。
- 求和:累加所有分箱的 (Actual - Expected) * ln(Actual / Expected) 得到最终 PSI。
计算提示:实际工程中建议使用等频分箱(K=10)而非等宽分箱,因为等宽分箱在长尾分布下容易产生大量空箱,导致 PSI 值失真。对于离散特征(如枚举值),每个取值天然为一个分箱。
2.1.3 计算示例表
以下为一个二分类模型评分(概率值)的 PSI 计算示例,基准集与生产集各 10,000 条样本,等频分 10 箱:
| 分箱区间 | Expected 占比 (%) | Actual 占比 (%) | 差值 (A-E) | ln(A/E) | 单项贡献 |
|---|---|---|---|---|---|
| [0.00, 0.10) | 10.0 | 12.5 | +2.5 | 0.2231 | 0.0056 |
| [0.10, 0.20) | 10.0 | 11.0 | +1.0 | 0.0953 | 0.0010 |
| [0.20, 0.30) | 10.0 | 9.5 | -0.5 | -0.0513 | 0.0003 |
| [0.30, 0.40) | 10.0 | 8.0 | -2.0 | -0.2231 | 0.0045 |
| [0.40, 0.50) | 10.0 | 9.0 | -1.0 | -0.1054 | 0.0011 |
| [0.50, 0.60) | 10.0 | 10.5 | +0.5 | 0.0488 | 0.0002 |
| [0.60, 0.70) | 10.0 | 11.5 | +1.5 | 0.1398 | 0.0021 |
| [0.70, 0.80) | 10.0 | 10.0 | 0.0 | 0.0000 | 0.0000 |
| [0.80, 0.90) | 10.0 | 9.0 | -1.0 | -0.1054 | 0.0011 |
| [0.90, 1.00] | 10.0 | 9.0 | -1.0 | -0.1054 | 0.0011 |
| 合计 | 100.0 | 100.0 | — | — | 0.0169 |
上例中 PSI = 0.0169,远低于 0.1 阈值,表明当前生产分布与基准分布高度一致,无需触发告警。
2.2 PSI 阈值设定标准(0.1 / 0.2)
在工业实践中,PSI 的阈值体系已形成广泛共识。不同阈值对应不同的业务动作,是自动化监控系统的核心决策依据。
2.2.1 通用阈值标准
| PSI 区间 | 稳定性等级 | 建议动作 |
|---|---|---|
| PSI < 0.1 | 稳定 | 无需干预,正常监控 |
| 0.1 ≤ PSI < 0.2 | 轻度偏移 | 发出预警,排查特征分布变化,准备回滚方案 |
| PSI ≥ 0.2 | 严重偏移 | 触发告警,立即停止模型决策,启动根因分析流程 |
2.2.2 阈值选择的影响因素
- 业务风险敏感度:金融风控、医疗诊断等高风险场景建议收紧至 0.05/0.15;推荐系统等低风险场景可放宽至 0.15/0.25。
- 样本量大小:生产样本量 < 1,000 时,PSI 方差较大,建议将阈值上调 20%~30% 以避免误报。
- 特征类型:连续特征(如收入、年龄)对分布变化敏感,建议使用 0.1/0.2 标准;离散特征(如性别、职业)建议使用 0.05/0.1 更严格标准。
- 监控频率:日级监控建议使用 0.1/0.2;周级或月级监控因样本累积更充分,可适当降低阈值至 0.08/0.15。
阈值误用风险:切勿将 PSI 阈值直接套用于所有特征而不做调整。例如,对于取值稀疏的离散特征(如“省份”有 30+ 类别),即使分布无实质变化,等频分箱也会因部分箱样本过少而产生较高的 PSI 值。此时应优先使用卡方检验或 Jensen-Shannon 散度作为辅助指标。
2.3 PSI 与模型稳定性的关系
PSI 并非直接衡量模型性能(如 AUC、KS)的指标,而是衡量模型输入分布稳定性的代理指标。理解二者之间的因果链条,是正确使用 PSI 的前提。
2.3.1 分布偏移导致模型失效的传导路径
以下 SVG 图展示了从特征分布偏移到模型决策失效的完整传导路径:
2.3.2 PSI 与模型性能指标的关联
根据多家金融机构的长期监控数据,PSI 与模型性能指标之间存在以下经验关系:
| PSI 范围 | AUC 平均下降幅度 | KS 平均下降幅度 | 模型可用性评估 |
|---|---|---|---|
| < 0.1 | < 0.01 | < 0.02 | 完全可用 |
| 0.1 ~ 0.2 | 0.01 ~ 0.03 | 0.02 ~ 0.05 | 需监控,可继续使用 |
| 0.2 ~ 0.3 | 0.03 ~ 0.06 | 0.05 ~ 0.10 | 建议回滚或重新训练 |
| > 0.3 | > 0.06 | > 0.10 | 必须停止使用 |
2.3.3 PSI 的局限性
- 无法区分偏移方向:PSI 只衡量分布差异的大小,不反映差异的方向(正偏移还是负偏移)。例如,坏账率从 5% 升至 15% 与从 5% 降至 1%,PSI 可能相同但业务含义截然相反。
- 对分箱数量敏感:K=5 与 K=20 计算出的 PSI 值不可直接比较。行业标准统一使用 K=10。
- 无法定位根因特征:整体 PSI 告警后,需要逐特征计算 PSI 才能定位偏移源,这正是本课程后续章节的核心内容。
- 对样本量敏感:小样本下 PSI 方差大,容易产生假阳性告警。建议生产样本量不低于基准样本量的 10%。
实践要点:PSI 是模型监控的第一道防线,但不是唯一防线。建议将 PSI 与模型性能指标(AUC、KS、Gini)、业务指标(通过率、坏账率)组成三维监控体系,当 PSI 告警时立即联动检查后两类指标,以确认偏移是否已传导至业务层面。
2.4 特征级 PSI 与整体 PSI 的关系
在实际监控系统中,我们同时计算两个层级的 PSI:
- 整体 PSI:基于模型输出的评分(概率值)计算,反映模型整体输出的稳定性。
- 特征级 PSI:基于每个输入特征单独计算,用于定位具体哪个特征发生了偏移。
以下 SVG 图展示了特征级 PSI 与整体 PSI 的层级关系:
2.4.1 排查优先级策略
当整体 PSI 告警后,不应盲目遍历所有特征,而应按照以下优先级进行排查:
- 高权重特征优先:线性模型中权重绝对值最大的前 5~10 个特征;树模型中特征重要性排名前 10 的特征。
- 业务敏感特征优先:与核心业务指标(如违约率、转化率)强相关的特征,即使模型权重不高也应优先排查。
- 外部数据源特征优先:三方数据、外部评分等不可控数据源,因其分布变化不受我方控制,最容易发生偏移。
- 衍生特征后置:由原始特征计算得到的衍生特征(如比率、交叉项),其偏移通常由原始特征引起,排查原始特征即可。
效率建议:建立特征 PSI 基线库,每次模型上线时记录所有特征的 PSI 基准值。后续监控时只需计算当前 PSI 与基线的差值(ΔPSI),ΔPSI > 0.05 的特征自动进入根因分析候选列表,大幅减少人工排查范围。