将风险概率转换为信用分数¶
模型开发流程中的最后环节,我们需要完成如下事情:
- 如何将风险概率转换为信用评分
- 变量转换为评分:逻辑回归模型需要做这样的转换,也就是我们常说的评分卡形式
1. 为什么要把概率变成分数?¶
想象一下,如果风控模型直接告诉你:“你的违约概率是 4.67%”。你可能会一头雾水:这算高还是算低?策略团队也很难根据一串小数点来制定 “通过/拒绝” 的准入策略和信用与额度策略。
因此,我们需要一个更直观、稳定、可操作的体系来替代概率,这就是信用评分系统,它的三大优势是:
- 直观性:分数越高,信用越好。600 分比 300 分好更容易直观理解。
- 稳定性:概率容易受多种因素影响,如宏观经济影响(整体违约率升高,所有人概率都升高),但通过数学变换后的分数体系可以保持稳定,便于长期比较。
- 可解释性:可以清楚地告诉用户,“因为你有XXX情况,所以扣了XX分”,更容易解释。
2. 从概率到基础分数:评分卡刻度¶
模型计算出来的是一个概率值,即违约概率(PD, Probability of Default),比如 p=4%。接下来我们要通过转换公式把这个概率p转换为基础分数,最常用的转换公式是线性变换: $$ \text{Score} = A + B * \log(\text{odds}) $$ 评分转换公式有时候也会写成: $$ \text{Score} = A - B * \log(\text{odds}) $$ 的形式,即 \(B\) 的符号为负,这取决于 odds 的计算,计算不同符号不同。
Odds 是好坏比 ${(1 – p)}/å{p} $,即好客户比坏客户。比如 odds = 20:1
,即 20 个好客户对应 1 个坏客户,违约概率 p = 1 / 21 = 4.76%
,表示好客户的可能性是坏客户可能性的 20 倍,同时也意味着 odds 越高风险越低。
前面有说过,参数 B
的符号受 Odds 计算的影响:
- 如果
odds=好客户/坏客户
,那参数B
的符号就为正,即 \(\text{Score} = A + B * \log(\text{odds})\) ; - 如果
odds=坏客户/好客户
,那参数B
的符合就为负,即 \(\text{Score} = A - B * \log(\text{odds})\)。
两种方法只是符号上的区别,都可以应用。只是在计算 WOE 值时,通常考虑 WOE 值越大,表示好客户越多,计算方法是: $$ \text{WOE}= \log(\text{好客户比例/坏客户比例}) $$,为了保持与 WOE 的方向一致,建议采用好/坏的方法,即符号为正的方法。
- $ \log(\text{odds}) $: 取对数是为了压缩尺度,让分数变化更平稳。
A
和B
:这是两个关键常数,它们的设定决定了评分体系的刻度。- A 是基础分:通常设定在某一基准点上。
- B 是刻度因子:表示 odds 每增加一倍,分数增加多少分。
计算 A、B 两个参数值首先需人为确定两个指标:
-
确定基准点:即
好坏比(odds)= N
时,设定的评分对应是多少。例如好坏比(odds)=20:1
时,F=500,即设定违约概率=4.76%(odds=20:1)时,对应的评分等于 500 分。 -
确定刻度因子(PDO):表示 odds 翻倍时分数增加多少分。例如
PDO=20
表示 odds 翻倍时,分数增加 20 分。比如odds=20:1
时,对应的评分是 500 分,那么当odds=40:1
时,即 odds 已翻倍,是对应 500 分时 odds 的两倍,此时对应的评分即为 500+20=520,这就是odds=40:1
时对应的分数。
人为确定这两个指标后,代入评分计算公式可以得到:
- $ 500 = A + B * \log(20/1) $
- $ 520 = A + B * \log(40/1) $
通过以上二元一次方程,可以求解参数 A 和 B 的值如下:
- \(B = \text{PDO} / \log(2)\)
- \(A = F – B * \log(\text{odds})\)
根据以上的设定,即 odds=好坏比=20:1
时,对应的评分是 500 分,odds 翻倍的分数是 20 分(PDO),可计算A和B的值如下:
- \(B = \text{PDO} / \log(2) = 20 / \log(2) = 28.85\)
- \(A = F – B * \log(\text{odds}) = 500 – 28.85* \log(20/1)=413.54\)
所以,评分转换公式为:$ \text{Score}=413.54 + 28.85 * \log(\text{odds}) $,其中 \(\text{odds} = (1 – p) / p\),其中 \(p\) 为违约概率。
以上是概率转评分的转换公式,逻辑回归模型和机器学习模型得到的概率值,都可以通过这种方式转换为评分的形式,但是逻辑回归模型还可以对每一个变量转换为评分,得到每一个变量的评分卡。
3. 从变量到分数:解释每一项信息如何影响分数¶
上面的基础分数是模型综合考虑所有信息后得出的总分数,但风控模型更强大的地方在于,它能告诉你每一项信息(变量)对你分数的具体贡献,这就是 “变量转评分”,通常通过评分卡来实现。
评分卡看起来就像一张长长的表格,每一项信息都有对应的得分。举个例子:假设“年龄”是一个预测能力很强的变量,转评分形式如下:
年龄分箱 | Odds | WOE | 分数贡献 |
---|---|---|---|
年龄 <= 23 | 10:1 | -0.8 | -15 |
24 <= 年龄 <= 35 | 20:1 | -0.4 | -7 |
35 <= 年龄 <= 55 | 40:1 | 0.2 | +4 |
年龄 > 55 | 30:1 | 0 | 0 |
分数贡献,即每个分组会计算出一个加减分数,再与基础分比较汇总,得到总分。风险越低的分组,加分越多。
最终信用评分就是这样算出来的:
总评分 = 基础分 + (年龄得分 + 收入得分 + 历史逾期得分 + ...)
那么,基础分和各个变量的得分怎样计算,可以先来看下逻辑回归的线性模型: $$ \log(\text{Odds}) = \beta_0+ \beta_1 * \text{WOE}_1+ \beta_2 * \text{WOE}_2 + ... + \beta_n * \text{WOE}_n $$ 其中,\(\beta_0\) 是模型的截距项,\(\beta_n\) 是模型第 \(n\) 个变量的系数。基础分 (Base Score) = A + B * \(\beta_0\)
第 \(n\) 个变量的得分 (Score特征n) = (B * \(\beta_n\)) * \(\text{WOE}_n\)
还是以上面年龄为例,在上一步已经计算出 A=413.54,B=28.85。假设开发的模型截距项=1.5,年龄变量的系数=0.8。那么,基础分 (Base Score)=413.54 + 28.85 * 1.5 = 456.82,取整可以得到 457。
年龄分箱 | WOE | 计算过程 | 最终得分 |
---|---|---|---|
年龄 <= 23 | -0.8 | 28.85 * 0.8 * (-0.8) |
-18 |
24 <= 年龄 <= 35 | -0.4 | 28.85 * 0.8 * (-0.4) |
-9 |
35 <= 年龄 <= 55 | 0.2 | 28.85 * 0.8 * (0.2) |
+5 |
年龄 > 55 | 0 | 28.85 * 0.8 * (0) |
0 |
分数解读:
- 年龄在 23 岁以下的用户,WOE 为负,风险高于平均,因此会扣 18 分。
- 年龄在 24-35 岁的用户,WOE 为负,风险高于平均,也会扣 8 分。
- 年龄在 36-55 岁的用户,WOE 为正,风险低于平均,因此加 5 分。
- 年龄在 55 岁以上的用户,WOE 为 0,风险等于平均水平,不加分不减分。
其他变量的计算类似,以下是一个完整评分卡的例子:
变量转评分的过程,是一个将风控模型 “黑盒” 透明化、可解释化的过程。它通过 分箱-WOE-系数 这条路径,将每一个特征对最终信用分数的贡献清晰地量化出来。
- 概率 → 分数:通过一个稳定的数学公式,实现了风险的量化与直观化。
- 变量 → 分数:通过评分卡,将每一个特征对风险的影响透明化、可解释化。
最终形成的评分卡,不仅是一种高效的风险决策工具,更是一份面向业务方的 “信用说明书”,策略团队人员可以根据评分划分拒绝线与通过线;同时也可以清楚地告诉业务方:客户信用是如何被评估的,信用评分低是受哪些方面的影响,评分卡可以一目了然的呈现出来。
当然,风控评分模型在每一家机构都是属于机密性的文档,一般不对风控外的其他个人提供和展示。
评分模型开发流程到这里就差不多结束了,后续再慢慢更新评分模型监控、机器学习算法、风险策略分析等,以及模型开发和模型指标代码。