python信用评分卡建模(附代码,博主录制)

https://mp.weixin.qq.com/s/KefG_8krBBaFl0LCi2L2WA转载

一、Vintage

Vintage源于葡萄酒酿造,葡萄酒的品质会因葡萄生长的年份不同、气候不同而不同。Vintage分析是指评估不同年份的葡萄酒的品质随着窖藏时间的推移而发生的变化,并且窖藏一定年份后,葡萄酒的品质会趋于稳定。如下图,2000年的葡萄酒品质最好,窖藏5年左右,葡萄酒品质会趋于稳定。

借鉴葡萄酒Vintage分析,信用分析领域不仅可以用它来评估客户好坏充分暴露所需的时间,即成熟期,还可以用它分析不同时期风控策略的差异等。

一个客户的好坏,需要经过若干个还款周期后才能充分暴露,如果表现期较短,有可能将一个不是很坏的客户定义为坏,也有可能将一个很坏的客户定义为好。比如一个客户在开始的几个周期内发生了逾期后将逾期还清,并且后面的周期不再发生逾期,若表现期较短会将此客户定义为坏;又比如一个客户刚开始一直正常还款,但到后面发生了比较严重的逾期,若表现期较短会将此客户定义为好。另外,可以通过比较不同时间的贷款在相同周期的逾期表现,来分析不同时间的风控策略的差异、宏观形势的变化等。

下图为2017年4月至2018年12月放款的M4+(即逾期91天以上)的Vintage图和Vintage数据表,此图统计的逾期用的是月末的逾期状态(有些时候也可以使用历史逾期状态,一个客户只要发生过M4+逾期,未来每个月都将该客户记为M4+逾期客户),计算逾期率使用金额(也可使用笔数)。从图中可以看出,不同月份放款的M4+在经过9个周期(9个月)后趋于稳定,也就是说成熟期是在9个周期。

从图中还可以看出,资产质量不断提升,2017年4月至6月的逾期率相对较高,从2017年7月开始逾期率发生较大程度的下降,有可能因为前几个月不断优化风控策略所致。

二、滚动率

前面说的Vintage可以用于分析客户表现的趋势、稳定的时间等,对于客户好坏程度的定义没有涉及,而通过滚动率分析可以对客户好坏程度进行定义。滚动率分析就是从某个观察点之前的一段时间(称为观察期)的最坏的状态向观察点之后的一段时间(称为表现期)的最坏状态的发展变化情况,如下图。

在观察点2018年6月30日,取1万个客户,统计该1万个客户从观察期到表现期的最大逾期的变化情况,如下表。

从该表可以看出:

1、正常的客户,在未来6个月里,有96%会保持正常状态;

2、逾期1期的客户,未来有81%会回到正常状态,即从良率为81%,有7%会恶化;

3、逾期2期的客户,从良率为23%,有39%会恶化;

4、逾期3期的客户,从良率为14%,有61%会恶化;

5、逾期4期及以上的客户,从良率仅为4%,有82%会继续此状态。

在对坏客户进行定义时,应将坏客户定义得尽可能坏,以与好客户尽可能的区分开来,因此可以将逾期4期及以上的定义为坏,而逾期2期和3期定义为中度坏,逾期1期为轻度坏。当然,在开发模型或规则时,还要结合样本量,如果M1占比较高,可以将M1划为好客户,M4+为坏客户,M2和M3为灰度客户,从样本中剔除;如果M1占比很低,也可以将M1和M2、M3一起归为灰度客户,从样本中剔除。

三、Y变量的定义

Y变量即为客户好坏标签变量,前面的Vintage分析和滚动率分析中已经说过一些,这里做个总结。Y变量要结合滚动率分析和Vintage分析来定义,滚动率分析用于对客户好坏程度进行定义,Vintage分析用于设置合适的表现期。定义Y变量可以分为以下几步:

1、进行滚动率分析,定义坏客户,如上面所说的M4+为坏客户;

2、然后统计出M4+的Vintage数据表及Vintage图,找出成熟期;

3、表现期大于成熟期的样本可以用于建模,表现期小于成熟期的样本无法准确定义Y变量,暂时舍弃。

