一 . 项目介绍
1.1 概述
如今在银行、消费金融公司等各种贷款业务机构,普遍使用信用评分,对客户实行打分制,以期对客户有一个优质与否的评判。其实信用评分卡还分A,B,C卡三类:
A卡(Application score card)申请评分卡
B卡(Behavior score card)行为评分卡
C卡(Collection score card)催收评分卡
信用评分是指根据银行客户的各种历史信用资料,利用一定的信用评分模型,得到不同等级的信用分数,根据客户的信用分数,授信者可以通过分析客户按时还款的可能性,据此决定是否给予授信以及授信的额度和利率。
1.2 数据来源
本项目数据来源于kaggle竞赛Give Me Some Credit,有15万条样本数据。
下载地址:
https://www.kaggle.com/c/GiveMeSomeCredit/data
1.3 目标
一般申请信用评分卡的构建
二 . 数据预处理
2.1 数据描述
数据属于个人消费类贷款,只考虑评分卡最终实施时能够使用到的数据应从如下一些方面获取数据:
基本属性:包括了借款人当时的年龄。
偿债能力:包括了借款人的月收入、负债比率。
信用往来:两年内35-59天逾期次数、两年内60-89天逾期次数、两年内90天或高于90天逾期的次数。
财产状况:包括了开放式信贷和贷款数量、不动产贷款或额度数量。
贷款属性:暂无。
其他因素:包括了借款人的家属数量(不包括本人在内)。
2.2 数据处理
首先去掉原数据中的顺序变量,即第一列的id变量。由于要预测的是SeriousDlqin2yrs变量,因此将其设为响应变量y,其他分别设为x1~x10变量。
## 导入数据
rm(list = ls())
setwd('D:\\评分卡模型')
getwd()
a<-read.csv('cs_training.csv',header = T,stringsAsFactors = F)
a
str(a)
## 给列名重命名
colnames(a)
colnames(a)<-c("id","y","x1","x2","x3","x4","x5","x6","x7","x8","x9","x10")
summary(a)
2.3 缺失值分析及处理
在得到数据集后,我们需要观察数据的分布情况,因为很多的模型对缺失值敏感,因此观察是否有缺失值是其中很重要的一个步骤。在正式分析前,我们先通过图形进行对观测字段的缺失情况有一个直观的感受。
# 查看数据集缺失数据
md.pattern(a)
monthlyincome(X5)列共有缺失值29731个,numberofdependents(X10)有3924个。
# 对x5缺失处理
x5<-a$x5
x5_var<-c(
var="x5",
mean=mean(x5,na.rm=TRUE) , #na.rm=TRUE去除NA的影响
median=median