本文转自https://github.com/xsj0609/data_science/tree/master/ScoreCard

一、评分卡逻辑

  信贷业务评估的是客户的客户违约率(Percent of Default)即PD,是[0,1]的概率,比如2%即100个客户中有2个违约,简称为p。

  评分卡中不直接用客户违约率p,而是用违约概率与正常概率的比值,称为Odds,即
Odds=p1−pOdds=\frac{p}{1-p}Odds=1−pp​
p=Odds1+Oddsp=\frac{Odds}{1+Odds}p=1+OddsOdds​
  评分卡的背后逻辑是Odds的变动与评分变动的映射(把Odds映射为评分),分值是根据Odds的前提条件算出来的,不是人工取的。以单个客户在整张评分卡的得分的变动(比如评分从50分上升到70分)来反映Odds的变动(比如Odds从5%下降至1.25%),以及背后相对应的客户违约率PD的变动(比如从4.8%下降到1.2%)。违约率PD不直观、业务看起来不方便、不便计算,而评分就很直观、便于计算。如图所示。

二、评分映射公式

  Odds映射为评分的公式为:
Score=A−Blog(p1−p)Score=A-Blog(\frac{p}{1-p})Score=A−Blog(1−pp​)
<1> 预设条件
  要算出系数A、B的话,需要从业务角度先预设两个前提条件:

  1. 在某个特定的比率θ0θ_0θ0​设定特定的预期分值P0P_0P0​
  2. 指定比率翻番时分数的变动值(PDO)

解释:

  1. 比如根据业务经验,消费金融信贷的客户违约率4.8%算正常(θ0θ_0θ0​=Odds=5)。预设评分卡的分值为0-100分,那取预期分值P0P_0P0​为50分,并指定当Odds按双倍上下浮动时(比如2.5%或10%),分值则对应上下变动10分(比如60分或40分)。
  2. 这里=5%是根据业务经验来的,没有数学依据;
  3. 0-100分是根据做评分卡的需要来的,没有数学依据。要是想做成600-1000分的评分卡也可以,修改对应的P0P_0P0​和PDO就行;
  4. P0P_0P0​=50分是根据0-100分来的,也可以取45分或73分,不重要。重要的是随着Odds翻番变动时,分数也随之变动的联动变化体系(你翻番我就变PDO=10分)

<2> 求解A、B
  设定好θ0θ_0θ0​、P0P_0P0​、PDO后,联动变化为:Odds(θ0θ_0θ0​)对应的分值为P0P_0P0​,且翻番的Odds(2θ02θ_02θ0​)对应的分值为P0P_0P0​+PDO。则有以下两式:
P0=A−Blog(θ0)P_0=A-Blog(θ_0)P0​=A−Blog(θ0​)
P0+PDO=A−Blog(2θ0)P_0+PDO=A-Blog(2θ_0)P0​+PDO=A−Blog(2θ0​)
解出A、B为:
B=PDOlog(2)B=\frac{PDO}{log(2)}B=log(2)PDO​
A=P0+Blog(θ0)A=P_0+Blog(θ_0)A=P0​+Blog(θ0​)

按上面的解释举个例子:
设θ_0、P_0、PDO为5%、50分、10分,则
B=10ln(2)=14.43B=\frac{10}{ln(2)}=14.43B=ln(2)10​=14.43
A=50+14.43∗ln(0.05)=6.78A=50+14.43*ln(0.05)=6.78A=50+14.43∗ln(0.05)=6.78

Score=6.78−14.43∗log(p1−p)Score=6.78-14.43*log(\frac{p}{1-p})Score=6.78−14.43∗log(1−pp​)
<3> 完整的对应关系表
  按照公式,可以把所有Odds(p1−p\frac{p}{1-p}1−pp​)和客户评分、客户违约概率(PD)的对应关系算出来

  该关系对应表应该算信用评分卡的核心思想了,评分是外层表现,客户违约率是内层核心,Odds是中间层转换计算

三、Odds映射X变量

log(p1−p)=β0+β1x1+β2x2+...++βnxnlog(\frac{p}{1-p})=β_0+β_1x_1+β_2x_2+...++β_nx_nlog(1−pp​)=β0​+β1​x1​+β2​x2​+...++βn​xn​


p=11+e−βTxp=\frac{1}{1+e^-β^Tx}p=1+e−βTx1​
  这样就可以根据变量x和系数的的值计算出违约概率p了。

四、X变量细分到分组

  我们要做的是分组评分卡,X是要对应到每个分组,得到各变量分组的评分然后相加得到客户总评分的,那就还需要将X打散到各分类(用离散型数据入逻辑回归模型)。因此这里的输入X就不能是原始变量,而是原始变量分箱并算WOE后的woe值(类似离散变量中各类别的数值化),即:
