KS 和 AUC:它们之间到底有没有数学关系
2026-6-14
| 2026-6-16
字数 2359阅读时长 6 分钟
category
风控建模
date
Jun 14, 2026
Published
Published
slug
ks-auc-math-relationship
status 1
status 1
summary
KS 和 AUC 之间有没有数学约束关系?本文从 ROC 曲线、Mann-Whitney U 统计量等角度深入分析。
tags
风控
建模
信贷风控
type
Post
原文来源: 微信公众号「风控建模」| 作者:小溪1005 | 发布于 2026-06-14
原文链接: https://mp.weixin.qq.com/s/6CaTkC2MnoYqMhggcGeH2g

前两天群里有朋友问:
KS 和 AUC 之间,有没有数学上的约束关系?
第一反应是:应该有吧,它俩不都是从同一组 TPR、FPR 里算出来的吗?
后来有位群友给出了挺长的一段分析,观点听起来很有数学味道:
"ROC 的 TPR 和 KS 的 TPR 映射不同""范围公式暗含连续、凸的理想假设""数据离散就失效""代码说明不了什么""推导第一步就错了"
这段分析其实结论里有不少对的地方,但有几处论据,可以再一起商榷一下。今天就借这个话题,把 ROC、AUC、KS 三者的关系捋一捋。

一、"ROC 的 TPR 和 KS 的 TPR 映射不同",这点可以再想想

对方的核心观点之一是:
"ROC 的 TPR 非 KS 的 TPR,只是恰好公式和排序一致罢了,映射不一样。""国内一直把两个 TPR 等同,推导第一步就错了。"
这里其实有个小小的循环:既然已经承认"公式和排序一致",那结论也就包含在前提里了。
因为 ROC 和 KS 用的,本来就是同一组 (TPR, FPR)
  • ROC 曲线:以 FPR 为横轴、TPR 为纵轴
  • KS 曲线:以阈值(或分位数)为横轴,把 TPR、FPR 两条线画出来
同一组数,换两种坐标画出来而已。给定阈值 是唯一确定的;ROC 不过是把横轴从"阈值"换成了"FPR",本质是一次坐标变换
小结: 并不存在"两个不同的 TPR",它们是同一份数据的两种画法。

二、"AUC、KS 需要 ROC 连续且凸",这里的因果,或许说反了

很多人对 AUC 的第一印象是"曲线下面积",于是自然联想到"面积 → 积分 → 需要连续"。
但 AUC 还有一个等价、而且更本质的定义:
这就是 Mann–Whitney U 统计量,它本来就是为离散、有限样本设计的非参数统计量,靠求和计算,并不需要连续性,也不需要可积。
至于"凸":ROC 凸不凸,反映的是模型排序质量的好坏(有没有局部矛盾),它和"公式能不能算"是两件事。一条带凹陷、带平局斜段的 ROC,AUC 和 KS 照样能精确算出来
小结: 连续和凸,可能并不是 AUC/KS 的前提——恰恰相反,它们本来就是为离散数据准备的。

三、"数据离散/有平局/有跳跃,公式就失效"——可以用代码验证

对方提到:"数据有限、分数离散、排序有平局或跳跃,假设被破坏,公式自然失效。"
这个判断对不对,其实很容易验证。构造一组比较极端的数据:大量平局、明显跳跃、排序还带矛盾。
运行结果:
AUC、KS 都能算出确定、可复现的数值。平局再多、跳跃再大,sklearn 照样能算——因为它算的本来就是离散公式。
关于"代码说明不了什么"这句,有点可惜,因为代码恰恰是最能把问题说清楚的方式:如果"公式因离散而失效"这个判断成立,那应该能举出一组让 AUC 算不出来的离散数据。如果找不到,"失效"这个说法可能就需要重新斟酌了。

四、"AUC 与 KS 走势接近只是经验现象"——对,但原因可能不太一样

对方说:"AUC 与 KS 走势接近只是模型好时的经验现象,不是数学必然。""两者不是恒等关系"——这句完全同意。
但背后的原因,可能不是"连续性失效",而是更朴素的一点:
指标
本质
度量什么
AUC
整条 ROC 下的**面积**
累积的整体排序能力
KS
**单点极值**
正负分布的最大分离度
一个是面积(累积量),一个是单点极值。两个度量维度不同的统计量,本来就不该恒等——哪怕数据完美连续,AUC 和 KS 也不会相等。这跟离散、平局其实关系不大。
不过,"不恒等"也不等于"没关系"。事实上,二者之间存在一个严格成立的上界约束
也就是说,KS 是 ROC 上某一点到对角线的最大距离,AUC 是整条曲线的累积,两者在几何上被同一条 ROC 牢牢绑定着,并不是"毫无关联的两回事"。

五、"分箱 KS 更稳健",这个结论很对,原因可以补充一下

对方说:"只取最大值意义有限,金融行业要用 10/20 等频分箱评估 KS 才稳健。"
这个结论完全赞同,实务中确实是这么做的。只是原因和"连续性假设"关系不大,更多是两个很实在的考虑:
  • 统计稳健性:单点最大 KS 是一个点估计,对样本扰动、异常值比较敏感,换一批样本可能就跳了;分箱看的是整体分布,更稳。
  • 可监控性:风控更关心模型在各个分数段是否稳定(配合 PSI 一起监控),分箱天然契合这个需求;而单点 KS 把信息压成一个数字,丢掉了分段视角。
更准确的表述可能是:
"单点 KS 对扰动敏感、且丢失分段信息,因此工程上用等频分箱评估分数分布的整体稳定性。"
这样说既准确,也不需要借助"连续性假设""可积性"这些其实用不上的概念。

六、小结

观点
看法
ROC 的 TPR ≠ KS 的 TPR,映射不同
🤔 可能是同一组数据的两种画法
AUC/KS 需要连续、凸
🤔 因果或许说反了,二者本为离散设计
数据离散/平局使公式失效
🤔 可用代码验证,sklearn 照算不误
代码说明不了什么
🤔 代码恰恰最能说清问题
AUC 与 KS 不恒等
✅ 对,原因是"面积 vs 极值"
分箱 KS 更稳健
✅ 很对,源于统计稳健性 + 可监控性
高风险场景要更严谨
✅ 完全认同,方向可微调
写这篇文章,并不是想争个对错。那位朋友的工程直觉其实很好——分箱评估 KS、强调稳健性、提醒高风险场景要谨慎,这些都很对,也是大家平时在用的做法。
只是想补充一点:这些好结论,用准确的数学语言去表达,会更站得住脚。
KS 和 AUC 确实被同一条 ROC 曲线约束着(,严格成立、不依赖连续性);但它们也确实不是一一对应,这两点并不矛盾。

附:上界不等式的严格推导

给感兴趣的朋友。这个上界严格、紧、且离散连续通吃
命题: 对任意 ROC 曲线(离散或连续均可),有
证明:
记 ROC 为单调不减函数 ,满足
由 KS 定义,对所有 ,同时显然
两条上界的交点在 处,于是:
  • 第一段积分:
  • 第二段积分:
相加并化简即可得到:
等价形式:

本文转载自微信公众号「风控建模」,作者小溪1005,已获授权。如有不当请联系删除。
  • 风控
  • 建模
  • 信贷风控
  • Welcome to Risk FrontierVibe Coding 核心心法:管 Agent,如带团队(转载)
    Loading...