信用卡评分
2018年3月22日
一、数据准备
1、 问题的准备
• 目标:要完成一个评分卡,通过预测某人在未来两年内将会经历财务危机的可能性来提高信用评分的效果,帮助贷款人做出最好的决策。
• 背景:
– 银行在市场经济中起到至关重要的作用。他们决定谁在什么条件下可以得到融资,并且可以创造或打破投资决策。而市场、社会,以及个人和企业都需要获得贷款。
– 信用评分算法,对默认可能性进行猜测,这是银行用来判断贷款是否应该被授予的方法。
• 准备:
– 首先是基于个人借贷的场景,确定“违约”的定义: 根据新的Basel II Capital Accord(巴塞尔二资本协议),一般逾期90天算作违约。
– 在判别指标上,选择使用历史最大违约天数。
2、数据的获取与整合
• 数据来源:数据来自Kaggle,cs-training.csv是有15万条的样本数据,下图可以看到这份数据的大致情况。下载地址 为:https://www.kaggle.com/c/GiveMeSomeCredit/data
如果下载出现问题,可以在此下载数据:http://download.youkuaiyun.com/download/csqazwsxedc/10228999
• 数据描述:数据属于个人消费类贷款,只考虑评分卡最终实施时能够使用到的数据应从如下一些方面获取数据:
– 基本属性:包括了借款人当时的年龄。
– 偿债能力:包括了借款人的月收入、负债比率。
– 信用往来:两年内35-59天逾期次数、两年内60-89天逾期次数、两年内90天或高于90天逾期的次数。
– 财产状况:包括了开放式信贷和贷款数量、不动产贷款或额度数量。
– 贷款属性:暂无。
– 其他因素:包括了借款人的家属数量(不包括本人在内)。
• 原始变量:
变量名 |
变量类型 |
变量描述 |
SeriousDlqin2yrs |
Y/N |
超过90天或更糟的逾期拖欠 |
RevolvingUtilizationOf UnsecuredLines |
percentage |
无担保放款的循环利用:除了不动产和像车贷那样除以信用额度总和的无分期付款债务的信用卡和个人信用额度总额 |
age |
integer |
借款人当时的年龄 |
NumberOfTime30-59DaysPastDueNotWorse |
integer |
35-59天逾期但不糟糕次数 |
DebtRatio |
percentage |
负债比率 |
MonthlyIncome |
real |
月收入 |
NumberOf OpenCreditLinesAndLoans |
integer |
开放式信贷和贷款数量,开放式贷款(分期付款如汽车贷款或抵押贷款)和信贷(如信用卡)的数量 |
NumberOfTimes90DaysLate |
integer |
90天逾期次数:借款者有90天或更高逾期的次数 |
NumberRealEstateLoans OrLines |
integer |
不动产贷款或额度数量:抵押贷款和不动产放款包括房屋净值信贷额度 |
NumberOfTime60-89DaysPastDueNotWorse |
integer |
60-89天逾期但不糟糕次数:借款人在在过去两年内有60-89天逾期还款但不糟糕的次数 |
NumberOfDependents |
integer |
家属数量:不包括本人在内的家属数量 |
• 时间窗口:自变量的观察窗口为过去两年,因变量表现窗口为未来两年。
二、数据处理
首先去掉原数据中的顺序变量,即第一列的id变量。由于要预测的是SeriousDlqin2yrs变量,因此将其设为响应变量y,其他分别设为x1~x10变量。
1、缺失值分析及处理
在得到数据集后,我们需要观察数据的分布情况,因为很多的模型对缺失值敏感,因此观察是否有缺失值是其中很重要的一个步骤。在正式分析前,我们先通过图形进行对观测字段的缺失情况有一个直观的感受。
观察数据:
> xyk <- read.csv(file.choose())
> dim(xyk)
[1] 150000 12
> head(xyk)
X SeriousDlqin2yrs RevolvingUtilizationOfUnsecuredLines age
1 1 1 0.7661266 45
2 2 0 0.9571510 40
3 3 0 0.6581801 38
4 4 0 0.2338098 30
5 5 0 0.9072394 49
6 6 0