信用评分模型详解(上)之 评分卡模型
信用评分模型详解(上)之 评分卡模型
信用评分模型详解(下)之 信用评分系统搭建
介绍完分箱算法后,就不得不介绍一下评分卡模型了。评分卡模型由于在业务层面具有良好的解释性,在数据挖掘方面(如风控)仍深受欢迎。
前提假设
目前,主流的评分卡模型仍以逻辑回归模型为主要模型。假设客户违约的概率为ppp,则正常的概率为1−p1-p1−p。由此可以得到违约几率:
Odds=p1−pOdds = \frac{p} {1-p}Odds=1−pp
此时,客户的违约概率ppp可以表示为:
p=Odds1+Oddsp = \frac{Odds}{1+Odds}p=1+OddsOdds
评分卡设定的分值刻度可以通过将分值表示为几率对数的线性表达式来定义,即:
Score=A±B∗log(Odds)Score = A \pm B*log(Odds)Score=A±B∗log(Odds)
其中,A和B都是常数且(a>=0, b>=0)。当希望违约几率越低,得分越高时,取负号。通常情况下,这是分值的理想变动方向,即高分值代表低风险,低分值代表高风险。 所以,后面均讨论这种情况。
逻辑回归模型
对于逻辑回归模型,其目标函数为:
p=hθ(x)=g(x)=11+e(−θTX)p = h_\theta(x) = g(x) = \frac{1}{1+e^{(-\theta^TX)}}p=hθ(x)=g(x)=1+e(−θTX)1
则计算几率的表达式如下:
ln(Odds)=ln(p1−p)=θ0+θ1∗x1+...+θn∗xnln(Odds) = ln(\frac{p}{1-p}) = \theta_0 + \theta_1*x_1 + ...+ \theta_n*x_nln(Odds)=ln(1−pp)=θ0+θ1∗x1+...+θn∗xn
其中,模型参数θ0,θ1,...,θn\theta_0, \theta_1, ..., \theta_nθ0,θ1,...,θn可以通过逻辑回归模型参数拟合模型得到。
评分卡构建
式中的常数A、B的值可以通过将两个已知或假设的分值计算得到。通常情况下,需要设定两个假设:
(1) 给定某个指定的几率β0\beta_0β0,其对应的分值为基础分值P0P_0P0
(2)确定几率翻倍分值PDOPDOPDO。即当几率β0\beta_0β0翻倍时,其对应的预期分值为P0+PDOP_0+PDOP0+PDO
根据上面的假设,可以将这两组点(β0,P0(\beta_0, P_0(β0,P0),(2β0,P0+PDO)(2\beta_0, P_0+PDO)(2β0,P0+PDO)带入方程中,可以得到如下两个等式:
P0=A−Bln(β0)P_0 = A - Bln(\beta_0)P0=A−Bln(β0)
P0+PDO=A−Bln(2∗β0)P_0+PDO = A - Bln(2*\beta_0)P0+PDO=A−Bln(2∗β0)
解方程可得:
A=P0+B∗ln(β0)A = P_0 + B*ln(\beta_0)A=P0+B∗ln(β0)
B=−PDO/ln2B = -PDO/ln2B=−PDO/ln2
确定了评分卡刻度参数A和B以后,就可以计算比率和违约概率,以及对应的分值。
由上面的公式可知,评分卡的分值可表达为:
Score=A−B∗(θ0+θ1∗x1+...+θn∗xn)Score = A - B*(\theta_0 + \theta_1*x_1 + ...+ \theta_n*x_n)Score=A−B∗(θ0+θ1∗x1+...+θn∗xn)
式中,变量θ0...θn\theta_0 ... \theta_nθ0...θn是出现在最终模型中的自变量,即为入模指标。
由于评分卡模型要求所有特征都经过WOE编码,所以,此时可以将自变量中的每一个值都写成如下形式:
Score=(A−B∗θ0)−(B∗θ1∗WOE11)−...(B∗θ2∗WOE21)−...Score = (A-B*\theta_0) - (B*\theta_1*WOE_{11}) - ... (B*\theta_2*WOE_{21}) - ...Score=(A−B∗θ0)−(B∗θ1∗WOE11)−...(B∗θ2∗WOE21)−...
此式即为最终的评分卡公式。如果x1...xnx_1 ... x_nx1...xn取不同的值并计算WOE值,式中表示的标准评分卡格式如下表所示:
变量 | WOE值 | 分值 |
---|---|---|
基础分值 | ......... | (A−B∗θ0)(A-B*\theta_0)(A−B∗θ0) |
x1x_1x1 | 1 | −(B∗θ1∗WOE11)-(B*\theta_1*WOE_{11})−(B∗θ1∗WOE11) |
x1x_1x1 | 2 | −(B∗θ1∗WOE12)-(B*\theta_1*WOE_{12})−(B∗θ1∗WOE12) |
x1x_1x1 | ......... | ......... |
x1x_1x1 | k1k_1k1 | −(B∗θ1∗WOE1k1)-(B*\theta_1*WOE_{1k_1})−(B∗θ1∗WOE1k1) |
x2x_2x2 | 1 | −(B∗θ2∗WOE21)-(B*\theta_2*WOE_{21})−(B∗θ2∗WOE21) |
x2x_2x2 | 2 | −(B∗θ2∗WOE22)-(B*\theta_2*WOE_{22})−(B∗θ2∗WOE22) |
x2x_2x2 | ......... | ......... |
x2x_2x2 | k2k_2k2 | −(B∗θ2∗WOE2k2)-(B*\theta_2*WOE_{2k_2})−(B∗θ2∗WOE2k2) |
......... | ......... | ......... |
xnx_nxn | 1 | −(B∗θn∗WOEn1)-(B*\theta_n*WOE_{n1})−(B∗θn∗WOEn1) |
xnx_nxn | 2 | −(B∗θn∗WOEn2)-(B*\theta_n*WOE_{n2})−(B∗θn∗WOEn2) |
xnx_nxn | ......... | ......... |
xnx_nxn | knk_nkn | −(B∗θn∗WOEnkn)-(B*\theta_n*WOE_{nk_n})−(B∗θn∗WOEnkn) |
由此构建的评分卡系统如下所示:
信用评分模型详解(上)之 评分卡模型相关推荐
- OSI七层模型详解——物理层
在阅读本篇文章之前建议您了解信道及工作栈的基本原理,详情可以观看OSI七层模型详解--信道与协议栈 OSI模型概述 OSI全称为"Open System Interconnection&qu ...
- Reactor 模型详解
研究背景 其实我们在研究netty的时候我们必定绕不过NIO的,也必定必须研究一下这个Reactor模型的,如果不进行这个Reactor模型和NIO知识点的研究,那么我们必定掌握不了Netty的精髓, ...
- 【后端开发】Reactor 模型详解
研究背景 其实我们在研究netty的时候我们必定绕不过NIO的,也必定必须研究一下这个Reactor模型的,如果不进行这个Reactor模型和NIO知识点的研究,那么我们必定掌握不了Netty的精髓, ...
- EcoVadis认证的评分标准详解
[EcoVadis认证的评分标准详解] EcoVadis是一个帮助企业评估其供货商的环境和社会责任表现的平台,通过评估供应商的CSR表现提供改善指导,帮助企业提升业务水平,使供应商具备国际的企业竞争力 ...
- Transformer 模型详解
Transformer 是 Google 的团队在 2017 年提出的一种 NLP 经典模型,现在比较火热的 Bert 也是基于 Transformer.Transformer 模型使用了 Self- ...
- TensorFlow Wide And Deep 模型详解与应用 TensorFlow Wide-And-Deep 阅读344 作者简介:汪剑,现在在出门问问负责推荐与个性化。曾在微软雅虎工作,
TensorFlow Wide And Deep 模型详解与应用 TensorFlow Wide-And-Deep 阅读344 作者简介:汪剑,现在在出门问问负责推荐与个性化.曾在微软雅虎工作,从事 ...
- TensorFlow Wide And Deep 模型详解与应用
Wide and deep 模型是 TensorFlow 在 2016 年 6 月左右发布的一类用于分类和回归的模型,并应用到了 Google Play 的应用推荐中 [1].wide and dee ...
- 数学建模——支持向量机模型详解Python代码
数学建模--支持向量机模型详解Python代码 from numpy import * import random import matplotlib.pyplot as plt import num ...
- 数学建模——一维、二维插值模型详解Python代码
数学建模--一维.二维插值模型详解Python代码 一.一维插值 # -*-coding:utf-8 -*- import numpy as np from scipy import interpol ...
- 数学建模_随机森林分类模型详解Python代码
数学建模_随机森林分类模型详解Python代码 随机森林需要调整的参数有: (1) 决策树的个数 (2) 特征属性的个数 (3) 递归次数(即决策树的深度)''' from numpy import ...
最新文章
- 备库中ORA-00600错误的简单修复
- 基于3D深度视觉的人体姿态估计算法
- 第十五届全国大学生智能汽车竞赛中小学生赛题组获奖队伍信息
- 牛X!Eclipse 开始支持 Java 14~
- 对PostgreSQL的 ctid 的初步认识
- 前端就业之vue介绍
- Ubuntu根目录空间不足
- REVERSE-PRACTICE-CTFSHOW-7
- docker集群搭建(k8s)
- Linux开机启动程序rc.local
- 中国内镜下血管采集市场趋势报告、技术动态创新及市场预测
- 菜鸟 学注册机编写之 “序列号组合”
- 转】 神奇图片解析之旋转的舞女
- 桌面计算机打开无响应,在win7系统中桌面无响应的几种解决方法
- 关于opencv的rows和cols的理解
- 岁月的剪影【五月世界末日】
- android自动夜间模式,Android实现日夜间模式的深入理解
- 使用paypal-php-sdk开发php国际支付
- 九龙证券|人工智能+国产软件+智慧城市概念股火了,欧洲资管巨头大举抄底
- 关于Junit测试出现Class not found: “ “这个问题如何解决