每每以为攀得众山小,可、每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~

———————————————————————————

巴塞尔协议定义了金融风险类型:市场风险、作业风险、信用风险。信用风险ABC模型有进件申请评分、行为评分、催收评分。

————————————————————————————————————

一、数据准备

1、排除一些特定的建模客户

用于建模的客户或者申请者必须是日常审批过程中接触到的,需要排除以下两类人:

异常行为:销户、按条例拒绝、特殊账户;

特殊账户:出国、卡丢失/失窃、死亡、未成年、员工账户、VIP;

其他:欺诈(根据反欺诈评分)、主动销户者(流失评分)

2、解释指标的选取

(1)申请评分所需指标

信用风险中,申请评分所采纳的指标有很多,譬如可以参考FICO信用分中的一些,参考:笔记︱金融风险控制基础常识——巴塞尔协议+信用评分卡Fico信用分

其中2.1FICO信用分的计算方法给出了一些评判标准

(2)行为评分所需指标

图片来自CDA-DSC课程中。

3、目标变量的确立

对于预测建模,定义目标变量是最重要、对建模结果影响最大的一步。银行业信用评分解决方案默认的目标时间定义选择二分类变量为:不良/逾期、良好。

不良/逾期:观察窗口内,观察窗口内,60/90/120天算逾期日期;

良好:从未或截止逾期;从未或在观察期内截止逾期

其中关于不良/逾期需要界定以下两项内容:确定违约日期时长、观察窗口期设置。

————————————————————————————————————

二、确定违约日期时长、观察窗口期设置

其中有两个时期,观察窗口期、预测窗口期。预测窗口期时间由账龄分析获取,观察窗口期大约就是预测窗口的3-5倍。巴塞尔协议中规定预测窗口期一般为12个月,所以一般实务中以12个月为窗口期。在已知预测窗口期之下,通过转移矩阵了解违约期具体时长。

(PS:虽然做了总结,但是还没明白老师上课所讲的,为什么这么做?怎么出结果?)

评论区网友Love_sf留言:

窗口期为一年12个月,观察窗口为预测窗口的3-5倍,即观察窗口为9个月,预测窗口3个月,或者观察窗口为10个月,预测窗口2个月,定义M2+或者M3+作为违约用户,这样才能用来建模预测坏用户出现概率。

1、违约日期的确定——转移矩阵

不同账期客户转移到更坏概率不同,选取显著变化的节点。

图中可以看出,第一个月不还拖欠到下一个月的概率为M0=7.96%,第二个月不还拖欠到下个月的有M1=57.26%,M2=64.48%,M3=79%,M4=83.77%。

从这里可以看出,第五个月是一个拐点,说明第五月之后就很难催到账务。所以,催帐日期可以选择3月。同时,超过5月包括5月的都属于违约行为。

2、违约窗口期设置——账龄分析

一般情况下巴塞尔协议硬性要求12个月及以上作为窗口期。一般情况下,观察窗口=3-5倍的预测窗口。

决定信用评等模型开发所需数据期间长度,一般会从最新资料的留存时点开始推算,利用账龄分析观察目标客户的违约成熟期长度,借此设定观察期长度(预测窗口的时间长度)。比如200901开卡的人,第10个月,稳定成熟了,绩效时间可以确定为10-12个月;200902开卡的人,第11个月,稳定成熟了,11-12个月。

————————————————————————————————————

三、数据重编码——WOE转换

由于制作评分卡的某些需要,通常会在建立评分模型时将自变量(连续+离散都可以)做离散化处理(等宽切割,等高切割,或者利用决策树来切割),但是模型本身没办法很好地直接接受分类自变量的输入。所以信用评分卡中常用的WOE转换。

WOE转换=分箱法=Logit值,与等深、等宽不同是根据被解释变量来重新定义一个WOE值(R语言︱噪声数据处理、数据分组——分箱法(离散化、等级化))。

WOE的公式就是:WOE=ln(好客户占比/坏客户占比)*100%=优势比

好客户占比=数量(x︱y=好)/总人数

WOE转化的优势:提升模型的预测效果,提高模型的可理解性。

1、WOE与违约概率具有某种线性关系

从而通过这种WOE编码可以发现自变量与目标变量之间的非线性关系(例如U型或者倒U型关系)。提升预测效果

2、WOE变量出现负值情况。

在此基础上,我们可以预料到模型拟合出来的自变量系数应该都是正数,如果结果中出现了负数,应当考虑是否是来自自变量多重共线性的影响。

3、标准化的功能。

WOE编码之后,自变量其实具备了某种标准化的性质,也就是说,自变量内部的各个取值之间都可以直接进行比较(WOE之间的比较),而不同自变量之间的各种取值也可以通过WOE进行直接的比较。

4、WOE能反映自变量的贡献情况。

自变量内部WOE值的变异(波动)情况,结合模型拟合出的系数,构造出各个自变量的贡献率及相对重要性。一般地,系数越大,woe的方差越大,则自变量的贡献率越大(类似于某种方差贡献率),这也能够很直观地理解。

5、异常值处理。

很多极值变量通过WOE可以变为非异常值.

譬如解决分类之后,一些案例个数过少的情况。案例个数过少的情况一般情况下可以合并,也可以用WOE转化来实现。

转化之后可能值变成这个样子,跳跃很大,可以作为用盖帽法等方法解决。

