今天的内容是来讲我这段时间被模型拟合和模型验证坑过的那些事。我也是千辛万苦终于是把模型给建出来了。此处应该有掌声。因为模型老是效果不好这件事,我躲在被窝里哭了好几次。好吧,讲正事。
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
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%的偏差就建议调节一下分段范围,让分段接近一下原模型的分布。
假设这个办法都让你的模型效果都达到不到领导要求的话,而且你的变量也是没办法怎么衍生,或者也没有什么其他变量可以拿来用的话。假设在数据量足够的情况下,建议可以分成两部分,譬如分成男女分开建模。这种分开建模的方式也只是建议,还是你要征得领导同意啦。