模型开发的前三步主要讲的是数据处理的方法,从第四步开始我们将逐步讲述模型开发的方法。在进行模型开发时,并非我们收集的每个指标都会用作模型开发,而是需要从收集的所有指标中筛选出对违约状态影响最大的指标,作为入模指标来开发模型。接下来,我们将分别介绍定量指标和定性指标的筛选方法。

library(InformationValue)
library(klaR)
data(GermanCredit)
train_kfold<-sample(nrow(GermanCredit),800,replace=F)
train_kfolddata<-GermanCredit[train_kfold,]
test_kfolddata<-GermanCredit[-train_kfold,]#将违约样本用“1”表示,正常样本用“0”表示。
credit_risk<-ifelse(train_kfolddata[,"credit_risk"]=="good",0,1)
tmp<-train_kfolddata[,-21]
data<-cbind(tmp,credit_risk)
#获取定量指标
quant_vars<-c("duration","amount","installment_rate","present_residence","age","number_credits","people_liable","credit_risk")
quant_GermanCredit<-data[,quant_vars]   #提取定量指标

(1)第一种定量指标的筛选方法:用随机森林法寻找自变量中对违约状态影响最显著的指标,代码如下:

#第一种方法:随机森林法
library(party)
cf1<-cforest(credit_risk~.,data = quant_GermanCredit,controls = cforest_unbiased(mtry=2,ntree=50))
varimp(cf1)
#基于变量均值的精度下降,获取自变量的重要性
#mtry代表在每一棵树的每个节点处随机抽取mtry 个特征,通过计算每个特征蕴含的信息量,特征中选择一个最具有分类能力的特征进行节点分裂。
#varimp代表重要性函数。

varimp(cf1,conditional = TRUE)
#经过变量间的相关系数调整后,获取自变量的重要性

varimpAUC(cf1)
#经过变量间的不平衡性调整后,获取自变量的重要性

(2)第二种定量指标的筛选方法:计算变量间的相对重要性,并通过相对重要性的排序,获取自变量中对违约状态影响最显著的指标,代码如下:

#第二种方法:计算变量间的相对重要性,回归法
library(relaimpo)
lmMod<-lm(credit_risk~.,data = quant_GermanCredit)  #线性回归
relImportance<-calc.relimp(lmMod,type = "lmg",rela = TRUE)#计算自变量间的相对重要性
sort(relImportance$lmg,decreasing = TRUE)
#排序并输出自变量间的相对重要性

(3)第三种定量指标的筛选方法:通过自变量间的广义交叉验证法,获取自变量中对违约状态影响最显著的指标,代码如下:

#第三种方法:自变量间的广义交叉验证法
library(earth)
marsModel<-earth(credit_risk~.,data = quant_GermanCredit)
ev<-evimp(marsModel)
ev
#经过自变量间的广义交叉验证后,获取自变量的重要性

(4)第四种定量指标的筛选方法:通过自变量的逐步回归法,获取自变量中对违约状态影响最显著的指标,代码如下:

#第四种方法:自变量的逐步回归法
base.mod<-lm(credit_risk~1,data = quant_GermanCredit)#获取线性回归模型的截距
all.mod<-lm(credit_risk~.,data = quant_GermanCredit)#获取完整的线性回归模型
stepMod<-step(base.mod,scope = list(lower=base.mod,upper=all.mod),direction = "both",trace = 0,steps = 1000)#采用双向逐步回归法,筛选变量
shortlistedVars<-names(unlist(stepMod[[1]]))#获取逐步回归得到的变量列表
shortlistedVars<-shortlistedVars[!shortlistedVars %in%"(Intercept)"]#删除逐步回归的截距
print(shortlistedVars)
#输出逐步回归后得到的变量

(5)第五种定量指标的筛选方法:采用“Boruta”法,获取自变量中对违约状态影响最显著的指标,代码如下:

#第五种方法:"Boruta"法
library(Boruta)
boruta_output<-Boruta(credit_risk~.,data = na.omit(quant_GermanCredit),doTrace=2)
boruta_signif<-names(boruta_output$finalDecision[boruta_output$finalDecision %in%c("Confirmed","Tentative")])
#获取自变量中确定的和实验性的指标
print(boruta_signif)
#Levels: Tentative Confirmed Rejected
#Confirmed坚定的;Tentative踌躇的;Rejected拒绝的

plot(boruta_output,cex.axis=.7,las=2,xlab="",main="Variable Importance")
#绘制变量显著性表示的箱图


图3.9 箱图表示变量重要性(Boruta法)

综上,我们共计详细使用了五种定量指标入模的方法,在实际的模型开发过程中,我们可以只选择其中一种方法,也可以结合多种方法,来筛选出定量数据的入模指标。综合这五种方法,我们筛选出了对违约状态影响最显著的四个入模指标,如表3.11所示。

