Lending Club信贷违约风险分析(R语言)
数据来源
https://www.kaggle.com/wendykan/lending-club-loan-data 包含226万个样本,145个字段。
数据处理
library(rio) #导入导出数据的包
loan <- import('loan.csv')
str(loan)
查看并处理缺失值
NAcol <- which(colSums(is.na(loan))>0) #包含缺失值的特征列序号
library(knitr) #使用其中的kable函数制表
kable(sort(colSums(sapply(loan[NAcol], is.na)),decreasing = T) )#按降序列出特征缺失值数量
特征 | 缺失数量 |
---|---|
id | 2260668 |
member_id | 2260668 |
url | 2260668 |
orig_projected_additional_accrued_interest | 2252242 |
deferral_term | 2250055 |
hardship_amount | 2250055 |
hardship_length | 2250055 |
hardship_dpd | 2250055 |
hardship_payoff_balance_amount | 2250055 |
hardship_last_payment_amount | 2250055 |
settlement_amount | 2227612 |
settlement_percentage | 2227612 |
settlement_term | 2227612 |
sec_app_mths_since_last_major_derog | 2224726 |
sec_app_revol_util | 2154484 |
revol_bal_joint | 2152648 |
sec_app_inq_last_6mths | 2152647 |
sec_app_mort_acc | 2152647 |
sec_app_open_acc | 2152647 |
sec_app_open_act_il | 2152647 |
sec_app_num_rev_accts | 2152647 |
sec_app_chargeoff_within_12_mths | 2152647 |
sec_app_collections_12_mths_ex_med | 2152647 |
dti_joint | 2139962 |
annual_inc_joint | 2139958 |
mths_since_last_record | 1901512 |
mths_since_recent_bc_dlq | 1740967 |
mths_since_last_major_derog | 1679893 |
mths_since_recent_revol_delinq | 1520309 |
mths_since_last_delinq | 1158502 |
il_util | 1068850 |
mths_since_rcnt_il | 909924 |
all_util | 866348 |
open_acc_6m | 866130 |
total_cu_tl | 866130 |
inq_last_12m | 866130 |
open_act_il | 866129 |
open_il_12m | 866129 |
open_il_24m | 866129 |
total_bal_il | 866129 |
open_rv_12m | 866129 |
open_rv_24m | 866129 |
max_bal_bc | 866129 |
inq_fi | 866129 |
mths_since_recent_inq | 295435 |
num_tl_120dpd_2m | 153657 |
mo_sin_old_il_acct | 139071 |
bc_util | 76071 |
percent_bc_gt_75 | 75379 |
bc_open_to_buy | 74935 |
mths_since_recent_bc | 73412 |
pct_tl_nvr_dlq | 70431 |
avg_cur_bal | 70346 |
mo_sin_old_rev_tl_op | 70277 |
mo_sin_rcnt_rev_tl_op | 70277 |
num_rev_accts | 70277 |
tot_coll_amt | 70276 |
tot_cur_bal | 70276 |
total_rev_hi_lim | 70276 |
mo_sin_rcnt_tl | 70276 |
num_accts_ever_120_pd | 70276 |
num_actv_bc_tl | 70276 |
num_actv_rev_tl | 70276 |
num_bc_tl | 70276 |
num_il_tl | 70276 |
num_op_rev_tl | 70276 |
num_rev_tl_bal_gt_0 | 70276 |
num_tl_30dpd | 70276 |
num_tl_90g_dpd_24m | 70276 |
num_tl_op_past_12m | 70276 |
tot_hi_cred_lim | 70276 |
total_il_high_credit_limit | 70276 |
num_bc_sats | 58590 |
num_sats | 58590 |
acc_open_past_24mths | 50030 |
mort_acc | 50030 |
total_bal_ex_mort | 50030 |
total_bc_limit | 50030 |
revol_util | 1802 |
dti | 1711 |
pub_rec_bankruptcies | 1365 |
collections_12_mths_ex_med | 145 |
chargeoff_within_12_mths | 145 |
tax_liens | 105 |
inq_last_6mths | 30 |
delinq_2yrs | 29 |
open_acc | 29 |
pub_rec | 29 |
total_acc | 29 |
acc_now_delinq | 29 |
delinq_amnt | 29 |
emp_title | 10 |
annual_inc | 4 |
title | 1 |
由上表看到,特征的缺失值数量有明显的断层,86W以上的直接删除变量,30W以下的删除掉含有缺失值的样本。
loan<-loan[,which(colSums(is.na(loan))<500000)]
loan <- loan[which(rowSums(is.na(loan))==0),]
还剩下101个变量,一般的评分模型或预测模型最终使用的变量再15~20个左右。那么对结果无影响的变量可以剔除。最终挑选以下变量做分析。
字段 | 释义 |
---|---|
term | 还款周期 |
loan_amnt | 贷款金额 |
int_rate | 贷款利率 |
installment | 月还款额 |
grade | 用户等级(影响额度及利率) |
emp_length | 工作年限 |
home_ownership | 房产状态(包括租赁、抵押、拥有、其他) |
annual_inc | 年收入(用户提供) |
verification_status | 年收入是否经过核实 |
loan_status | 贷款状态(需要预测的变量) |
addr_state | 州(区域特征) |
dti | 负债收入比((月还款/总负债)/月收入) |
delinq_2yrs | 两年内逾期30天以上次数 |
inq_last_6mths | 近六个月征信查询次数 |
open_acc | 未结清贷款数量 |
revol_util | 可用贷款使用率 |
out_prncp | 未还本金总额 |
total_pymnt | 已还金额 |
total_rec_int | 已还利息(包含在已还金额中) |
acc_now_delinq | 有欠款的账户数 |
tot_coll_amt | 欠款总额 |
tot_cur_bal | 所有账户总欠款额 |
acc_open_past_24mths | 24个月内申请量 |
mo_sin_old_il_acct | 第一次申请距今时间(月) |
mo_sin_rcnt_tl | 最后一次申请距今时间(月) |
mths_since_recent_inq | 最近一次征信查询(月) |
mort_acc | 抵押账户数量 |
num_actv_bc_tl | 有效银行卡数量 |
num_actv_rev_tl | 活跃的循环交易次数 |
num_tl_op_past_12m | 过去12个月开设的账户数 |
pct_tl_nvr_dlq | 无拖欠行为交易占比 |
tot_hi_cred_lim | 最高额度 |
debt_settlement_flag | 是否与债务清算公司合作 |
生成新的数据集
loan <- loan[,c("term","loan_amnt","int_rate","installment","grade","emp_length","home_ownership","annual_inc","verification_status","loan_status","addr_state","dti","delinq_2yrs","inq_last_6mths","open_acc","revol_util","out_prncp","total_pymnt","total_rec_int","acc_now_delinq","tot_coll_amt","tot_cur_bal","acc_open_past_24mths","mo_sin_old_il_acct","mo_sin_rcnt_tl","mths_since_recent_inq","mort_acc","num_actv_bc_tl","num_actv_rev_tl","num_tl_op_past_12m","pct_tl_nvr_dlq","tot_hi_cred_lim","debt_settlement_flag")]
strt(loan)
特征工程
1,term和emp_length的值都是字符串,提取其中的数字,并转换为因子变量
emp_length值为n/a的按0处理,<1 year 按照1 year处理,10+years按照10years处理。
library(stringr) #数据处理
library(ggplot2) #绘图
loan$term <- as.factor(str_extract(loan$term,'\\d+')) #提取term字符串中的数字
loan$emp_length[loan$emp_length == 'n/a' ] <- 0
loan$emp_length <- as.factor(str_extract(loan$emp_length,'\\d+'))
2,
library(plyr)
loan$grade <- mapvalues(loan$grade,c('A','B','C','D','E','F','G'),c('1','2','3','4','5','6','7'))
loan$grade <- as.factor(loan$grade)
Lending Club信贷违约风险分析(R语言)相关推荐
- Lending Club贷款违约预测
目录 项目简介及目标 数据概览 2.1数据来源 2.2数据结构图 2.3数据变量表 2.4离散型数据分布 2.5连续型数据分布 数据处理及特征选择 3.1目标值量化 3.2删除字段 3.3缺失值处理 ...
- R语言基于决策树的银行信贷风险预警模型
引言 我国经济高速发展,个人信贷业务也随着快速发展,而个人信贷业务对提高内需,促进消费也有拉动作用.有正必有反,在个人信贷业务规模不断扩大的同时,信贷的违约等风险问题也日益突出,一定程度上制约着我国 ...
- R语言用CPV模型的房地产信贷信用风险的度量和预测
全文链接:http://tecdat.cn/?p=30401 本文基于 CPV 模型, 对房地产信贷风险进行了度量与预测.我们被客户要求撰写关于CPV模型的研究报告(点击文末"阅读原文&qu ...
- R语言使用cmprsk包的crr函数进行生存资料的多因素竞争风险分析(Competing Risks Regression)
R语言使用cmprsk包的crr函数进行生存资料的多因素竞争风险分析(Competing Risks Regression) 目录
- 分类树/装袋法/随机森林算法的R语言实现
原文首发于简书于[2018.06.12] 本文是我自己动手用R语言写的实现分类树的代码,以及在此基础上写的袋装法(bagging)和随机森林(random forest)的算法实现.全文的结构是: 分 ...
- R语言 RevoScaleR的大规模数据集决策树模型应用案例
RevoScaleR中的rxDTree函数使用基于分类的递归分区算法来拟合基于树的模型得到的模型类似于推荐的ř包rpart包产生的模型支持分类型树和回归型树.; 与rpart包一样,差异由响应变量的性 ...
- 基于Python对Lending Club信贷业务数的分析
项目背景 作为旧金山的一家个人对个人的借贷公司,Lending Club成立于2006年.他们是第一家注册为按照美国证券交易委员会SEC(Securities and Exchange Commiss ...
- Lending Club贷款数据分析
python信用评分卡(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_camp ...
- R语言CART决策树、随机森林、chaid树预测母婴电商平台用户寿命、流失可视化
全文链接:http://tecdat.cn/?p=31644 借着二胎政策的开放与家庭消费升级的东风,母婴市场迎来了生机盎然的春天,尤其是母婴电商行业,近年来发展迅猛(点击文末"阅读原文&q ...
最新文章
- 5个最佳的Android测试框架
- 查看linux上面是否有安装redis,redis启动
- markdown常用操作(特殊字符显示、换行、字体颜色和大小、图片位置和大小)
- HDU - 5686-Problem B (递推+高精)
- pt939g联通_尝试修改友华PT939G的省份设置,成功!
- 实战课堂:为什么更换存储之后一切正常但RAC集群启动不了?
- 20220213:力扣第280场周赛(上)
- thinkphp3.2独立分组的建立
- 普及一下行业尖端知识——腾讯自研分布式数据库TBase
- 华为机试(C++)真题Od
- 锐龙cpu能装linux吗,AMD CPU怎么安装?AMD锐龙处理器与主板安装图解教程
- 月星当空,月光洒落树梢透进窗户,白的苦楚,寥寂随之上心头
- Blender插件开发:用fake-bpy-module提供代码补全
- MATLAB实现控制系统的根轨迹分析
- 3-python 函数篇
- java 将.amr音频文件转换为.mp3或.wav文件
- pip 因为网络问题而导致安装库失败
- vue element el-date-picker绑定对象 v-model=‘xx.xx‘清空后数据还是显示
- 51Nod 1631 小鲨鱼在51Nod小学 【 扫描线 】
- 论文阅读:Pixel-level Extrinsic Self Calibration of High Resolution LiDAR and Camera