窗口函数:vintage报表

article/2025/9/1 20:04:47

0 前言

          Vintage这个词原意是指酿造葡萄酒的酒窖。葡萄酒是讲究年份,哪年光景好,哪年光景不好,直接会影响到葡萄酒的品质。后来借用到信贷资产行业,指的是每个月贷款的资产质量情况,要直接跟每个相同时间段内的余额做比较。注意这里比较有个前提,就是比较的事物应该是位于同一层面上的,不能将不同账龄的房贷质量进行对比,要按账龄(month of book,MOB)的长短同步对比,从而了解同一产品不同时期放款的资产质量情况。Vintage分析方法能很好地解决时滞性问题,其核心思想是对不同时期的开户的资产进行分别跟踪,按照账龄的长短进行同步对比,从而了解不同时期发行信用卡的资产质量情况。

1  需求描述

        Vintage分析目前被广泛应用于信用卡产业。举例说明根据账龄所做的拖欠二周期账户的Vintage分析,原始数据见表1:

拖欠二周期账户
发卡时间经营时间拖欠率
2018/042018/072.12
2018/042018/082.19
2018/042018/093.1
2018/042018/102.58
2018/042018/112.65
2018/042018/122.84
2018/052018/082.47
2018/052018/092.52
2018/052018/102.53
2018/052018/112.52
2018/052018/122.49
2018/062018/091.63
2018/062018/101.88
2018/062018/111.87
2018/062018/122.1
2018/072018/103.32
2018/072018/113.88
2018/072018/123.46
2018/082018/112.37
2018/082018/121.46
2018/092018/122.51

       第一行数据意思是:数据2.12%为2018年4月所发信用卡在2018年7月时拖欠二周期的金额除以该批信用卡在2018年7月时透支余额,依此类推,得到全表的数据。在此基础上,按照账龄为经营时间减去发卡时间进行表间数据的转换,得到MOB,得到表2:

拖欠二周期的vintage分析
发卡时间M3M4M5M6M7M8
2018/042.122.193.12.582.652.84
2018/052.472.522.532.522.49 
2018/061.631.881.872.1  
2018/073.323.883.46   
2018/082.371.46    
2018/092.51     

通过vintage报表,可以看出,不同月份的发卡账户的同一mob下的拖欠率的变化情况。

这里我们的需求是:怎么将表1格式的数据转换成表2格式的数据?

2 需求实现

2.1 插入数据

     同样这里假定已经存在表WN_table,含有date_faka、date_mob、overduerate这3个字段:

insert into WN_table values('2018/04', '2018/07', '2.12');
insert into WN_table values('2018/04', '2018/08', '2.19');
insert into WN_table values('2018/04', '2018/09', '3.1 ');
insert into WN_table values('2018/04', '2018/10', '2.58');
insert into WN_table values('2018/04', '2018/11', '2.65');
insert into WN_table values('2018/04', '2018/12', '2.84');
insert into WN_table values('2018/05', '2018/08', '2.47');
insert into WN_table values('2018/05', '2018/09', '2.52');
insert into WN_table values('2018/05', '2018/10', '2.53');
insert into WN_table values('2018/05', '2018/11', '2.52');
insert into WN_table values('2018/05', '2018/12', '2.49');
insert into WN_table values('2018/06', '2018/09', '1.63');
insert into WN_table values('2018/06', '2018/10', '1.88');
insert into WN_table values('2018/06', '2018/11', '1.87');
insert into WN_table values('2018/06', '2018/12', '2.1 ');
insert into WN_table values('2018/07', '2018/10', '3.32');
insert into WN_table values('2018/07', '2018/11', '3.88');
insert into WN_table values('2018/07', '2018/12', '3.46');
insert into WN_table values('2018/08', '2018/11', '2.37');
insert into WN_table values('2018/08', '2018/12', '1.46');
insert into WN_table values('2018/09', '2018/12', '2.51');

2.2 vintage报表

    这里我们仍然使用lead()窗口函数实现我们的需求:

select
date_faka, M3,M4, M5, M6, M7, M8
from
(select date_faka,overduerate M3,lead(overduerate,1) over(partition by date_faka order by date_mob) M4,lead(overduerate,2) over(partition by date_faka order by date_mob) M5,lead(overduerate,3) over(partition by date_faka order by date_mob) M6,lead(overduerate,4) over(partition by date_faka order by date_mob) M7,lead(overduerate,5) over(partition by date_faka order by date_mob) M8,row_number() over(partition by date_faka order by date_mob) row_numfrom WN_table) t
where row_num = 1