Score=A−B[β0+β1(δ11w11+δ12w12+δ13w13)+β2(δ21w21+δ22w22+δ23w23+δ24w24)+...+βn(δn1wn1+δn2wn2]Score=A-B[β_0+β_1(δ_{11}w_{11}+δ_{12}w_{12}+δ_{13}w_{13})+β_2(δ_{21}w_{21}+δ_{22}w_{22}+δ_{23}w_{23}+δ_{24}w_{24})+...+β_n(δ_{n1}w_{n1}+δ_{n2}w_{n2}]Score=A−B[β0​+β1​(δ11​w11​+δ12​w12​+δ13​w13​)+β2​(δ21​w21​+δ22​w22​+δ23​w23​+δ24​w24​)+...+βn​(δn1​wn1​+δn2​wn2​]
  假设类别型变量x1x_1x1​、x2x_2x2​、x3x_3x3​分别有3、4、2个分类(数值型变量先分箱成类别型变量) δijδ_{ij}δij​代表第i个变量的第j个分类,客户数据参与评分时,某个变量x只会有1个数,只会对应一个分类。比如,变量x1x_1x1​的取值是第2个分类的话,那δ12δ_{12}δ12​为1,则第二个分类的woew12w_12w1​2值生效,x1x_1x1​的其他两个δδδ则为0,对应的其他两个分类的woe值无效不参与计算。

五、生成评分卡

  将上面的公式变下形式,变成最终可以组成评分卡的样式

  A、B已经算出,βββ是逻辑回归模型的输出系数,β0β_0β0​是逻辑回归模型的输出截距项,w是分箱后的woe值。至此评分卡就可以生成了。

【作者】:Labryant
【原创公众号】:风控猎人
【简介】:某创业公司策略分析师,积极上进,努力提升。乾坤未定,你我都是黑马。
【转载说明】:转载请说明出处,谢谢合作!~

逻辑回归评分卡分数映射相关推荐

  1. 逻辑回归评分卡实现和评估

    评分卡实现和评估   上一节讲得是模型评估,主要有ROC曲线.KS曲线.学习曲线和混淆矩阵.今天学习如何实现评分卡和对评分卡进行评估.   首先,要了解评分卡是如何从概率映射到评分的,这个之前写过评分 ...

  2. 回归模型的score得分为负_逻辑回归评分卡实现和评估

    逻辑回归评分卡实现和评估 上一节讲得是模型评估,主要有ROC曲线.KS曲线.学习曲线和混淆矩阵.今天学习如何实现评分卡和对评分卡进行评估.   首先,要了解评分卡是如何从概率映射到评分的,这个之前写过 ...

  3. 标准评分卡分数计算原理_评分卡的形式、刻度及应用场景

     看到有伙伴提问: ①我们的评分卡做好后,后续的使用策略是什么呀,都有哪些方向? ②评分卡分数切割点如何定,制定的业务逻辑是什么? 其实,这个问题不好回答,也好回答. 一方面,不好回答是因为金融市场 ...

  4. 标准评分卡分数计算原理_评分卡模型监控(前端分析)

    1.评分卡模型监控主要可以分为前端分析(Front-End)和后端分析(Back-End) 2.前端分析关注样本人群的稳定性,指标主要有PSI和CSI 3.PSI用来衡量分数在开发样本和近期样本上的分 ...

  5. (信贷风控十五)评分卡分数切分、授信额度与利率定价

    (十五)评分卡分数切分.授信额度与利率定价 文章主要内容 分数如何切分才能达到最优的效果 如何利用评分卡分数来制定授信额度 评分卡分数如何影响产品利率定价 如何计算评分卡下每个特征对应的得分 下图是通 ...

  6. 机器学习sklearn-逻辑回归评分卡案例

    Sigmoid函数的公式和性质 Sigmoid函数是一个S型的函数,当自变量z趋近正无穷时,因变量g(z)趋近于1,而当z趋近负无穷时,g(z)趋近于0,它能够将任何实数映射到(0,1)区间,使其可用 ...

  7. 逻辑回归--美国挑战者号飞船事故_同盾分数与多头借贷Python建模实战

    python信用评分卡(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_camp ...

  8. 逻辑回归实战--美国挑战者号飞船事故_同盾分数与多头借贷Python建模

    python信用评分卡(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_camp ...

  9. 评分卡中的一些理论知识

    写文章也一年多了,这一年的时间里一直在学习.总结.思考不停地反复,逐渐从一个菜鸟到对这门技术慢慢有了自己的认知.但是即便如此,我内心还是深知自己不明白的东西有很多,依然有许多需要实践和积累的.最近又回 ...

最新文章

  1. IDEA真牛逼,900行又臭又长的类重构,几分钟搞定
  2. Screenlets:桌面小玩意
  3. 强化学习笔记:PPO 【近端策略优化(Proximal Policy Optimization)】
  4. OpenStack的部署T版(八)——Dashboard
  5. PHP中文乱码解决办法
  6. shell 文件路径有空格_Python学习第57课-shell入门之基本简单命令(一)
  7. Python debug —— 逻辑错误(三)
  8. (美)梅耶(Myers, G. J.) 等《软件测试的艺术(原书第3版)》书籍(第3版)
  9. python相关的证书_有哪些含金量较高的Python证书?
  10. FlashFXP 连接成功无法显示目录
  11. 验收测试,软件测试的最后阶段了
  12. 10个BS后台UI框架
  13. 神经网络模型文件后缀名,神经网络模型文件格式
  14. 怎么转换视频格式,视频格式不符如何转换?
  15. [实用理论] 互联网广告的产业链:广告主(advertiser),媒体(publisher),广告商(agency)
  16. DataStage History
  17. 中断API之enable_irq
  18. 在全球超大规模协作中寻找创新机会:远程协作、分布式、开源、新型组织、群体智能...
  19. git中利用rebase来压缩多次提交
  20. 渲染世界的OPENGL15纹理进阶-点精灵

热门文章

  1. 访问其他程序中的数据(ContentResolver的CRUD操作)
  2. 广播,实现强制下线功能(项目文件已上传GitHub)
  3. C语言查看队头元素,C语言实现循环队列的初始化进队出队读取队头元素判空-1...
  4. 算法分析与设计——分治法最近点对
  5. php 欺骗提交,欺骗PHP整数
  6. 53. Leetcode 112. 路径总和 (二叉树-二叉树路径和)
  7. 统计和生成所有不同的二叉树
  8. 数组中子数组的最大累乘积
  9. Idea配置spark环境及编写scala代码
  10. pycharm连接到gitee的操作