当然,在实际应用中,根据业务需要,Y变量的定义可以灵活变通。比如在业务刚开展不久,表现期较短,此时无法根据上述方法定义Y变量,可以暂将逾期大于10天、15天或30天的客户定义为坏等等,然后随着时间的推移不断修正Y变量及模型。

四、迁移率

迁移率分析和滚动率分析比较像,都是分析客户从某个状态变为其他状态的发展变化情况,所不同的是,滚动率侧重于分析客户逾期程度的变化,所以在做滚动率分析时需要设置相对较长的观察期和变现期;而迁移率侧重于分析客户状态的发展变化路径,如M0~M1,M1~M2,M2~M3等。

先统计2018年6月至2018年12月各逾期状态的资产分布情况,如下表。表中的回收率是指,假设每月末将M7的资产以10%的价格卖掉,即收回M7资产的10%。

下面计算月度迁移率,比如,2018年7月底,M0~M1的迁移率为41110122/171325636=24%,以此类推,得到如下表的迁移率。这里迁移率的计算是以月为时间颗粒度,当前也可以精细到以天为颗粒度计算迁移率,然后计算平均值得出月度迁移率,但更细的颗粒度要求资产规模更大,如果资产规模较小会产生较大的误差。值得注意的是,表中M3~M4的迁移率较高,应该是逾期超过90天,过了黄金催收期,所以逾期恶化程度较高,但M4~M5的迁移率突然降低了不少,有可能是委外催收起到了一定效果所致。

下面根据迁移路径计算各逾期状态的损失率,M0变为M7的比例定义为损失率等于16.06%*29.27%*42.28%*81.71%*52.75%*82.51%*86.05%=0.61%,因为M7将以10%的价格收回,所以净损失率等于0.61%*90%=0.55%,以此类推,得到各逾期状态资产的损失率,如下表。

前面讲到定义Y变量时,根据滚动率分析定义好坏的程度,其实这里也可以根据迁移率得出的损失率来分析好坏的程度,并且还可以结合损失率与收益率,这里不再赘述。

下面根据资产损失率计算2018年12月的资产预计损失,计算方法为2018年12月M0~M6各资产乘以对应的净损失率,然后求和,即等于367162809*0.55%+47230430*3.41%+14848678*11.64%+6011499*27.54%+4614038*33.70%+2326454*63.89%+1586471*77.44%=11273470。所以2018年12月拨备金额为11273470,占总资产的比例为11273470/443823814=2.54%,即拨备率为2.54%。

(注:文中数据非真实数据,而是为了说明问题而生成的数据)

python风控建模实战lendingClub(博主录制,catboost,lightgbm建模,2K超清分辨率)

https://study.163.com/course/courseMain.htm?courseId=1005988013&share=2&shareId=400000000398149

微信扫二维码,免费学习更多python资源

