跳转至

将风险概率转换为信用分数

原文地址:https://mp.weixin.qq.com/s/P9QBHatFDTBOycv68dSCeA

模型开发流程中的最后环节,我们需要完成如下事情:

  1. 如何将风险概率转换为信用评分
  2. 变量转换为评分:逻辑回归模型需要做这样的转换,也就是我们常说的评分卡形式

1. 为什么要把概率变成分数?

想象一下,如果风控模型直接告诉你:“你的违约概率是 4.67%”。你可能会一头雾水:这算高还是算低?策略团队也很难根据一串小数点来制定 “通过/拒绝” 的准入策略和信用与额度策略。

因此,我们需要一个更直观、稳定、可操作的体系来替代概率,这就是信用评分系统,它的三大优势是:

  1. 直观性:分数越高,信用越好。600 分比 300 分好更容易直观理解。
  2. 稳定性:概率容易受多种因素影响,如宏观经济影响(整体违约率升高,所有人概率都升高),但通过数学变换后的分数体系可以保持稳定,便于长期比较。
  3. 可解释性:可以清楚地告诉用户,“因为你有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}) $: 取对数是为了压缩尺度,让分数变化更平稳。
  • AB:这是两个关键常数,它们的设定决定了评分体系的刻度。
    • A 是基础分:通常设定在某一基准点上。
    • B 是刻度因子:表示 odds 每增加一倍,分数增加多少分。

计算 A、B 两个参数值首先需人为确定两个指标:

  1. 确定基准点:即 好坏比(odds)= N 时,设定的评分对应是多少。例如 好坏比(odds)=20:1 时,F=500,即设定违约概率=4.76%(odds=20:1)时,对应的评分等于 500 分。

  2. 确定刻度因子(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-系数 这条路径,将每一个特征对最终信用分数的贡献清晰地量化出来。

  • 概率 → 分数:通过一个稳定的数学公式,实现了风险的量化与直观化。
  • 变量 → 分数:通过评分卡,将每一个特征对风险的影响透明化、可解释化。

最终形成的评分卡,不仅是一种高效的风险决策工具,更是一份面向业务方的 “信用说明书”,策略团队人员可以根据评分划分拒绝线与通过线;同时也可以清楚地告诉业务方:客户信用是如何被评估的,信用评分低是受哪些方面的影响,评分卡可以一目了然的呈现出来。

当然,风控评分模型在每一家机构都是属于机密性的文档,一般不对风控外的其他个人提供和展示。

评分模型开发流程到这里就差不多结束了,后续再慢慢更新评分模型监控、机器学习算法、风险策略分析等,以及模型开发和模型指标代码。