笔记︱信用风险模型(申请评分、行为评分)与数据准备(违约期限、WOE转化)的更多相关文章

  1. JUC学习笔记——共享模型之管程

    JUC学习笔记--共享模型之管程 在本系列内容中我们会对JUC做一个系统的学习,本片将会介绍JUC的管程部分 我们会分为以下几部分进行介绍: 共享问题 共享问题解决方案 线程安全分析 Monitor ...

  2. ArcGIS案例学习笔记2_2_模型构建器和山顶点提取批处理

    ArcGIS案例学习笔记2_2_模型构建器和山顶点提取批处理 计划时间:第二天下午 背景:数据量大,工程大 目的:自动化,批处理,定制业务流程,不写程序 教程:Pdf/343 数据:chap8/ex5 ...

  3. Django:学习笔记(7)——模型进阶

    Django:学习笔记(7)——模型进阶 模型的继承 我们在面向对象的编程中,一个很重要的的版块,就是类的继承.父类保存了所有子类共有的内容,子类通过继承它来减少冗余代码并进行灵活扩展. 在Djang ...

  4. Django:学习笔记(6)——模型

    Django:学习笔记(6)——模型 快速上手 模型到底是什么呢?我们可以想,如果一张数据表的各个字段可以自动映射到一个类的各个属性,则每条记录对应这个类的一个对象.那我们通过类方法来操作对象(即表记 ...

  5. tensorflow笔记:模型的保存与训练过程可视化

    tensorflow笔记系列: (一) tensorflow笔记:流程,概念和简单代码注释 (二) tensorflow笔记:多层CNN代码分析 (三) tensorflow笔记:多层LSTM代码分析 ...

  6. JVM学习笔记——内存模型篇

    JVM学习笔记--内存模型篇 在本系列内容中我们会对JVM做一个系统的学习,本片将会介绍JVM的内存模型部分 我们会分为以下几部分进行介绍: 内存模型 乐观锁与悲观锁 synchronized优化 内 ...

  7. JUC学习笔记——共享模型之内存

    JUC学习笔记--共享模型之内存 在本系列内容中我们会对JUC做一个系统的学习,本片将会介绍JUC的内存部分 我们会分为以下几部分进行介绍: Java内存模型 可见性 模式之两阶段终止 模式之Balk ...

  8. Coursera Deep Learning笔记 序列模型(一)循环序列模型[RNN GRU LSTM]

    参考1 参考2 参考3 1. 为什么选择序列模型 序列模型能够应用在许多领域,例如: 语音识别 音乐发生器 情感分类 DNA序列分析 机器翻译 视频动作识别 命名实体识别 这些序列模型都可以称作使用标 ...

  9. 《机器学习实战》学习笔记第十四章 —— 利用SVD简化数据

    相关博客: 吴恩达机器学习笔记(八) —— 降维与主成分分析法(PCA) <机器学习实战>学习笔记第十三章 —— 利用PCA来简化数据 奇异值分解(SVD)原理与在降维中的应用 机器学习( ...

随机推荐

  1. Web安全之CSP

    内容安全策略(Content-Security-Policy,简称CSP) 概念: 内容安全策略(CSP)是一种web应用技术用于帮助缓解大部分类型的内容注入攻击,包括XSS攻击和数据注入等,这些攻击 ...

  2. Python随笔,day1

    #python中不存在单个字符的运算,只有字符串函数 >>> s="www.google.com" >>> s 'www.google.com' ...

  3. 浅析JAVA序列化

    1.简述 Serialization(序列化) 是一种将对象以一连串的字节描述的过程:反序列化deserialization是一种将这些字节重建成一个对象的过程. 在分布式环境中,经常需要将Objec ...

  4. Cookie简述

    1. Cookie是什么? Cookie(Cookies,浏览器缓存), 是指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密). 2. Cookie的作用: ...

  5. 关于metaclass,我原以为我是懂的

    关于Python2.x中metaclass这一黑科技,我原以为我是懂的,只有当被打脸的时候,我才认识到自己too young too simple sometimes native. 为什么之前我认为 ...

  6. 用fiddler2调试localhost

    1.用 http://localhost. (locahost紧跟一个点号): 2.用 http://127.0.0.1. (127.0.0.1紧跟一个点号): 3.用 http://machinen ...

  7. 自动化测试selenium(四)check,选中复选框,操作一组元素

    定位复选框位置 打开浏览器,按F12,审查元素 接下来,我们要实现选中复选框 List<WebElement> inputs = driver.findElements(By.tagNam ...

  8. 《第一行代码 android》 读书笔记:找出当前界面对应的Activity

    在android开发中找出当前界面对应的Activity,步骤如下: 新建一个BaseActivity继承自Activity,然后在BaseActivity中重写onCreate()方法,通过getC ...

  9. Selenium_WebDriver_定位元素

    版权声明:本文为博主原创文章,转载请注明出处. 定位单个元素 WebDriver提供了八种元素定位方法,Java中定位语句形如:driver.findElement(By.id()): 何为元素定位? ...

  10. Python数据结构之一——list(列表)

    Python版本:3.6.2  操作系统:Windows   作者:SmallWZQ Python包含6种常见的内建序列.它们分别是列表.元祖.字符串.Unicode字符串.buffer(memory ...