设为首页收藏本站

EPS数据狗论坛

搜索
快捷导航
查看: 4063|回复: 7

最简单的评分卡建模指引+最完整的SAS代码

  [复制链接]

21

主题

207

金钱

292

积分

入门用户

发表于 2019-8-5 13:24:25 | 显示全部楼层 |阅读模式

评分模型在银行、信用卡、保险和消费金融等行业都有大量应用场景,从传统的评分卡到各类大数据征信,都可建立一套评分模型来实现。如果不考虑模型的应用部署,单纯建模主要包括4个步骤,8个要点。

1  建模数据准备
1.1 设计目标变量Y
目标变量就是常说的Y,对于大部分评分模型来说,Y为Binary变量,其值为0或1。
例如客户流失评分模型,实质为预测客户近期流失的概率。流失属于事件,事件发生之后只有两个状态:发生(通常用1表示)或者未发生(通常用0表示),而在发生前都不能说完全不会发生或者绝对会发生,而是表现为概率,对流失场景来说即为每个客户的流失率。

1.2 设定时间窗
预测,就是根据已经发生的X(历史数据)提前推测出尚未发生的Y。但在建模的时候,目标变量Y应该也已发生,数据是确定的。怎么实现预测的提前性呢?Y和X的数据取自不同的时间段,X在前,Y在后,即设定两个时间窗。

Y发生的时间窗叫做表现期,需要先确定。例如现在是2016年7月22日,Y为客户半年内是否流失,表现期跨度为半年,通常将上一个月末作为截止点,前推半年(2016-1-1至2016-6-30)作为表现期窗口,期间客户如果流失(例如无任何交易)则赋值“1”,否则赋值“0”,这是Y的取值。

X发生的时间窗叫做观察期,根据表现期窗口前推。观察期与表现期不能有重叠,那么,2015-12-31就是观察期的截止点,通常取1年的数据用于建模,观察期窗口就是2015-1-1至2015-12-31,根据期间发生的各种数据设计一组X变量。

建模数据的时间窗示例
1.jpg

1.3 设计预测变量X
由于不知道哪些变量会准确反映出客户的流失倾向,一个原则就是x多多益善。

首先框定变量的范围。当然,从客户角度来讲,消费、取现、转帐和分期是最主要的用卡行为,用卡行为的变化、投诉、活动参与等情况则体现了用卡意愿,这些变量应该重点设计。

预测变量的设计可以遵循特征维度×统计期方法。

信用卡客户的六个特征维度
2.jpg

预测变量x(部分样例)
3.jpg
经过上面三个步骤,加工出可用于建模的数据宽表,按照客户号一一列出目标变量和预测变量,每个客户一条记录。其中:Csr_Id是客户编号;Sta_Dte是统计日期,即观察期截止日期;Evt_Flg是目标变量Y1——客户半年内是否流失(1表示流失)。表中实际上包括两个时间窗的数据,各个变量按照Sta_Dte分别取截至2015-1-31和2014-12-31的数据,一组数据用于训练模型,另一组为了验证模型效果。

相关书籍中也有将同一个时间窗内的建模数据随机划分为训练集和验证集的方法,这种划分方法不能验证模型的时间稳定性,而且当数据量足够大时,这种方法检验的实际上是随机数。按照时间窗平移的方法,则模拟了模型的实际应用过程,结果更可靠。

建模宽表(部分样例)
4.jpg

2  计算变量的WOE值

2.1 粗分类
针对每个变量x,按照目标变量的分布,进行“有监督”的离散化分组。举个例子,随着持卡时长Csr_Dur的增加,客户的流失率并没有呈现出增加或减少的规律,或者说Csr_Dur这个x与目标变量y不存在线性关系。然而,根据y的分布对Csr_Dur进行分组后发现,Csr_Dur在7~12个月、25~36个月时客户流失率明显更高。经过变量重构,像Csr_Dur这样原本与目标变量没有单调相关关系的连续变量具有了预测能力。不仅连续变量,离散变量具有相同问题。
流失率vs Csr_Dur
5.jpg


2.2 计算分组变量的WOE值和IV值
粗分类之后,全部变为类别变量,需要计算分组后的WOE(Weigh Of Evidence)和IV值(Information Value)值,以WOE值作为新的变量值,IV值则体现了变量对Y的预测能力。WOE和IV值是信息论中体现信息量的指标,经常作为筛选显著变量的依据。
以表中两个变量为例,介绍WOE和IV值得计算方法。
粗分类(类别)变量的woe和iv值计算
6.jpg


