数据来源

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语言)相关推荐

  1. Lending Club贷款违约预测

    目录 项目简介及目标 数据概览 2.1数据来源 2.2数据结构图 2.3数据变量表 2.4离散型数据分布 2.5连续型数据分布 数据处理及特征选择 3.1目标值量化 3.2删除字段 3.3缺失值处理 ...

  2. R语言基于决策树的银行信贷风险预警模型

     引言 我国经济高速发展,个人信贷业务也随着快速发展,而个人信贷业务对提高内需,促进消费也有拉动作用.有正必有反,在个人信贷业务规模不断扩大的同时,信贷的违约等风险问题也日益突出,一定程度上制约着我国 ...

  3. R语言用CPV模型的房地产信贷信用风险的度量和预测

    全文链接:http://tecdat.cn/?p=30401 本文基于 CPV 模型, 对房地产信贷风险进行了度量与预测.我们被客户要求撰写关于CPV模型的研究报告(点击文末"阅读原文&qu ...

  4. R语言使用cmprsk包的crr函数进行生存资料的多因素竞争风险分析(Competing Risks Regression)

    R语言使用cmprsk包的crr函数进行生存资料的多因素竞争风险分析(Competing Risks Regression) 目录

  5. 分类树/装袋法/随机森林算法的R语言实现

    原文首发于简书于[2018.06.12] 本文是我自己动手用R语言写的实现分类树的代码,以及在此基础上写的袋装法(bagging)和随机森林(random forest)的算法实现.全文的结构是: 分 ...

  6. R语言 RevoScaleR的大规模数据集决策树模型应用案例

    RevoScaleR中的rxDTree函数使用基于分类的递归分区算法来拟合基于树的模型得到的模型类似于推荐的ř包rpart包产生的模型支持分类型树和回归型树.; 与rpart包一样,差异由响应变量的性 ...

  7. 基于Python对Lending Club信贷业务数的分析

    项目背景 作为旧金山的一家个人对个人的借贷公司,Lending Club成立于2006年.他们是第一家注册为按照美国证券交易委员会SEC(Securities and Exchange Commiss ...

  8. Lending Club贷款数据分析

    python信用评分卡(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_camp ...

  9. R语言CART决策树、随机森林、chaid树预测母婴电商平台用户寿命、流失可视化

    全文链接:http://tecdat.cn/?p=31644 借着二胎政策的开放与家庭消费升级的东风,母婴市场迎来了生机盎然的春天,尤其是母婴电商行业,近年来发展迅猛(点击文末"阅读原文&q ...

最新文章

  1. 数据库基础笔记(MySQL)5 —— 基础索引
  2. 四、redis的底层数据结构
  3. sublime text 心得
  4. Aiiage Camp Day5 A Rikka with Linker
  5. 我们在囧途之技术骨干篇
  6. 解决升级mac os X EI Capitan后遇到LibclangError: dlopen(libclang.dylib, 6): image not found.的问题...
  7. 2017安徽二级c语言,2017计算机二级C语言测试题及答案
  8. excel统计行数_值得收藏的6个Excel函数公式(有讲解)
  9. 个税扣缴又出新规!12月31日前,所有人必须完成这件事,否则明年到手的工资要变少!...
  10. linux五笔输入法制作_五笔98输入法制做--for Linux ibus
  11. 软件测试主要流程分享
  12. 网传腾讯大规模裁员测试工程师,腾讯相关人员否认
  13. Phonetic symbol 单元音 - 长元音 -- ɜː (新) / ə: (旧) 与 ɔː
  14. Android中实现图片编辑功能
  15. 中学生应该养成的良好习惯
  16. 李彦宏发布小度在家“解锁”中国家庭市场,被称作AI性价比之王
  17. c++名字空间指令与名字空间声明
  18. 福利 | 春节了,如何向七大姑八大姨解释我的程序员职业?
  19. Django中间件配合Vue拦截器的简单使用
  20. 什么是OmniPeek|卓越的网络分析工具-OmniPeek

热门文章

  1. 第一届华数杯A题思路分析
  2. 2021年美亚杯个人赛复盘
  3. 2023,VC投资的分水岭
  4. HTML5 新的 Input 类型
  5. 继承 多态 抽象类 接口
  6. TIA博途_通过PEEK指令在TP900触摸屏上实现监控所有IO地址的具体方法示例
  7. JProfiler 安装使用教程
  8. 无线信道参数估计算法
  9. iphone与android共享位置,苹果手机,相互始终共享位置了以后,查看不了对方的位置...
  10. 机器学习笔记(吴恩达老师)