SAS信用评分之模型拟合以及验证的大坑
今天的内容是来讲我这段时间被模型拟合和模型验证坑过的那些事。我也是千辛万苦终于是把模型给建出来了。此处应该有掌声。因为模型老是效果不好这件事,我躲在被窝里哭了好几次。好吧,讲正事。
leslie模型拟合
首先,我们来讲下模型拟合的事情,其实模型拟合在我这里就是我到底要选择什么变量进入模型,我到底应该选择多少个变量进入模型。我之前发过一个循环产出变量组合代码,然后算ks值的代码。具体链接在这里:SAS信用评分之逻辑回归的变量选择 现在回头看有点瞎,哈哈哈哈哈。
你可能刚开始200个变量变量输入proc
logistic过程,你设置参数 sls=0.05,sle=0.05(SLE:sas中在变量选举进入的参数,SLE(sets
criterion for entry into model)
是变量进入模型的标准即统计意义水平值P<0.3,是定逻辑回归中变量纳入的主要条件。SLS:sas中在变量选举进入的参数,SLS(sets
criterion for staying in
model)是变量在模型中保留的标准即统计意义水平值P<0.3,是定逻辑回归中变量保留的主要条件。逻辑回归变量进入后,因为新的变量进入导致老的变量对整个模型的贡献不足,从中移出的阀值。)0.3是默认条件。那么卡方检验小于0.05的变量都会被筛选出来。
假设你的领导发话了,你最终的模型的变量个数要控制在10-14个,但是这时候可能筛选出来有30几个。那么这30几个你要怎么知道那十几个组合,ks很好,而且达到了要求,之前有人说用主成分分析,主成分分析的理论好像也有这个道理。但是需要注意的是:
小知识
主成分分析:利用降维(线性变换)的思想,在损失很少信息的前提下把多个指标转化为几个综合指标(主成分),用综合指标来解释多变量的方差-
协方差结构,即每个主成分都是原始变量的线性组合,且各个主成分之间互不相关,使得主成分比原始变量具有某些更优越的性能(主成分必须保留原始变量90%以上的信息),从而达到简化系统结构,抓住问题实质的目的综合指标即为主成分。
但是在我脑子存在的逻辑回归理论是,逻辑回归是一个非线性回归,自然就推翻了主成分分析来降维的方案。具体的为什么不可以用主成分分析,欢迎大神在留言区给出更具体的解释。
我们回到我们那个筛选出来的30几个变量的问题上。其实这个方法是一个关注我公众号的大神告诉我的,谢谢大神。让我来演示一下代码。
Ods Output ParameterEstimates=aa ;
proc logistic data=raw.rong_test12 outest=bb ;
model APPL_STATUS_1(event="1")=
woe_new_industry
woe_new_G_MARITAL_P
woe_new_Q_TLNINE_CNT
woe_new_EDUCATION
woe_new_query_time_n
woe_new_OPERATOR_num_N
woe_new_q_lcc_six
woe_new_a_muser_rate
woe_new_cq_cc_rate
woe_new_o_recently_C
woe_new_q_cc_o
woe_new_q_othree_cnt
woe_new_ACCOUNT_HOUSELOAN
woe_new_c_DELQ_cnt
/selection=score start=14 stop=14 best=10
outROC=ROC_train;
output out=pp
p=pred_status lower=pi_l upper=pi_u ;
run;
其实这个代码中,可能你觉得有疑问就是start=14
stop=14
best=10这三个参数是什么意思。这三个参数的大概的意思就是表达,我要14个变量,然后,你显示前十种最好的组合给我。
小知识
卡方检验就是统计样本的实际观测值与理论推断值之间的偏离程度,实际观测值与理论推断值之间的偏离程度就决定卡方值的大小,卡方值越大,越不符合;卡方值越小,偏差越小,越趋于符合,若两个值完全相等时,卡方值就为0,表明理论值完全符合。

然后代码跑出来就有“评分卡方”评分的前十个的变量组合,这时候你要是设定best=20,那就是前20。至于这个得分是怎么计算的,我等级还不够,所以我没办法解释。Sorry啦。
那么这10种组合你就可以去挑选,符合业务的啊,或者说ks值比较高的,或者说你做点其他的检验计算,就看你的领导对于模型的评估啦。
以上就是模型拟合的内容,其实还是选择变量的内容啦。
leslie模型检验
验证的内容。其实验证同个数据源的测试数据集的测试这个是比较简单的,毕竟这批数据是跟你的训练数据集一起产生的。有点麻烦是关于跨期数据的验证,这里的跨期的意思,是譬如我取得是2015.8-2016.8的数据,那么我会用2016.9-2016.10的数据作为跨期数据来验证下原模型的效果。
这部分我就没什么代码给你们啦,只是在这里要说一个注意的点,这也是一个关注我的公众号的大神告诉我的。就是在跨期验证的时候,可能效果不是很理想,但是这时候呢,你不要急于泄气。
现在我举一个例子,说下你大概就懂了。
跨期验证某变量的分布:

原模型某变量的分布:

