评分卡模型开发(五)--定性指标筛选
转自:https://cloud.tencent.com/developer/article/1016327
定量指标是数值型的,我们还可以用回归的方法来筛选,那么定性的指标怎么办呢? R里面给我们提供了非常强大的IV值计算算法,通过引用R里面的informationvalue包,来计算各指标的IV值,即可得到各定性指标间的重要性度量,选取其中的high predictive指标即可。 有很多小伙伴不知道informationvalue是什么: 我大概说一下,IV值衡量两个名义变量(其中一个是二元变量)之间关联性的常用指标。
library(InformationValue)
library(klaR)
credit_risk<-ifelse(train_kfolddata[,"credit_risk"]=="good",0,1)
#将违约状态变量用0和1表示,1表示违约。
tmp<-train_kfolddata[,-21]
data<-cbind(tmp,credit_risk)
data<-as.data.frame(data)factor_vars<-c("status","credit_history","purpose","savings","employment_duration","personal_status_sex","other_debtors","property","other_installment_plans","housing","job","telephone","foreign_worker")
#获取所有名义变量
all_iv<-data.frame(VARS=factor_vars,IV=numeric(length(factor_vars)),STRENGTH=character(length(factor_vars)),stringsAsFactors = F)
#初始化待输出的数据框
for(factor_var in factor_vars)
{all_iv[all_iv$VARS==factor_var,"IV"]<-InformationValue::IV(X=data[,factor_var],Y=data$credit_risk) #计算每个指标的IV值all_iv[all_iv$VARS==factor_var,"STRENGTH"]<-attr(InformationValue::IV(X=data[,factor_var],Y=data$credit_risk),"howgood") #提取每个IV指标的描述
}
all_iv<-all_iv[order(-all_iv$IV),] #排序IV
由结果可知,可选择的定性入模指标,如表3.12所示。
综上所述,模型开发中定量和定性的入模指标如表3.13所示。
对入模的定量和定性指标,分别进行连续变量分段(对定量指标进行分段),以便于计算定量指标的WOE和对离散变量进行必要的降维。对连续变量的分段方法通常分为等距分段和最优分段两种方法。等距分段是指将连续变量分为等距离的若干区间,然后在分别计算每个区间的WOE值。最优分段是指根据变量的分布属性,并结合该变量对违约状态变量预测能力的变化,按照一定的规则将属性接近的数值聚在一起,形成距离不相等的若干区间,最终得到对违约状态变量预测能力最强的最优分段。
这里再补充一点:
转自:https://zhuanlan.zhihu.com/p/27770760
变量选择:
选择上基本几个方面,客户物理属性,贷前贷中贷后的表现,这里不多叙述,比如逾期,余额等,此处不多叙述。
实际中,在实际应用场景,很多很根据业务背景,构造特征变量(或者称为衍生变量),
形如
x,y和z都是变量,a和b是系数,当然还有很多形式,这方面我请教过很多人,似乎并没有可以套用的经验模板,只能看各位的脑洞了。
而因变量,一般选舆情90天以上的客户标记为0(坏客户),其他为1(好客户)
变量筛选
这里学校的理论都有一堆。
单变量:归一化,离散化,缺失值处理
多变量:降维,相关系数,卡方检验,信息增益。决策树等。
这里讲一种行业经常用的基于IV值进行筛选的方式。
首先引入概念和公式。
IV的全称是Information Value,中文意思是信息价值,或者信息量。
求IV值得先求woe值,这里又引入woe的概念。
WOE的全称是“Weight of Evidence”,即证据权重。
首先把变量分组(怎么分后面说),然后对于每个组i,对于第i组有:
其中 是第i组坏客户数量(bad), 是整体坏客户数量。同理,G就是good,好客户的意思。
woe反映的是在自变量每个分组下违约用户对正常用户占比和总体中违约用户对正常用户占比之间的差异;从而可以直观的认为woe蕴含了自变量取值对于目标变量(违约概率)的影响
而IV值得公式如下:
我们可以看到IV值其实是woe值加权求和。这个加权主要是消除掉各分组中数量差异带来的误差。
比如如果只用woe的绝对值求和,如果一些分组中,A组数量很小,B组数量很大(显然这样的分组不合理),这是B的woe值就很小,A组很大,求和的woe也不会小,显然这样不合理。比如:
最后我们可以根据每个变量VI值的大小排序去筛选变量。VI越大的越要保留。
变量处理
变量离散化:
评分卡模型用的是logistics,基本上都需要变量离散化后,效果才比较好。
离散化一般有几种方式:合并和切割。
合并:先把变量分为N份,然后两两合并,看是否满足停止合并条件。
切割:先把变量一分为二,看切割前后是否满足某个条件,满足则再切割。
而所谓的条件,一般有两种,卡方检验,信息增益。
传送门:卡方检验 卡方检验-百度百科
信息增益 百度百科-信息增益
所以流程总结下来就是
哑变量:
当一些变量是非等级的字符串变量怎么办呢?
比如职业ABC,有的人写成123,其实这样就会有很大误差,ABC3种职业本无关系,但变为123后,1 2之间和1 3之间,似乎前者更加密切,对于模型来说(2-1<3-1)。所以我们需要将其变成哑变量。形如:
N组变量用M个变量的0和1来代替(M肯定小于N),在用这些新变量拟合模型。
评分卡模型开发(五)--定性指标筛选相关推荐
- 信用评分卡模型开发及评估指标
版权声明:本文为博主原创文章,未经博主允许不得转载. 一.信用风险评级模型的类型 信用风险计量体系包括主体评级模型和债项评级两部分.主体评级和债项评级均有一系列评级模型组成,其中主体评级模型可用&qu ...
- 评分卡模型开发(十)--总体流程
转自: https://blog.csdn.net/lll1528238733/article/details/76602006 一.信用风险评级模型的类型 信用风险计量体系包括主体评级模型和债项评级 ...
- 信用标准评分卡模型开发及实现
一.信用风险评级模型的类型 信用风险计量体系包括主体评级模型和债项评级两部分.主体评级和债项评级均有一系列评级模型组成,其中主体评级模型可用"四张卡"来表示,分别是A卡.B卡.C卡 ...
- 信用评分卡模型开发中双峰分布原因及解决方案
信用评分卡模型开发中双峰分布原因及解决方案 文: 郑旻圻 邹钰 刘巧莉 转自: 数信互融 在信用评分卡模型开发过程中,正态性是检验模型信用评分分布是否有效的一个重要指标.正常情况下,标准的正态分 ...
- 评分卡模型开发(四)--定量指标筛选
模型开发的前三步主要讲的是数据处理的方法,从第四步开始我们将逐步讲述模型开发的方法.在进行模型开发时,并非我们收集的每个指标都会用作模型开发,而是需要从收集的所有指标中筛选出对违约状态影响最大的指标, ...
- 评分卡模型开发-定量指标筛选
模型开发的前三步主要讲的是数据处理的方法,从第四步开始我们将逐步讲述模型开发的方法.在进行模型开发时,并非我们收集的每个指标都会用作模型开发,而是需要从收集的所有指标中筛选出对违约状态影响最大的指标, ...
- 评分卡模型开发(七)--基于逻辑回归的标准评分卡实现
由逻辑回归的基本原理,我们将客户违约的概率表示为p,则正常的概率为1-p.因此,可以得到几率,也叫对数比率: 此时,客户违约的概率p可表示为: 评分卡设定的分值刻度可以通过将分值表示为比率对数的线性表 ...
- 评分卡模型开发(六)--WOE值计算
转自:https://cloud.tencent.com/developer/article/1016331 对入模的定量和定性指标,分别进行连续变量分段(对定量指标进行分段),以便于计算定量指标的W ...
- 评分卡模型开发-基于逻辑回归的标准评分卡实现
由逻辑回归的基本原理,我们将客户违约的概率表示为p,则正常的概率为1-p.因此,可以得到: 此时,客户违约的概率p可表示为: 评分卡设定的分值刻度可以通过将分值表示为比率对数的线性表达式来定义,即可表 ...
最新文章
- P1121 环状最大两段子段和
- 基于.NET平台常用的框架整理(转)
- 使用localStorage解决浏览器刷新后无法再从vuex中获取数据的问题
- 彩票模拟选号程序java_java课程设计-彩票购买抽奖程序
- api-ms-win-crt-runtime-l1-1-0.dll和api-ms-win-downlevel-shlwapi-l1-1-0.dll免费下载
- python 实例创建
- 一件事情没弄清楚,十有八九做不好
- 著名NFT藏家WhaleShark的NBA Top Shot账户估值达1580万美元
- RAM调优之日志分析
- android 5.1 内核版本号,最新的安卓5.1.1 ROOT教程(不需要刷第三方内核)
- 入门SVN基础使用教程
- 【Scratch编程案例教学】scratch消灭砖块 scratch编程案例教学 少儿编程教案
- atmega 328P-PU 烧录arduino uno成功(纪念)
- 小米android安装包下载安装,小米应用商店安装包下载
- html各类表格制作,HTML:复杂表格制作
- 我眼中的微软Azure:Microsoft Azure试用 注意
- 购房贷款 等额本息 等额本金
- 利用vbs维护qtp的虚拟对象的坐标
- import mysql.connector 报错
- python unicode转换
热门文章
- Lisp入门(好文)
- 深度学习自学(三十):基于深度学习误排序学习的行人重识别对抗攻击
- 正确下载谷歌浏览器Chrome本地安装包 ,能离线安装
- java代码进行短信接收_自动化测试-自动获取手机短信验证码
- mysql 修改多表数据库_mysql数据库:mysql增删改、单表、多表及子查询
- 响应已被截断_技术:RWD响应式网站网页设计基本原则
- 的有效性最好_股票职业玩家教韭菜实战,验证技术指标的有效性,资产增值是王道...
- python 对角阵_numpy创建单位矩阵和对角矩阵的实例
- java快捷键设置sop,今日工作总结|sop整理
- 微型计算机的输入 输出设备PPT,(微型计算机系统模型).ppt