提示:文中数据来源于互联网公开信息,为防止误解,文中所有涉及平台名称均作脱敏处理;原文末预留的回复下载资料,易被官方判定违规导流,现暂停,谢谢理解。
模型监控与漂移检测:AUC 正常不代表模型健康,PSI 超过多少必须动手
模型上线的那一天,风控团队通常会有一种”事情终于做完了”的错觉。
这是错的。 模型上线是监控周期的起点,不是交付终点。一个上线后没人盯的模型,会以肉眼看不见的方式变坏——它的 AUC 可能一直是 0.72,看起来岁月静好,但客群已经换了一茬,分数分布已经整体偏移,只不过表现期还没到、坏账还没暴露。
这篇讲三件事:监控指标怎么分层排班、每个指标的适用边界在哪、报警之后到底该做什么。
一、问题背景:为什么”指标正常”经常是最大的假信号
监控失效的第一种形态,不是”指标报警了没人管”,而是“指标根本不报警”。
原因一:模型层指标天生滞后。
AUC、KS、Gini 这些指标都需要表现期成熟才能计算。一笔 30 天的贷款,要等到至少 M1(第一个还款月)结束才知道好坏——这意味着你今天看到的 AUC,反映的是 30 到 90 天前的客群,而不是今天的。
所以一个客群已经开始漂移的模型,在最初的一个表现周期里,模型层指标是完全看不出来的。 这就是为什么必须有一层”当天就能看”的指标——这一层就是特征层(PSI)。
原因二:模型层指标天生钝化。
AUC 是排序能力的度量,不是校准能力的度量。AUC 保持 0.72 完全可能同时发生”整体坏账率从 3% 涨到 6%”——因为你的模型依然能正确地把坏人排在好人前面,只不过群体的基础违约率整体上移了。这时候 AUC 不会给你任何警告。
这两个原因合起来指向一个结论:只盯 AUC 和 KS 的监控体系,在漂移发生的整个早期阶段是失效的。
二、核心方法:三层监控 + 分层频率
监控必须分三层,每层的指标、频率、责任人不同。
第一层:数据与特征层(当天可见)
这是最早能报警的一层,也是最容易被跳过的。
- 每个特征的 PSI(Population Stability Index,群体稳定性指数);
- 每个第三方数据源的调用成功率与空值率;
- 关键字段的缺失率、异常值率、取值范围。
为什么这层最关键? 因为特征是模型的输入,输入变了,输出不可能不变。而且特征层的观测不需要等表现期——今天放款,今天的特征分布就能和参考期比。
监控频率:按日。
第二层:决策层(次日可见)
看的是审批系统的输出分布,而不是模型本身。
- 通过率(整体 + 分渠道、分产品、分客群);
- 各分数段的人群占比(分数分布是否整体偏移);
- 平均额度、平均定价、期限分布;
- 规则命中率(哪条规则突然开始大量拦截);
- 人工复核转单率。
这一层的价值在于:模型的问题往往先表现为”规则命中率异常”。 比如某条”近 3 月申请次数 > N 次”的规则突然命中率翻倍,根因可能不是客群变坏,而是新导流渠道带来的一批客——这件事 PSI 会报警,但决策层的规则命中率数据能告诉你”是哪条规则在响”,定位速度快得多。
监控频率:按日或按周。
第三层:模型与资产层(滞后可见)
这是最终结果层,但也是最滞后的一层。
- KS / AUC / Gini(分整体与分客群);
- 各分数段的实际违约率(校准曲线,看预测是否还准);
- 滚动率(Roll Rate)、账龄(Vintage)曲线;
- Vintage 曲线与历史同期的偏离度。
关键点:这一层要做”分群”而不只做”整体”。 整体 KS 保持稳定、但某个渠道的 KS 从 0.35 掉到 0.20,这种隐性风险只有分群看才能发现。
监控频率:按周(早期信号)、按月(正式评估)。
分层频率的完整排班表
这个排班表的设计逻辑是”从快到慢、从因到果”。 特征层当天响,决策层次日响,结果层要等一个表现周期。谁先响,就往谁那里查根因。
三、实操步骤:PSI 与 KS 的正确用法和边界
步骤一:先把分箱断点锁死。
PSI 的计算依赖分箱,而分箱断点如果在每次计算时都重新生成,PSI 就变成了一个会自己漂移的数字,失去监控意义。
正确做法:
- 建模时确定分箱断点(等频或等距,按业务含义调整);
- 把这个断点固化下来,作为监控计算的唯一基准;
- 用训练期或上线初期的一个稳定窗口作为参考期(reference period);
- 之后所有 PSI 都用同一套断点、同一个参考期计算。
常见错误: 每个月重新分箱算 PSI,然后发现 PSI 永远小于 0.05——这是个自证清白的循环,它永远报不出警。
步骤二:记住 PSI 的行业阈值及其含义。
三个必须注意的边界:
第一,PSI 是”分布差异”的度量,不是”风险差异”的度量。 一个特征 PSI 从 0.05 涨到 0.30,未必意味着风险上升——可能是你的营销渠道变了,来了更多年轻客户,年龄分布偏移了,但这些年轻客户的真实表现可能没变。所以 PSI 报警 ≠ 模型必须重训,它只是说”输入变了,去查原因”。
第二,整体 PSI 正常,不代表分群 PSI 正常。 必须按渠道、地区、产品、客群分群分别算 PSI。 一个关键分群严重漂移但整体看不出来的情况,是最典型的隐性风险。
第三,样本量太小时 PSI 不可靠。 一个新上线的小渠道,几百笔申请算出来的 PSI 会剧烈波动。 对这类分群要设最小样本量门槛,低于门槛只做观察不做判断。
步骤三:搞清 KS 的适用边界——它最容易被误用。
KS(Kolmogorov-Smirnov)衡量的是好坏样本累计分布的最大间隔,是模型区分能力的经典指标。行内常见的经验线:
- A 卡(申请评分卡)KS ≥ 0.30 通常可接受;
- 0.20–0.30 偏低但在样本不足或客群复杂时可以容忍;
- < 0.20 通常说明模型区分能力不足。
但 KS 有三个必须知道的坑:
第一,KS 对大样本极其敏感。 KS 检验本质上是个统计检验,样本量越大,越容易显著。 在百万级的放款量下,KS 的微小变化几乎总会”显著”——所以不能把 KS 检验的 p 值当唯一判据,要看的是 KS 的绝对水平与变化趋势。
第二,KS 对中间段不敏感。 KS 取的是最大间隔,它只反映”最能分开的那一点”,对分数中段的区分能力视而不见。 而恰恰是中间段决定了你的通过率与坏账的权衡。所以 KS 必须配合校准曲线一起看。
第三,KS 不能跨客群、跨产品直接比较。 一个产品的 KS 是 0.35,另一个产品是 0.28,不代表第一个模型更好——因为两者的坏样本定义、客群同质性、表现期定义都不同。只做”同一模型的时间序列对比”,不做”跨模型横向比较”。
步骤四:AUC 与 Gini 的定位。
- AUC 0.7–0.8 在信贷场景通常算可接受(0.5 是随机,1.0 是完美);
- Gini = 2 × AUC − 1,是同一个信息的另一种表达;
- AUC 的最大问题是它衡量排序、不衡量校准(前面讲过),所以必须配合”分数段实际违约率 vs 预测违约率”的校准曲线一起看。
如果发现 AUC 稳定但整体违约率上移,正确动作不是重训模型,而是调整决策阈值或策略参数——因为模型排序能力还在,只是”分数对应的风险水平”变了。这个区分非常重要:重训模型成本高、风险大,调阈值成本低、可控。
步骤五:定义报警之后的分级响应动作。
这是整套监控里最容易缺失的一环。 “报警了怎么办”如果没有预先定义,实际发生时团队会陷入两种极端:要么过度反应(一报警就停模型),要么完全不反应(等下周评估会再说)。
建议的三级响应:
一级(PSI 0.1–0.25,或单个分群偏移):
- 定位:是哪个特征、哪个分群、从什么时间点开始;
- 判断:是客群真的变了,还是数据源口径变了?
- 动作:观察 + 加频监控,不改变模型,但把该特征/分群加入重点观察名单;
- 时限:24 小时内出结论。
二级(PSI ≥ 0.25,或多个特征同时偏移):
- 动作:该特征从模型剔除或重新分箱,用剩余特征继续跑;
- 如果剔除后 KS 掉幅超过 10%,说明该特征重要性过高,需要启动”应急规则”顶位;
- 同时准备重训方案,但不立即上线;
- 时限:72 小时内完成评估。
三级(KS 掉幅超 20%,或校准曲线明显偏离):
- 动作:启动受管重训(managed retrain),走完整的模型开发与验证流程;
- 过渡期用规则模型或简化模型顶位,不允许”无模型裸奔”;
- 必须留出灰度切换与回滚能力;
- 时限:按模型开发流程走,但要明确责任人。
步骤六:把”重训”变成受管流程,而不是救火动作。
很多团队的重训是”出事之后赶紧重训一版”,这是最危险的模式——因为救火时的重训通常会:用最新的数据、跳过验证、快速上线,结果引入新的偏差。
受管重训的标准动作:
- 触发条件明确(如 KS 掉幅、PSI 超标持续 N 天、Vintage 偏离阈值);
- 数据窗口明确(用多长的观察期、什么时间的样本);
- 验证标准前置(新模型的 KS、PSI、校准必须达到什么水平才算通过);
- 回归测试(新模型在历史样本上的表现,与旧模型对比);
- 灰度切换(新旧并行一段时间,按流量比例切分);
- 回滚预案(切回旧模型的成本与时间)。
第 6 条最容易被忽略,但它决定了你”敢不敢切”。
步骤七:别忘了公平性与合规监控。
模型监控里还有一层常被遗漏的:分群通过率对比。按性别、地区、年龄段的通过率差异必须定期检查,并对每一条产生差异的规则记录业务理由。
这不是”做给监管看的形式”——地理变量、年龄变量在信贷里都有正当的业务理由(成本、可达性、收入结构),但它们也最容易被认定为歧视性变量。 每一个这样的变量,都要能回答”为什么它在这里是合理的”。
监控频率:按季度,或在上线新模型时必做。
四、与海外现金贷场景结合
第一,海外现金贷的表现期短,这是监控上的结构性优势。
30 天期的产品,M1 就能看到第一波表现,60–90 天基本能判断。 相比信用卡动辄 12 个月的表现期,海外现金贷的”反馈闭环”短得多——这意味着你的监控迭代速度可以快得多,模型可以按周迭代而不是按季度。
但优势要用起来需要前提:Vintage 分析必须做对。 由于放款量在快速变化,直接看”当月坏账率”会被账龄结构污染——必须用 Vintage 曲线(按放款月份分组,看同一账龄的表现),才能把”客群变坏”和”账龄变浅”区分开。
第二,无征信常态让特征层监控变得更重要。
在替代数据(钱包流水、话费、设备)为主的市场,数据源的稳定性比征信局的稳定性差得多——接口变更、字段口径调整、覆盖率波动都是常事。 所以数据源监控(成功率、空值率、字段分布)在海外场景里不是”锦上添花”,是核心监控项。
具体建议:每个数据源单独建一张监控看板,把”调用成功率”和”空值率”的变化与业务指标对齐看。 当某个数据源的可用性下降时,那段时间的申请走了降级路径,这批样本的风险分布与正常期不同——如果没记录,事后会污染训练集。
第三,多国多市场意味着要按市场分群监控。
同一套模型跑在多个国家时,绝对不能用整体指标盯。 每个市场的语言、收入结构、支付通道、监管环境都不同,PSI 必须按市场分别计算,KS 也必须按市场分别评估。
更实际的做法是”每个市场一套参考期”——不要用一个国家的分布作为另一个国家的基准。
第四,渠道变化是海外市场 PSI 报警的头号原因。
海外现金贷的获客高度依赖渠道合作(导流平台、代理商、钱包内嵌入口)。 一个新渠道上线,会立刻带来一批分布完全不同的客群——这时候 PSI 会报警,但这不是模型坏了,是渠道结构变了。
正确动作:把”渠道”作为 PSI 分群的第一维度,新渠道单独设参考期(用该渠道自己上线初期的分布),并且给新渠道单独设最小样本量门槛。
第五,节假日与季节性必须显式建模进监控基线。
海外市场的收入季节性很强(作物周期、宗教节日、开学季)。 固定用一个”月度基准”去比对,会在旺季系统性误报、在淡季系统性漏报。
做法:监控基线要按月份/季节做调整,或者用”同比”(YoY)而不是”环比”(MoM)来做分布对比。
第六,小团队要接受”三层监控不可能全做满”,但第一层必须做。
如果只有一两个人做风控,监控体系的正确优先级是:
- 特征与数据源层 PSI(按日)——必做,成本最低、预警最早;
- 决策层通过率与规则命中率(按日)——必做,几乎不增加开发量;
- 模型层 KS/AUC(按月)——可做,但必须配合分群;
- 校准曲线与 Vintage(按月)——可做,是调阈值与重训的依据;
- 公平性对比(按季)——可做,合规需要时补。
不要因为”做不到全套”就一层都不做。 第一层和第二层加起来的工作量,通常不超过一个数据看板,但能覆盖 80% 的早期预警价值。
小结
模型监控的正确结构是:
- 分三层——数据与特征层(当天)、决策层(次日)、模型与资产层(滞后);
- PSI 断点必须锁死在参考期——每次重算分箱等于自证清白;
- 看 PSI 要分群——整体正常不代表分群正常;
- 记住 PSI 阈值——< 0.1 稳、0.1–0.25 关注、≥ 0.25 处理;
- KS 不能当唯一判据——大样本下几乎总会显著,且对中间段不敏感;
- AUC 正常不代表健康——它衡量排序不衡量校准,整体违约率上移时它不会报警;
- 报警要有分级响应——一级观察、二级剔特征、三级受管重训;
- 重训必须是受管流程——触发条件、数据窗口、验证标准、灰度、回滚,一个都不能少;
- 海外场景按市场、按渠道分群监控——渠道变化是 PSI 报警的头号原因;
- 小团队也要做第一层——特征层 PSI 成本最低、预警最早。
最后一句总结:监控的目的不是”证明模型是好的”,而是”在模型变坏的时候第一时间知道”。 一个能在 PSI 报警当天就定位到具体特征和分群的团队,和一个要等季度评估才发现模型失灵的团队,差距不在模型水平,而在反应速度——而反应速度就是海外现金贷这种短周期业务里最贵的资产。
下一篇,我们讲欺诈这条独立的战线:反欺诈模型与设备指纹——为什么欺诈模型不能和信用模型共用一个分数,以及设备指纹在共享设备市场该怎么用。
|
扫码加入交流群 |
长按识别关注公众号 |
卡锁