这是一个连续变量在跨期验证以及原模型中分段的分布。那么既然分段的坏账率我们没办法控制,但是需要控制的是,分段的分布我们还是应该调节到和原来模型的分布是差不多,所以在生成跨期数据的时候,需要每个变量都检查跟原来的分布是不是一致,假设对于连续变量分布有5%-10%的偏差就建议调节一下分段范围,让分段接近一下原模型的分布。
假设这个办法都让你的模型效果都达到不到领导要求的话,而且你的变量也是没办法怎么衍生,或者也没有什么其他变量可以拿来用的话。假设在数据量足够的情况下,建议可以分成两部分,譬如分成男女分开建模。这种分开建模的方式也只是建议,还是你要征得领导同意啦。
SAS信用评分之模型拟合以及验证的大坑的更多相关文章
- SAS信用评分之逻辑回归的变量选择
SAS信用评分之逻辑回归的变量选择 关于woe的转化,这一部在之前的这篇文章:sas批量输出变量woe值中已经写了,woe也只是简单的公式转化而已,所以在这系列中就不细究了哈.这次的文章我想来讲逻辑回 ...
- sas信用评分之第二步变量筛选
sas信用评分之第二步变量筛选 今天介绍变量初步选择.这部分的内容我就只介绍information –value,我这次做的模型用的逻辑回归,后面会更新以基尼系数或者信息熵基础的筛选变量,期待我把. ...
- SAS信用评分之番外篇异常值的识别
SAS信用评分之番外篇异常值的识别 今天想分享给大家的是我早期建模的时候一个识别异常值的办法,也许你在"信用风险评分卡研究"看过,但是代码只能识别一个变量,我将这个代码作了改良,但 ...
- 3分钟搞明白信用评分卡模型&模型验证
信用评分卡模型在国外是一种成熟的预测方法,尤其在信用风险评估以及金融风险控制领域更是得到了比较广泛的使用,其原理是将模型变量WOE编码方式离散化之后运用logistic回归模型进行的一种二分类变量的广 ...
- WOE:信用评分卡模型中的变量离散化方法(生存分析)
WOE:信用评分卡模型中的变量离散化方法 2016-03-21 生存分析 在做回归模型时,因临床需要常常需要对连续性的变量离散化,诸如年龄,分为老.中.青三组,一般的做法是ROC或者X-tile等等. ...
- 信用评分卡 (part 6 of 7)
python信用评分卡(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_camp ...
- 信用评分卡 (part 2of 7)
python信用评分卡(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_camp ...
- 信用评分卡 (part 1 of 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 ...
随机推荐
- 在scrapy中过滤重复的数据
当为了确保爬到的数据中没有重复的数据的时候,可以实现一个去重的item pipeline 增加构造器方法,在其中初始化用于对与书名的去重的集合 在process_item方法中,先取出item中要判断 ...
- charles-截取移动端请求-设置代理
Charles 上的设置 1. 要截取 iPhone 上的网络请求,我们首先需要将 Charles 的代理功能打开.在 Charles 的菜单栏上选择 “Proxy”–>“Proxy Se ...
- 第一次个人项目【词频统计】——测试样例分析&性能分析
[空文件测试](认为空文件行数为0) [基本测试] [大小写测试] 可以看出abcd同类型的词出现了三次,而单词树中存储的是ABCd,满足大小写要求. [复杂文件测试] 前三项数据比较接近,但是单词和 ...
- 使用 jQuery 设置 disabled 属性与移除 disabled 属性
表单中readOnly和disabled的区别:Readonly只针对input(text/ password)和textarea有效,而disabled对于所有的表单元素都有效,包括select,r ...
- Diff- Linux必学的60个命令
1.作用 diff命令用于两个文件之间的比较,并指出两者的不同,它的使用权限是所有用户. 2.格式 diff [options] 源文件 目标文件 3.[options]主要参数 -a:将所有文件当作 ...
- Luogu P3209 [HNOI2010]平面图判定(2-SAT)
P3209 [HNOI2010]平面图判定 题意 题目描述 若能将无向图\(G=(V,E)\)画在平面上使得任意两条无重合顶点的边不相交,则称\(G\)是平面图.判定一个图是否为平面图的问题是图论中的 ...
- CentOS 6.5 源码编译搭建LAMP(两台独立主机实现)
搭建前准备: 1.两台独立主机 httpd:192.168.1.105 php-fpm:192.168.1.105 mariadb:192.168.1.103 2.相关软件的源码包 httpd:htt ...
- LUOGU P1970 花匠 (Noip 2013)
传送门 解题思路 好多大佬用的dp啊,貌似贪心可以做,每次所选的一定是每个连续递增或递减序列的最后,直接模拟就行了,注意判断一下头和尾相等的情况. #include<iostream> # ...
- Codec入门
Codec 提供了一些公共的编解码实现,比如Base64, Hex, MD5等等. 工具类 package com.cxl.beanutil.util; import org.apache.commo ...
- 一句代码上传MultipartFile图片到指定文件夹
代码如下: public class TestFile { void upload(MultipartFile file) throws IOException { file.transferTo(n ...