3  模型训练

3.1 共线性检验

剔除不能重复使用的变量。方差膨胀因子(VarianceInflation Factor,Vif)是最常用的共线性诊断指标,对于每个预测变量WOE_X,其Vif的计算公式为:Vif=1/(1-Rsquare)。经验判断方法表明:当0<Vif<5,变量间存在较弱的共线性;当5≤Vif<10,存在较强的共线性;当Vif≥10,存在严重的共线性,一般要求Vif小于5。通常根据Vif从大到小逐个剔除变量,重复运行上面的代码,直到所有变量的Vif都降到5以下,除非明确知道哪些变量存在共线性,可以一次性剔除。


3.2 模型训练:显著性检验

选择与Y有强关系的变量X。

经过数据预处理和共线性检验,得到一组与目标变量有一定相关性、彼此独立且分布经过优化的候选变量,接下来就是挑选显著变量训练模型。虽然Logistic非常传统,但仍是最常用的评分模型训练算法,模型可解释、性能较优。SAS的Proc Logistic过程步可实现。

当然,众多分类算法都可用来训练评分模型,轻量级的如决策树、朴素贝叶斯,重量级的如随机森林、GBDT、XGboost。除了算法,直接使用WOE值也是一个行之有效的方法,简单高效易解释。

模型训练之后输出一组打分代码,通常为一组 IfThen规则,建立原始建模变量和目标变量间的关系。


4  模型评估:2条曲线、2个指标
模型不能完全准确的区分出响应客户,而是给响应客户总体更高的打分,因此评估不应针对单个客户,而是针对客群。对于验证集客户,根据预测概率P_1从大到小排序,将全部客户等分为若干组,然后计算每组客户的实际响应率和平均预测概率,并计算KS等相关指标。
7.jpg
拟合曲线(左图):将每组客户的平均预测概率和实际响应率绘制出来,直观展示模型的准确性。解读方法:两条曲线重叠,说明总体预测偏差小;曲线陡峭下降,说明模型区分能力强,能够将潜在流失客户圈定在比较小的范围内;曲线平滑,说明模型较为稳定,无过拟合问题。

ROC曲线(右图))即累计边际响应率,体现模型覆盖响应客户的能力。假设将全部客户随机的等分20组,那么每组将涵盖5%的流失客户,模型的作用就是通过评分将流失客户集中到打分最高的少数几组内。

两个统计指标是KS和LIFT。KS=累计响应率 - 累计未响应率,用于量化评估模型的区分度,通常使用20组中最大的那个值。根据经验,KS介于30%~60%说明模型具有较强的区分度,能够将流失客户区分出来。LIFT体现模型的提升度,即ROC曲线中两个指标的比值,通常特指第一组的最大值,LIFT指相比不使用模型,应用模型能够最大限度的缩小目标客户分布范围的能力。

SAS代码: 代码.rar (13.61 KB, 下载次数: 58)

0

主题

36

金钱

45

积分

新手用户

发表于 2019-10-20 23:33:27 来自手机 | 显示全部楼层
回复可见吗
回复 支持 反对

使用道具 举报

0

主题

34

金钱

41

积分

新手用户

发表于 2019-10-28 16:38:20 来自手机 | 显示全部楼层
谢谢,学习一下!
回复 支持 反对

使用道具 举报

0

主题

32

金钱

39

积分

新手用户

发表于 2019-10-29 15:09:05 来自手机 | 显示全部楼层
谢谢,学习一下
回复 支持 反对

使用道具 举报

0

主题

32

金钱

39

积分

新手用户

发表于 2019-11-21 14:18:22 | 显示全部楼层
回复可见吗
回复 支持 反对

使用道具 举报

0

主题

32

金钱

39

积分

新手用户

发表于 2019-12-22 15:47:58 | 显示全部楼层
哈,看看先
回复

使用道具 举报

0

主题

32

金钱

38

积分

新手用户

发表于 2020-2-27 20:56:40 | 显示全部楼层
支持,看看代码
回复 支持 反对

使用道具 举报

0

主题

32

金钱

39

积分

新手用户

发表于 2020-6-29 15:22:41 | 显示全部楼层
我好难阿
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

客服中心
关闭
在线时间:
周一~周五
9:00-18:00
QQ群:
542280196
联系电话:
010-85786021-8014
在线咨询
客服中心

Powered by BFIT! X3.2© 2008-2018 BFIT Inc.

快速回复 返回顶部 返回列表