2. PSI漂移监测原理

群体稳定性指标(Population Stability Index, PSI)是反洗钱实时监测中衡量特征分布随时间漂移程度的量化工具。在Flink流处理场景下,PSI用于比较参考分布(如模型训练期的特征分布)与当前分布(如实时流入的交易特征分布),从而判断数据分布是否发生显著变化。

2.1 PSI计算公式推导

PSI的核心思想是:将连续特征划分为若干区间(分箱),然后计算每个区间内样本占比的变化,并对变化进行加权求和。公式如下:

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

其中:

  • Expected_i:参考分布(如训练集)在第 i 个分箱中的样本占比。
  • Actual_i:当前分布(如实时数据)在第 i 个分箱中的样本占比。

公式推导逻辑:

  1. 分箱:将连续特征划分为 k 个互斥区间。
  2. 计算占比:分别统计参考分布和当前分布落在每个区间内的样本数,除以总样本数得到 Expected_i 和 Actual_i。
  3. 计算偏差:对每个区间计算 (Actual_i - Expected_i),表示占比变化。
  4. 加权权重:使用 ln(Actual_i / Expected_i) 作为权重,放大变化幅度。
  5. 求和:将所有区间的加权偏差累加,得到最终 PSI 值。
关键理解:PSI 本质是相对熵(KL散度)的对称化变体,用于衡量两个概率分布之间的差异。当 Actual_i = Expected_i 时,PSI = 0,表示分布完全一致;差异越大,PSI 值越高。

2.2 分箱策略:等距分箱与等频分箱

分箱是PSI计算的前置步骤,直接影响监测灵敏度。常用的两种分箱策略如下:

策略 定义 优点 缺点 适用场景
等距分箱 将特征值范围均匀划分为 k 个宽度相同的区间 实现简单,区间边界固定,易于解释 对数据分布敏感,稀疏区间可能样本极少,导致 PSI 计算不稳定 特征值分布均匀、无极端离群点
等频分箱 将样本按特征值排序后,使每个区间包含大致相等的样本数 每个区间样本量均衡,PSI 计算更稳健 区间边界随数据分布变化,跨时间对比时边界可能不一致 特征值分布偏态、存在长尾或离群点
实战建议:在反洗钱实时监测中,推荐优先使用等频分箱。因为交易金额、交易频率等特征通常呈长尾分布,等频分箱能避免因某个区间样本过少导致的 PSI 计算失真。若使用等距分箱,建议先对特征做对数变换或 Winsorize 处理。

分箱数量 k 的选择:

  • k 过小(如 < 5):分箱粗糙,无法捕捉细微漂移。
  • k 过大(如 > 20):分箱过细,噪声放大,PSI 值波动剧烈。
  • 推荐范围:10 ~ 15 个分箱,在灵敏度和稳定性之间取得平衡。
PSI 计算流程与分箱策略对比 PSI 计算流程 输入:参考分布 & 当前分布 分箱(等距 / 等频) 计算各区间 Expected_i & Actual_i 加权求和:Σ(Δ * ln(ratio)) 输出 PSI 值 分箱策略对比 等距分箱(宽度固定) 区间1: [0, 100) 样本占比: 60% 区间2: [100, 200) 样本占比: 25% 区间3: [200, 300) 样本占比: 10% 区间4: [300, 400) 样本占比: 5% 等频分箱(样本数固定) 区间1: [0, 50) 样本占比: 25% 区间2: [50, 120) 样本占比: 25% 区间3: [120, 250) 样本占比: 25% 区间4: [250, 400] 样本占比: 25%

2.3 PSI阈值设定与风险等级划分

PSI 值本身是一个无量纲指标,需要通过阈值来判定漂移的严重程度。以下是业界通用的阈值标准及对应的风险等级:

PSI 值范围 风险等级 业务含义 建议行动
PSI < 0.1 低风险 分布无明显漂移,模型稳定 持续监测,无需干预
0.1 ≤ PSI < 0.25 中风险 分布出现轻度漂移,需关注 触发告警,人工复核特征分布
PSI ≥ 0.25 高风险 分布发生显著漂移,模型失效风险高 立即暂停模型使用,启动重训练或特征工程调整
注意:上述阈值是通用经验值,实际应用中应根据业务场景和模型敏感度进行调整。例如,在反洗钱场景中,若模型用于高风险交易拦截,可适当降低阈值(如 0.15 即触发告警),以提前发现洗钱模式变化。

阈值调整原则:

  • 业务容忍度:对误报敏感的业务(如正常交易被误拦截),可适当提高阈值。
  • 监测频率:高频监测(如每小时计算一次)可设置更严格的阈值,低频监测(如每天一次)可适当放宽。
  • 特征重要性:对模型贡献大的特征,应设置更低的阈值,优先监测。
PSI 阈值与风险等级划分 低风险 PSI < 0.1 分布稳定 持续监测 中风险 0.1 ≤ PSI < 0.25 轻度漂移 触发告警 高风险 PSI ≥ 0.25 显著漂移 暂停模型 0.1 0.25 阈值可根据业务容忍度、监测频率和特征重要性动态调整

2.4 实时PSI计算的注意事项

  • 样本量要求:每个分箱内的样本数建议不少于 30,否则 PSI 值易受噪声干扰。在 Flink 中可通过窗口大小控制样本量。
  • 参考分布更新:参考分布应定期更新(如每月一次),避免因业务自然演化导致误告警。
  • 零值处理:当某个分箱在参考分布或当前分布中样本占比为 0 时,ln(0) 无定义。实际处理中可对占比做平滑处理(如加一个极小值 ε = 1e-6)。
  • 多特征聚合:反洗钱场景通常监测多个特征,可对每个特征分别计算 PSI,再通过加权平均或最大值聚合得到整体漂移指标。