定性指标筛选见下篇:
http://blog.csdn.net/lll1528238733/article/details/76600147

评分卡模型开发-定量指标筛选相关推荐

  1. 评分卡模型开发-定性指标筛选

    定量指标是数值型的,我们还可以用回归的方法来筛选,那么定性的指标怎么办呢? R里面给我们提供了非常强大的IV值计算算法,通过引用R里面的informationvalue包,来计算各指标的IV值,即可得 ...

  2. 信用评分卡模型开发及评估指标

    版权声明:本文为博主原创文章,未经博主允许不得转载. 一.信用风险评级模型的类型 信用风险计量体系包括主体评级模型和债项评级两部分.主体评级和债项评级均有一系列评级模型组成,其中主体评级模型可用&qu ...

  3. 评分卡模型开发(十)--总体流程

    转自: https://blog.csdn.net/lll1528238733/article/details/76602006 一.信用风险评级模型的类型 信用风险计量体系包括主体评级模型和债项评级 ...

  4. 信用标准评分卡模型开发及实现

    一.信用风险评级模型的类型 信用风险计量体系包括主体评级模型和债项评级两部分.主体评级和债项评级均有一系列评级模型组成,其中主体评级模型可用"四张卡"来表示,分别是A卡.B卡.C卡 ...

  5. 信用评分卡模型开发中双峰分布原因及解决方案

    信用评分卡模型开发中双峰分布原因及解决方案   文: 郑旻圻 邹钰 刘巧莉 转自:  数信互融 在信用评分卡模型开发过程中,正态性是检验模型信用评分分布是否有效的一个重要指标.正常情况下,标准的正态分 ...

  6. 评分卡模型开发(四)--定量指标筛选

    模型开发的前三步主要讲的是数据处理的方法,从第四步开始我们将逐步讲述模型开发的方法.在进行模型开发时,并非我们收集的每个指标都会用作模型开发,而是需要从收集的所有指标中筛选出对违约状态影响最大的指标, ...

  7. 评分卡模型开发(五)--定性指标筛选

    转自:https://cloud.tencent.com/developer/article/1016327 定量指标是数值型的,我们还可以用回归的方法来筛选,那么定性的指标怎么办呢? R里面给我们提 ...

  8. 评分卡模型开发(七)--基于逻辑回归的标准评分卡实现

    由逻辑回归的基本原理,我们将客户违约的概率表示为p,则正常的概率为1-p.因此,可以得到几率,也叫对数比率: 此时,客户违约的概率p可表示为: 评分卡设定的分值刻度可以通过将分值表示为比率对数的线性表 ...

  9. 评分卡模型开发(六)--WOE值计算

    转自:https://cloud.tencent.com/developer/article/1016331 对入模的定量和定性指标,分别进行连续变量分段(对定量指标进行分段),以便于计算定量指标的W ...

最新文章

  1. DDR的前世与今生(一)
  2. 斗罗大陆html5游戏在线玩,斗罗大陆H5在线玩
  3. 已知贝塞尔曲线上的点求控制点
  4. 作业 利用单选框控制图片的显示
  5. unicode html转义字符,HTML转义字符 Unicode和CSS伪类介绍(示例代码)
  6. Only a type can be imported. xxxx resolves to a package
  7. redis的持久化(RDB与AOF)未完待续
  8. Java:jdk8中map新增的merge方法
  9. 分享美容美发预约下单小程序开发制作功能介绍
  10. 如何测试光纤系统中的插入损耗
  11. pycharm在win7下键盘错乱
  12. java 自定义控件_自定义控件的开发
  13. 血氧仪电路方案开发--PCBA方案
  14. android 服务自动运行怎么办,怎么解决安卓软件服务停止后又自启?
  15. AXI_Round_Robin_Arbiter 设计 - AW、W通道部分
  16. 有没有在线抠图网页版?这两个方法轻松制作
  17. 精诚EAS-WMS条码化仓库物流软件
  18. 耶鲁大学博弈论公开课全24集第19集笔记:招商引资和战略投资
  19. Socket.io 聊天室(代码已开源)
  20. 三菱PLC4轴控制伺服完整案例,三菱PLC FX3U加三菱1PG定位模块控制4个松下伺服,有完整的注释,结构清晰明了

热门文章

  1. 浅拷贝如何成为深拷贝1
  2. select .... for update究竟锁表还是锁行?
  3. 大数据方案-数仓建设
  4. 微信小程序组件样式修改
  5. 【IntelliJ IDEA】IDEA创建项目
  6. linux kernel setup_arch
  7. c# 访问共享文件夹 用户名或密码不正确 及 拒绝访问
  8. 撤销与取消撤销快捷键
  9. leetcode 探索 数组和字符串 验证回文串
  10. xpath爬取手机壁纸