可以得到vintage报表:

拖欠两周期的vintage分析
date_fakaM3M4M5M6M7M8
2018/042.122.193.12.582.652.84
2018/052.472.522.532.522.49NULL
2018/061.631.881.872.1NULLNULL
2018/073.323.883.46NULLNULLNULL
2018/082.371.46NULLNULLNULLNULL
2018/092.51NULLNULLNULLNULLNULL

当然,也可以不将NULL呈现出来:

select
date_faka, 
case when M3 is null then '' else M3 end M3,
case when M4 is null then '' else M3 end M4,
case when M5 is null then '' else M3 end M5,
case when M6 is null then '' else M3 end M6,
case when M7 is null then '' else M3 end M7,
case when M8 is null then '' else M3 end M8
from
(select date_faka,overduerate M3,lead(overduerate,1) over(partition by date_faka order by date_mob) M4,lead(overduerate,2) over(partition by date_faka order by date_mob) M5,lead(overduerate,3) over(partition by date_faka order by date_mob) M6,lead(overduerate,4) over(partition by date_faka order by date_mob) M7,lead(overduerate,5) over(partition by date_faka order by date_mob) M8,row_number() over(partition by date_faka order by date_mob) row_numfrom WN_table) t
where row_num = 1
拖欠二周期的vintage报表
date_fakaM3M4M5M6M7M8
2018/042.122.193.12.582.652.84
2018/052.472.522.532.522.49 
2018/061.631.881.872.1  
2018/073.323.883.46   
2018/082.371.46    
2018/092.51     

3 总结

       这里我们使用窗口函数制作了vintage报表,也可以使用相同的代码制作客户留存率,例如商城不同月份注册客户在不同mob下的留存率等。

                                                                                   


http://chatgpt.dhexx.cn/article/LogWwIVs.shtml

相关文章

信贷风控中Vintage、滚动率、迁移率的理解

风控业务背景 信贷风险管理是一门艺术,更是一门科学。资产质量分析中常会涉及到三个理论: 账龄分析(Vintage Analysis):用以分析账户成熟期、变化规律等。滚动率分析(Roll Rate Analysis)&#…

风控ML[9] | Vintage和Roll Rate 分析的详解

我们说了好几期的风控建模了,也有不少的同学私信我说一般来说我们需要怎么确定Y值呢?,到底多坏的逾期表现的客户可以被我们定义为坏客户呢?今天这篇文章,就给大家介绍一个大家既熟悉又陌生的分析工具——Vintage Analy…

了解过Vintage的N种样式?

vintage的几种形式有没有兴趣了解下? 我们之前写的文章里就提到过一个资产分析报表里的vintage表,这个表是反映客群的账龄情况,如果不是很清楚请再戳进去:风控建模系列(六):催收评分卡卡跟贷前…

风控模型策略-知识全整理(一)

做了大概5年风控,中间做过甲方,做过乙方,做过模型,做过策略,做过数据分析,但是始终觉着不得风控精华,做的事情太多,有的东西也就很难深入,目前就是将这么几年的积累写下来…

vintage、滚动率等相关指标介绍

目录 1、vintage 方法简介 优势 五级分类的比较 2、滚动率 3、入催率 4、FPD 随着互联网金融的发展,对数据分析的需求越来越大。数据分析的目的其实是为了找到风险和收益的平衡点。高收益伴随着高风险,而低风险的回报又如同鸡肋。所以,…

对Vintage未表现数据的预测方法总结

这段时间在利用Vintage分析做借贷产品的放款损失率相关工作,来简单总结一下。 Vintage分析 前面说到,Vintage是资产质量分析的重要工具,主要是用来分析同一产品在不同时间放款的资产质量变化情况,从而反映该产品的客群质量和变化…

vintage+android相机,Vintage复古相机

Vintage复古相机是一款功能强大,非常好用的相机软件,这里有着丰富的复古滤镜可以自由选择,并且还可以直接在这里p图修图,各种效果可以提前预览,还可以一键生成保存,非常便捷!喜欢拍照的小伙伴不…

一文教你如何解读Vintage

当我们在观测资产最终损失和不同资产的风险差异时,经常会用到一个指标,那就是Vintage。 这个指标的计算和展示与大多数指标有所不同,因为所需要的数据信息并不单来源于某一个固定时间的切片数据,而是来源于历史多个时间节点的切片…