Vintage、滚动率、迁移率的应用的更多相关文章

  1. 信用评分卡 (part 2of 7)

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

  2. 信用评分卡Credit Scorecards (1-7)

      欢迎关注博主主页,学习python视频资源,还有大量免费python经典文章 python风控评分卡建模和风控常识 https://study.163.com/course/introductio ...

  3. 3分钟学会sessionStorage用法(h5页面返回滚动到上次浏览器位置)

    前言: 因最近移动端开发过程中遇到一个运营提出的所谓技术难点需求,对于原生APP来说轻而易举,毕竟自己的APP用户操作指哪打哪,但是H5该怎么做?H5就实现不了么?对于一个爱研究攻克这些前端棘手问题的 ...

  4. h5页面使用sessionStorage滚动到上次浏览器位置《原创》

    前言: 因最近移动端开发过程中遇到一个运营提出的所谓技术难点需求,对于原生APP来说轻而易举,毕竟自己的APP用户操作指哪打哪,但是H5该怎么做?H5就实现不了么?对于一个爱研究攻克这些前端棘手问题的 ...

  5. 115道Java经典面试题(面中率最高、最全)

    115道Java经典面试题(面中率最高.最全) Java是一个支持并发.基于类和面向对象的计算机编程语言.下面列出了面向对象软件开发的优点: 代码开发模块化,更易维护和修改. 代码复用. 增强代码的可 ...

  6. 使用css实现炫酷的横屏滚动效果

    炫酷的横屏滚动效果css实现 DEMO: https://codepen.io/kobako/pen/BxVLLm 我们对滚动条都不陌生.平时浏览的网页,进度条通常是垂直方向的,内容从上往下排列.但是 ...

  7. Android自动滚动 轮播循环的ViewPager

    主要介绍如何实现ViewPager自动播放,循环滚动的效果及使用.顺便解决ViewPager嵌套(ViewPager inside ViewPager)影响触摸滑动及ViewPager滑动速度设置问题 ...

  8. 鼠标滚轮滚动慢/拖动Office出现滞后问题处理

    一.说明 我对外设一直不是很了解,买的鼠标今天到了,使用时遇到了两个问题在这里记一下. 二.滚轮滚动慢处理 问题描述:在网页中滚动滚轮每次只能上下移动一点点,感觉很难受. 问题原因:此问题是滚轮滚动一 ...

  9. 【前端性能】高性能滚动 scroll 及页面渲染优化

    最近在研究页面渲染及web动画的性能问题,以及拜读<CSS SECRET>(CSS揭秘)这本大作. 本文主要想谈谈页面优化之滚动优化. 主要内容包括了为何需要优化滚动事件,滚动与页面渲染的 ...

随机推荐

  1. mariadb远程授权问题

    安装mariadb后,使用远程连接时 密码没有问题 但是每次打开都报这个错误: 这个错误是在进行远程连接的时候密码正确, 但是,进行远程授权的时候授权密码错误. 在数据库中执行下述代码即可: GRAN ...

  2. CentOS 使用163yum源

    下载163源 # wget http://mirrors.163.com/.help/CentOS7-Base-163.repo 如果报以下错误 -bash: wget: command not fo ...

  3. JWT生成token及过期处理方案

    业务场景 在前后分离场景下,越来越多的项目使用token作为接口的安全机制,APP端或者WEB端(使用VUE.REACTJS等构建)使用token与后端接口交互,以达到安全的目的.本文结合stacko ...

  4. 原生php phpmailer 发送邮件 email

    首先去github下载phpmailer https://github.com/PHPMailer/PHPMailer/ 取得里面的src文件夹中的文件 然后demo如下 首先引用命名空间 use那里 ...

  5. 使用Cloudera Manager添加Sentry服务

    使用Cloudera Manager添加Sentry服务 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.通过CM添加Sentry服务 1>.点击添加服务进入CM服务安装向 ...

  6. 如何将scratch3.0的作业自动提交到后台数据库

    大家都知道Scratch3.0开发后,默认是可以下载文件到电脑,但是如果是作为商业系统来说,我们需要将作业自动的提交到后台,因此有了这篇文章. 首先,我们来分解下开发步骤: 1.在菜单栏新增一个上传到 ...

  7. JavaScript——判断页面是否加载完成

    前言 接上文,既然你是做一个loading的效果,你总不能一直loading,当页面完成加载的时候你总要结束吧 步骤 先说下原生的方法,再讲jquery的方法,原理是一样的 JavaScript // ...

  8. Net-NTLMv1的利用思路

    Net-NTLMv1的加密方法: 客户端向服务器发送一个请求 服务器接收到请求后,生成一个16位的Challenge,发送回客户端 客户端接收到Challenge后,使用登录用户的密码hash对Cha ...

  9. 斜率优化板题 HDU2829 Lawrence

    题目大意:给定一个长度为nnn的序列,至多将序列分成m+1m+1m+1段,每段序列都有权值,权值为序列内两个数两两相乘之和.求序列权值和最小为多少? 数据规模:m<=n<=1000.m&l ...

  10. 小程序支付及H5支付前端代码小结

    小程序支付和H5支付前端都不需要引入其他的js , 只需要后台将相关的参数 ( timeStamp: '', nonceStr: '', package: '', signType: 'MD5', p ...