Vintage、滚动率、迁移率的应用
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、滚动率、迁移率的应用的更多相关文章
- 信用评分卡 (part 2of 7)
python信用评分卡(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_camp ...
- 信用评分卡Credit Scorecards (1-7)
欢迎关注博主主页,学习python视频资源,还有大量免费python经典文章 python风控评分卡建模和风控常识 https://study.163.com/course/introductio ...
- 3分钟学会sessionStorage用法(h5页面返回滚动到上次浏览器位置)
前言: 因最近移动端开发过程中遇到一个运营提出的所谓技术难点需求,对于原生APP来说轻而易举,毕竟自己的APP用户操作指哪打哪,但是H5该怎么做?H5就实现不了么?对于一个爱研究攻克这些前端棘手问题的 ...
- h5页面使用sessionStorage滚动到上次浏览器位置《原创》
前言: 因最近移动端开发过程中遇到一个运营提出的所谓技术难点需求,对于原生APP来说轻而易举,毕竟自己的APP用户操作指哪打哪,但是H5该怎么做?H5就实现不了么?对于一个爱研究攻克这些前端棘手问题的 ...
- 115道Java经典面试题(面中率最高、最全)
115道Java经典面试题(面中率最高.最全) Java是一个支持并发.基于类和面向对象的计算机编程语言.下面列出了面向对象软件开发的优点: 代码开发模块化,更易维护和修改. 代码复用. 增强代码的可 ...
- 使用css实现炫酷的横屏滚动效果
炫酷的横屏滚动效果css实现 DEMO: https://codepen.io/kobako/pen/BxVLLm 我们对滚动条都不陌生.平时浏览的网页,进度条通常是垂直方向的,内容从上往下排列.但是 ...
- Android自动滚动 轮播循环的ViewPager
主要介绍如何实现ViewPager自动播放,循环滚动的效果及使用.顺便解决ViewPager嵌套(ViewPager inside ViewPager)影响触摸滑动及ViewPager滑动速度设置问题 ...
- 鼠标滚轮滚动慢/拖动Office出现滞后问题处理
一.说明 我对外设一直不是很了解,买的鼠标今天到了,使用时遇到了两个问题在这里记一下. 二.滚轮滚动慢处理 问题描述:在网页中滚动滚轮每次只能上下移动一点点,感觉很难受. 问题原因:此问题是滚轮滚动一 ...
- 【前端性能】高性能滚动 scroll 及页面渲染优化
最近在研究页面渲染及web动画的性能问题,以及拜读<CSS SECRET>(CSS揭秘)这本大作. 本文主要想谈谈页面优化之滚动优化. 主要内容包括了为何需要优化滚动事件,滚动与页面渲染的 ...
随机推荐
- redis设置远程连接
1.修改redis服务器的配置文件 本机安装的redis-4.0.14默认的配置文件 redis.conf 设置 绑定本机地址:bind 127.0.0.1 开启保护模式:protected-mode ...
- Mysql 库表操作初识
Mysql 库表操作初识 终端登录mysql 这里只演示win下, cmd 终端. 至于怎么在win下, linux, mac安装, 感觉这是一个入门级的百度搜索问题, 安装都搞不定, 确实有点尴尬, ...
- React: webpack模块组织关系
现代前端开发离不开打包工具,以 webpack 为代表的打包工具已经成为日常开发必备之利器,拿 React 技术栈为例,我们 ES6 形式的源代码,需要经过 webpack 和 Babel 处理,才能 ...
- go语言笔记1
Go语言学习整理 本文基于菜鸟教程,对于自己不明白的点加了点个人注解,对于已明确的点做了删除,可能结构不太清晰,看官们可移步Go语言教程 1 Go语言结构当标识符(包括常量.变量.类型.函数名. ...
- oracle 字符串分隔去重函数
create or replaceFUNCTION "SF_SPLIT_ACCOUNT_ID_LIST" ( account_id_list IN VARCHAR2)RETURN ...
- 【MySQL】测试MySQL表中安全删除重复数据只保留一条的相关方法
第二篇文章测试说明 开发测试中,难免会存在一些重复行数据,因此常常会造成一些测试异常. 下面简单测试mysql表删除重复数据行的相关操作. 主要通过一下三个大标题来测试说明: 02.尝试删除dept_ ...
- linux中如何升级Python
一.使用wget 下载Python 安装包 我是在虚拟中当中安装的: wget http://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz 报错: ...
- Spring框架:Controller和RestController区别
了解如何利用SpringMVC的注释创建RESTful Web服务. Spring的基于注释的MVC框架简化了创建RESTful Web服务的过程.传统的Spring MVC控制器和RESTful W ...
- 怎样在一条sql语句中将第一列和第二列加和的值作为第三列的值
今天在写代码的时候,遇到的一个小问题,特意记下来,以免自己以后忘记了. 在一个表单里面,要表单的第一列和第二列的值查询出来,做和,作为第三列的值. select 1 as a,2 as b,(a+b) ...
- LeetCode 742. Closest Leaf in a Binary Tree
原题链接在这里:https://leetcode.com/problems/closest-leaf-in-a-binary-tree/ 题目: Given a binary tree where e ...