Vintage、滚动率、迁移率的应用(转载)

转载于:http://mp.weixin.qq.com/s?__bizMzIyNDk2MzQ1NQ&mid2247484124&idx1&sneec18c836806b8803845716195fae061&chksme807bcccdf7035da8b5ca7fe81f0a7e2185e2ed37b93eeea2dc992457e10781c0dfe6c27cb48&scene21#wechat_redirect 一、Vintag…

信贷风控中Vintage、滚动率、迁移率

风控业务背景 信贷风险管理是一门艺术,更是一门科学。资产质量分析中常会涉及到三个理论: 账龄分析(Vintage Analysis):用以分析账户成熟期、变化规律等。滚动率分析(Roll Rate Analysis)&…

Vintage分析和迁移率模型在信用卡业务中的应用

随着中国金融业对外开放程度的加大,国内信用卡产业的竞争愈演愈烈,信用卡市场营销的费用也越来越高.如何利用有限的营销资源为发卡机构创造最大利润,实现信用卡营销和风险的精细化管理已成为信用卡产业发展的热门话题.本文通过对国外商业银行在信用卡业务中常用的Vintage分析和…

业务相关--vintage

vintage整理 --------仅用于个人学习知识整理和sas/R语言/python代码整理 ####1 . 前言 Vintage表,将不同时间层面的顾客拉平到同一时间周期上进行比较,观察不同入口时间的顾客在不同生命周期上的表现。 vintage一般有三种用法: 1.横看&…

vintage分析 风控建模系列 01

vintage分析 风控建模系列 01 在工作中发现,目前没有一个很好的系列帖子对风控建模中的各项细节做讲解,本人为一个金融科技公司的风控算法建模师,希望在此将风控建模的知识成体系、有深度、易吸收地分享给大家 vintage分析价值 在一场完整…

使用R语言creditmodel包进行Vintage分析或留存率分析

1 什么是vintage分析? Vintage分析(账龄分析法)被广泛应用于信用卡及信贷行业,这个概念起源于葡萄酒,即不同年份出产的葡萄酒的品质有差异,那么不同时期开户或者放款的资产质量也有差异,其核心…

Vintage分析和迁移率模型在网贷行业的运用

Vintage 分析和迁移率模型在网贷行业的运用 网贷业务的核心竞争力来自收益与风险之间平衡点的把握,其收到消费理念、市场策略、市场消费环节影响,贯穿于产品设计、营销审批、授信、支用、还款、催收以及客户服务的全过程。风控偏好和市场竞争策略会导致不…

一文彻底理解评分卡开发中——Y的确定(Vintage分析、滚动率分析等)

评分卡已经在各大银行和公司都实际运用于业务,也有很多前辈对它进行了详细的阐述。本文将从支付和信贷评分卡建立的角度,对比分析不同行业在建立评分卡时因变量Y确定的差异。让想了解评分卡的小伙伴,有一个更深刻的理解。并能举一反三&#x…

vintage的一点深入思考

vintage是资产质量分析中常用的指标,网上也有很多介绍vintage的含义、计算方法以及用法的文章。最近结合业务中的一个实际问题,对vintage曲线有了一些新的思考,所以写下来记录一下。 目录 1.业务问题 2.原因分析 3.总结 一、业务问题 业务的发…

ML之FE:Vintage曲线/Vintage分析(观察用户的全周期风险情况/明确用户风险的成熟期/确定逾期率何时趋向于稳定/从而选择合适的表现期)的简介、计算逻辑、案例应用之详细攻略

ML之FE:Vintage曲线/Vintage分析(观察用户的全周期风险情况/明确用户风险的成熟期/确定逾期率何时趋向于稳定/从而选择合适的表现期)的简介、计算逻辑、案例应用之详细攻略 目录 Vintage曲线简介—通过葡萄酒产业理解Vintage曲线 (1)、Vintage来源 (2)、Vintage曲…

vintage分析

vintage分析的由来 由于酿酒业,对于葡萄酒而言,年份不同,气候不同,生产的葡萄酒品质也不同,因此酿酒业常将葡萄的采摘年份作为品质的区分。同时,随着葡萄酒窖藏时间的增加,酒的品质也会提升。因…

对Vintage分析的一些学习理解

账龄分析(Vintage Analysis) 我目前工作主要是信贷业务相关的数据分析及算法构建,所以经常会接触到信贷风险管理分析方法,常见的包括账龄分析(Vintage Analysis)、滚动率分析(Roll Rate Analys…