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 ...
随机推荐
- springcloud(四):Eureka的配置详解
在Eureka的服务治理体系中,主要分为服务端和客户端两个不同的角色,服务端为服务注册中心,客户端为提供各个接口的微服务应用,这里介绍一下Eureka的配置. Eureka服务端配置 在实际应用中,我 ...
- springboot2配置druid数据库连接池
注意配置以下的依赖: <!-- 引入druid数据源--> <dependency> <groupId>com.alibaba</groupId> &l ...
- 嘴巴题4 「BZOJ1827」[Usaco2010 Mar] gather 奶牛大集会
1827: [Usaco2010 Mar]gather 奶牛大集会 Description Bessie正在计划一年一度的奶牛大集会,来自全国各地的奶牛将来参加这一次集会.当然,她会选择最方便的地点来 ...
- bash之set命令
set命令是 Bash 脚本的重要环节,却常常被忽视,导致脚本的安全性和可维护性出问题.本文介绍它的基本用法,让你可以更安心地使用 Bash 脚本. 一.简介 我们知道,Bash 执行脚本的时候,会创 ...
- 微信小程序——页面跳转传值
比如从index.wxml跳转到aaa.wxml index.wml <navigator url="../aaa/aaa?id=1" > </navigator ...
- ArcGIS 10.2 for Server 集群部署
ArcGIS 10.2 for Server 具有很灵活的体系结构,而 ArcGIS 10.2 forServer site 可以包含一台或多台安装 GIS Server 的机器,这些参与ArcGI ...
- Spring注解驱动开发(四)-----aop、声明式事务
AOP 概念 指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式:-----基于动态代理 一个aop示例 1.导入aop模块:Spring AOP:(spring-aspects ...
- jeecms项目相关配置文件
1.application-context.xml 这个是Spring的标准配置文件,这里面配置jdbc.properties文件并初始化相应数据库连接参数到bean实例:定义数据库表映射文件*.hb ...
- hdu4565
#include<iostream> #include<cstdio> #include<queue> #include<algorithm> #inc ...
- tmux使用教程
1.安装 2.操作 如何操作快捷键呢? 比如新建一个窗口的命令是:ctrl+b+c 那么,先按住ctrl不放,接着按下b键,然后ctrl和b键都完全松开后,再立马按下c键. 3.使用命令行 tmux ...