R语言 | 构建信用评分卡模型

本文介绍了如何使用R语言构建信用评分卡模型,涵盖了从数据预处理、异常值处理、变量分箱到模型构建的全过程。数据来源于kaggle的Give Me Some Credit竞赛,涉及申请评分卡的构建,数据预处理包括处理缺失值和异常值,使用Weight of Evidence (WOE) 转换进行变量分箱,最后通过逻辑回归模型生成评分卡。
摘要由CSDN通过智能技术生成

一 . 项目介绍

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天逾期的次数。

  • 财产状况:包括了开放式信贷和贷款数量、不动产贷款或额度数量。

  • 贷款属性:暂无。

  • 其他因素:包括了借款人的家属数量(不包括本人在内)。

640?wx_fmt=jpeg

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)

640?wx_fmt=jpegmonthlyincome(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

  • 4
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值