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 ...
最新文章
- 数据库表(字段类型、约束、截断表、修改表字段、重命名表)
- 所有机器学习项目都适用的检查清单
- C# 调Win32 API SendMessage简单用法及wMsg常量
- 在CockroachDB上运行Flowable
- Spring @Value取值为null或@Autowired注入失败
- 前端学习(1578):React简介
- 阿里对mysql的优化_阿里P8架构师谈:MySQL慢查询优化、索引优化、以及表等优化总结...
- pytorch 绘制多个算法loss_PyTorch线性模型和梯度下降
- Hibernate学习基本配置
- html输入输出文件,学习如何用 C 语言来进行文件输入输出操作
- OFFICE拼写语法检查:WORD是怎么做的?
- Shell命令打包Android apk
- esp8266教程:GPIO输入输出模式
- 共聚焦扫描显微镜的工作原理
- Android 使用 Android Studio 把图片转为WebP格式来减小图片的大小
- auto.js启动app
- Dockerfile的编写
- NEFU 1266 快乐的雨季 (线段树)
- Ajax XHR响应
- 沉睡者 - 网赚创业VIP项目课程-持续更新中...
热门文章
- 微信小程序、微信小游戏作品汇总合集,各种好玩的小程序
- 论文阅读笔记(五)——狐猴识别系统:一种便于狐猴个体识别的面部识别系统
- 基于uml的大学图书馆图书信息管理系统设计实验_全国大学最美图书馆排行!这个学校居然有按摩服务?!...
- python爬取新浪微博数据中心_Python爬虫框架Scrapy实战之批量抓取招聘信息
- 工信部新规本月底施行 未经用户同意发送商业短信将被罚款
- 我用 python 做了款可开淘宝店赚钱的工具!
- python 腾讯视频签到_Python处理腾讯视频
- 人工智能发展的三个热潮
- 软件测试阶段划分以及测试分类
- 心理测试小程序怎么做