- 累计分布 最大值和最小值的差值
- 是一种非参检验
统计校验功效比较低 保守 本该拒接0假设但是接受了它
单样本和双样本检验分布的检验

值得注意的是虽然累计分布曲线的性状会随着对数据做转换处理而改变(如log转换),但是D值的大小是不会变的。
使用 KS检验来检验模型稳定性 是一个在模型监控、风险控制和模型验证中常见的手段。这个过程的核心思路是:比较模型在不同时间或不同样本群体下的预测分布或评分分布差异。
🎯 稳定性检验的目标
你要验证模型在“不同样本”中是否仍然保持一致的评分分布行为(即模型的分数能区分好坏客户的能力是否稳定)。
常见的对比维度包括:
- 开发期 vs. 运行期(生产环境)
- 不同时间段(如月份)
- 不同人群(地域、性别、年龄等)
✅ 方法一:基于预测分布的两样本 KS 检验
使用 两样本 KS检验(Kolmogorov–Smirnov Test) 比较两个样本的预测得分分布是否一致。
- 获取两个时间段/样本组的模型预测得分(例如
train_predvsprod_pred)。 - 使用
scipy.stats.ks_2samp进行 KS 检验。 - 观察 KS 统计量和 p-value。
✅ 方法二:按标签分组分别绘制 KS 曲线(性能比较)
- 比较不同时间段/群体中模型区分能力的变化;
- 分别计算 KS 值(不是ks检验);
- 若某一组的KS值显著降低,说明模型区分能力退化。
如果 KS 值明显下降,说明模型在新数据上的效果变差,存在“性能漂移”或样本分布变化。
✅ 方法三:结合 PSI(Population Stability Index)使用
- PSI 和 KS 经常一起使用;
- PSI 衡量特征分布的漂移;
- KS 衡量模型区分能力的稳定性。
| 方法 | 对象 | 工具 | 指标含义 |
|---|---|---|---|
| KS检验(统计) | 两组预测得分 | ks_2samp | 检验两组得分是否来自同一分布(稳定性) |
| KS值比较 | 多时间段或人群预测 | 自定义KS函数 | 比较不同时间点模型区分能力(TPR - FPR)最大差 |
| PSI | 特征或预测分布 | 自实现 | 衡量特征分布或输出分布随时间是否变化 |