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揭秘)这本大作. 本文主要想谈谈页面优化之滚动优化. 主要内容包括了为何需要优化滚动事件,滚动与页面渲染的 ... 
随机推荐
- golang版本管理工具GO111MODULE
			在go1.11版本前,想要对go语言包进行管理,只能依赖第三方库实现,比如Vendor,GoVendor,GoDep,Dep,Glide等等. 1. 开启GO111MODULE 用环境变量 GO111 ... 
- 微信小程序转义解析渲染html
			今天开发小程序时,想调用商品详情字段,发现大部分是用编辑器编辑的html原生标签,无法在小程序直接使用. 后面自己使用正则和字符串替换,效果也不佳. 最后在网上找到了wx-mina-html-view ... 
- 变长数组(variable-length array,VLA)(C99)
			处理二维数组的函数有一处可能不太容易理解,数组的行可以在函数调用的时候传递,但是数组的列却只能被预置在函数内部.例如下面这样的定义: #define COLS 4 int sum3d(int ar[] ... 
- PAT甲级1012题解——选择一种合适数据存储方式能使题目变得更简单
			题目分析: 本题的算法并不复杂,主要是要搞清楚数据的存储方式(选择一种合适的方式存储每个学生的四个成绩很重要)这里由于N的范围为10^6,故选择结构体来存放对应下标为学生的id(N只有2000的范围, ... 
- mac 使用 brew 安装 nginx 及各种命令
			一.安装 brew install nginx 或 sudo brew install nginx 二.启动 brew services start nginx 或 sudo brew service ... 
- webpack脚手架增加版本号
			1.product模式下,新增版本号: 1)common.js文件中,输出的文件路径要跟着变化 output: { filename: 'js/[name].js', path: path.resol ... 
- 深入详解JVM内存模型
			JVM内存结构 由上图可以清楚的看到JVM的内存空间分为3大部分: 堆内存 方法区 栈内存 其中栈内存可以再细分为java虚拟机栈和本地方法栈,堆内存可以划分为新生代和老年代,新生代中还可以再次划分为 ... 
- 使用Patroni和HAProxy创建高可用的PostgreSQL集群
			操作系统:CentOS Linux release 7.6.1810 (Core) node1:192.168.216.130 master node2:192.168.216.132 slave n ... 
- Linux shell脚本基础学习详细介绍(完整版)一
			Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ... 
- 线程池的使用(ThreadPoolExecutor详解)
			为什么要使用线程池? 线程是一个操作系统概念.操作系统负责这个线程的创建.挂起.运行.阻塞和终结操作.而操作系统创建线程.切换线程状态.终结线程都要进行CPU调度——这是一个耗费时间和系统资源的事情. ... 
