网贷平台贷款数据分析

[复制链接]
[投诉]
127 0
online_moderator 爱卡网小编手机认证 实名认证 发表于 2022-7-21 12:07:00 | 只看该作者 |只看大图 |阅读模式 打印 上一主题 下一主题
今天看了一部电影《利益风暴》,影片中风险评估员皮特·苏利文得到被解雇的上司正在进行的一个风险模型分析资料,然后认真进行了分析,最终发现了公司财务评估的一个巨大漏洞,公司所持有的资产的风险价值(VAR)存在重大风险,如果这些资产出现了问题,那么亏损将会超过公司的价值,从而高层展开了一系列的挽救工作。
看完后,给我对于数据分析、数据建模有了很大的感触,如果不是收集了历史数据将它们整合在一起,建立模型,或许这个漏洞没有那么快发现。
基于此,在kaggle上查找了是否有类似的数据可以作为练习使用,然后想起来曾经关注过的社群小伙伴的实践项目Prosper Loan Data | Kaggle,于是参照实践作业,以及自己的理解,进行分析,最终的目的是建立模型,预测哪些人贷款后会还款、哪些人会赖账。
第一步:数据导入
###导入数据
library(readr)
loandata 总共有113937行数据。
网贷平台贷款数据分析
这个loandata共有81个变量,113937行数据。
第二步:理解数据
由于有81个变量,一些对分析的结果,即贷款状态影响变化不大的变量不予考虑,在此就不做名词解释了。
ListingCreationDate:表创建时间LoanStatus:贷款状态(Completed、Current、Defaulted、Chargedoff等)EmploymentStatus:受雇佣状态(Self-employed、Employed等)EmploymentStatusDuration:受雇佣状态持续时间(以月为计算单位)IsBorrowerHomeowner:借款人是否拥有房屋CreditScoreRangeLower/CreditScoreRangeUpper:消费信用最低/最高分In:最近6个月查过多少次征信记录BorrowerRate:借款标利率,作为P2P平台资金借贷价格的代理变量,BorrowerRate不包含其他费用,是筹资者付给投资人的报酬,也是融资最直接和最重要的成本,其体现了资金供求双方在综合考虑各种因素情况下所认可的资金使用成本.Term:期限,筹资者通过网贷平台进行借款时所承诺的最终偿还期限,借款期限体现该资产的流动性,期限较长的资产应存在着流动性溢价(利率上涨).CreditGrade/ProsperRating(Alpha):信用等级,前者反映的是2009年7月1日前客户的信用等级,后者反映的是2009年7月1日后的信用等级.信用等级越高,其偿债能力越强.CreditScore:由消费信用公司提供的消费信用评分,类似于国内的芝麻信用分。StatedMonthlyIncome:客户月收入,月收入越高,投资者对该借款本息按时回流越有信心.Delin:信用资料提交时借款人过去7年违约次数,该指标在一定程度上可以体现借款标的发布者的信用状况BankcardUtilization:信用资料提交时借款人信用卡使用额度和信用卡总透支额度的百分比LoanOriginalAmount:借款人在借款时已经向prosper借入的资金,如果没有历史记录则为0,显然,借入本金越多,其还款压力越大,但是这项指标大的话也可能该客户对prosper依赖性较强.DebtToIncomeRatio:借款人的债务收入比,债务收入比越高筹资者财务状况越差,还款能力较低.其向P2P平台借款时,投资者应要求有更高的回报.Occupation:贷款人职业IncomeRange:贷款人年收入范围BorrowerState:贷款人所在州此次分析将基于上述的数据对贷款状况LoanStatus进行预测模型建立。
第三步、数据预处理
3.1选择子集
由于变量较大,筛选部分有需要的变量,重新建立一个新数据集newloandata。
###3.1筛选子集
library(dplyr)
##对变量重新命名
names(loandata)[c(14,15,17)] 3.2 数据重编码
主要是对LoanStatus进行重编码,定义“已还款”为“1”,“未还款”为“0”。
##3.2查看LoanStatus的具体内容
PastDue 然后查看对应的EmploymentStatus的情况:
###查看相对应的EmploymentStatus的情况
newloandata$EmploymentStatus[which(newloandata$EmploymentStatusDuration %in% NA)]
网贷平台贷款数据分析
此处的EmploymentStatus不是“NA”,就是“Not available”,因此可以将缺失的EmploymentStatusDuration以“0”补全:
###EmploymentStatusDuration以“0”补全
newloandata$EmploymentStatusDuration[which(newloandata$EmploymentStatusDuration %in% NA)] EmploymentStatusDuration缺失值已完全补充。
3.3.2 EmploymentStatus补全数值
用“Not available”补全EmploymentStatus数值:
###补充EmploymentStatus
###EmploymentStatusDuration以“Not available”补全
newloandata$EmploymentStatus[which(newloandata$EmploymentStatus %in% NA)] EmploymentStatus缺失值已完全补充。
3.3.3 CreditScoreRangeLower/CreditScoreRangeUpper补全数值
###将CreditScoreRangeLower/CreditScoreRangeUpper取两者平均值作为一个新的变量
newloandata$CreditScore 缺失值还是存在,由于属于消费评分,因此可以考虑用中位数补充缺失值。
首先绘图查看是否可以用中位数补充数值:
###绘图看是否可用中位数补充缺失值
library(ggplot2)
library(ggthemes)
ggplot(newloandata,aes(x=CreditScore,))+
  geom_density(fill="pink",alpha=0.4)+
  geom_vline(aes(xintercept=median(CreditScore,na.rm = T)),colour="red",linetype="dashed",lwd=1)+
  theme_few()+ggtitle("The density of CreditScore")
网贷平台贷款数据分析
从图中可以看出数值大部分集中在500到750之间,因此可以用中位数补充缺失值:
###用中位数补充缺失值
newloandata$CreditScore[which(newloandata$CreditScore %in% NA)] CreditScore缺失值已完全补充。
3.3.4 In补全数值
绘图查看是否可以用中位数补充数值:
ggplot(newloandata,aes(x=In,))+
  geom_density(fill="skyblue",alpha=0.4)+
  geom_vline(aes(xintercept=median(In,na.rm = T)),colour="red",linetype="dashed",lwd=1)+
  theme_few()+ggtitle("The density of In")
网贷平台贷款数据分析
从图中可以看出数值大部分集中在0到20之间,因此可以用中位数补充缺失值:
###用中位数补充缺失值
newloandata$In[which(newloandata$In %in% NA)] In缺失值已完全补充。
3.3.5 Delin补全数值
绘图查看是否可以用中位数补充数值:
ggplot(newloandata,aes(x=Delin,))+
  geom_density(fill="blue",alpha=0.4)+
  geom_vline(aes(xintercept=median(Delin,na.rm = T)),colour="red",linetype="dashed",lwd=1)+
  theme_few()+ggtitle("The density of Delin")
网贷平台贷款数据分析
从图中可以看出数值大部分集中在0到10之间,因此可以用中位数补充缺失值:
###用中位数补充缺失值
newloandata$Delin[which(newloandata$Delin %in% NA)] Delin缺失值已完全补充。
3.3.6 BankcardUtilization补全数值
绘图查看是否可以用中位数补充数值:
ggplot(newloandata,aes(x=BankcardUtilization,))+
  geom_density(fill="grey",alpha=0.4)+
  geom_vline(aes(xintercept=median(BankcardUtilization,na.rm = T)),colour="red",linetype="dashed",lwd=1)+
  theme_few()+ggtitle("The density of BankcardUtilization")
网贷平台贷款数据分析
用中位数填充缺失值:
###用中位数补充缺失值
newloandata$BankcardUtilization[which(newloandata$BankcardUtilization %in% NA)] BankcardUtilization缺失值已完全补充。
接着对BankcardUtilization的数值进行分类:
###BankcardUtilization的数据进行分类
newloandata$BankCardUse[newloandata$BankcardUtilization
                     缺失值对应的EmploymentStatus不是“other”,就是“Not available”,因此可以用“other”补充缺失值:
###Occupation以“Other”补全
newloandata$Occupation[which(newloandata$Occupation %in% NA)] Occupation缺失值补充完整。
3.3.9 BorrowerState补全数值
###BorrowerState补全数值
loandata_2 未还款占的比例较大,且这是贷款人所在州的标签,因此可以用一个因子代替缺失值:
###BorrowerState以“None”补全
newloandata$BorrowerState[which(newloandata$BorrowerState %in% NA)] BorrowerState缺失值补充完整。
3.3.10 CreditGrade/ProsperRating.Alpha补全数值
接下来是对CreditGrade和ProsperRating.Alpha数据进行缺失值的补充,由于这两个值是2009年7月1日前后客户信用等级,因此需要对数据进行按照2009年7月1日来分割。
3.3.10.1 CreditGrade缺失值补充
###按照2009年7月1日将数据进行分割
newloandata$ListingCreationDate 共有131个缺失值,由于数量较小,可以忽略不计,因此删除缺失值:
###筛选非缺失值数据
loandata_before CreditGrade的缺失值已经处理完毕。
3.3.10.2 ProsperRating.Alpha缺失值补充
###按照2009年7月1日将数据进行分割
loandata_after = "2009-7-1",]
###CreditGrade缺失值情况
sapply(loandata_after,function(x) sum(is.na(x)))
网贷平台贷款数据分析
按照2009年7月1日分割数据后,ProsperRating.Alpha并没有缺失值。
到了此时,全部缺失值都处理好了。
第四步:数据计算&显示
这部分主要是分析以下几点:
1.受雇佣状态持续时间与贷款状态的关系?
2.借款人是否有房屋和贷款状态的关系?
3.消费信用分与贷款状态的关系?
4.征信记录查询次数与贷款状态的关系?
5.信用等级与贷款状态的关系?
6.客户的职业、月收入、年收入与贷款状态的关系?
7.客户7年内违约次数与贷款状态的关系?
8.信用卡使用情况与贷款状态的关系?
9.在Prosper平台是否借款与贷款状态的关系?
10.债务收入比例与贷款状态的关系?
11.借款标利率与贷款状态的关系?
4.1 受雇佣状态持续时间与贷款状态的关系?
分析受雇佣状体持续时间和贷款状态是否有关系,即雇用时间越长,是不是具备还款能力越好。
library(ggplot2)
###1.受雇佣状态持续时间与贷款状态的关系?
newloandata$EmploymentStatusDuration 从图中可以看出来随着受雇佣时间越长,贷款未还款率降低,到了后期,基本上不存在毁约现象。也就是说,一个有稳定工作收入的人,不容易出现贷款毁约,不还款。
4.2 借款人是否有房屋和贷款状态的关系?
###2.借款人是否有房屋和贷款状态的关系?
mosaicplot(table(newloandata$IsBorrowerHomeowner,newloandata$LoanStatus),main="The Loanstatus By IsBorrowerHomeowner",
           color = c('pink','skyblue'))
网贷平台贷款数据分析
从图中可以看出,当贷款人拥有房的时候,还款率较无房的贷款人稍高一点,但是这个因素对是否还款影响不大。
4.3 消费信用分与贷款状态的关系?
###3.消费信用分与贷款状态的关系?
options(digits=1)
newloandata$CreditScore 从图中可以看出,随着消费信用分越高,还款率越高,因此个人的消费信用分会对贷款最终还款状态有一定的影响。
4.4 征信记录查询次数与贷款状态的关系?
ggplot(data = newloandata[newloandata$In 当征信记录查询记录小于10的时候,还可以看出来对贷款状态有些影响,但是大于10之后,还款与未还款的曲线基本趋于一致,所以,可以大胆猜测这个对贷款人是否有能力还款影响不大。
4.5 信用等级与贷款状态的关系?
###5.信用等级与贷款状态的关系?
par(mfrow=c(2,1))
###考虑2009年7月1日之前的信用等级对贷款状态的影响:CreditGrade
mosaicplot(table(loandata_before$CreditGrade,loandata_before$LoanStatus),main="The Loanstatus By CreditGrade",
           color = c('pink','skyblue'))
###考虑2009年7月1日之后的信用等级对贷款状态的影响:ProsperRating.Alpha
mosaicplot(table(loandata_after$ProsperRating.Alpha,loandata_after$LoanStatus),main="The Loanstatus By ProsperRating.Alpha",
           color = c('pink','skyblue'))
网贷平台贷款数据分析

马赛克图中可以看出,信用等级越高还款率越高,因此AA等级还款率最高,NC最低。而且大部分人的等级集中在C、D等级,AA等级还款率和NC等级还款率相差较大,因此,信用等级对贷款状态有一定的影响。
4.6 客户的职业分布,以及月收入、年收入与贷款状态的关系?
职业分布:
ggplot(data=newloandata,aes(x=Occupation))+geom_bar()+
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))

网贷平台贷款数据分析
职业中,选择“other”的人数更多,跟之前数据处理得出的结果一样,很多人在申请贷款的时候会不选择自己的职业,或者是有欺骗的可能性。
月收入和年收入与贷款状态的关系:
###月收入与贷款状态的关系
newloandata$Monthly[newloandata$StatedMonthlyIncome 贷款人的信用卡使用情况为“Mild Use”和“Medium Use”的还款率相对较大,而“Super Use”还款率最低,因此可以根据使用信用卡的状况初步确定贷款人的还款能力。
4.9 在Prosper平台是否借款与贷款状态的关系?
###9.在Prosper平台是否借款与贷款状态的关系?
newloandata$LoanOriginal[newloandata$LoanOriginalAmount >= 1000 &
                           newloandata$LoanOriginalAmount DebtToIncomeRatio的四分位数都是0,而最大值是10,也就是说大部分的数值是在小于1的范围内。
###10.债务收入比例与贷款状态的关系?
ggplot(data = newloandata[newloandata$DebtToIncomeRatio 债务比越低,还款率越高,也就是说贷款人本身的债务不高的情况下,具备还款能力越高。
4.11 借款标利率与贷款状态的关系?
###11.借款标利率与贷款状态的关系?
ggplot(data = newloandata,
       aes(x = BorrowerRate, color = LoanStatus)) +
  geom_line(aes(label = ..count..), stat = 'bin')  +
  labs(title = "The LoanStatus By BorrowerRate",
       x = "BorrowerRate",
       y = "Count",
       fill = "LoanStatus")
网贷平台贷款数据分析
借款标的利率越高,还款率越低,也就是说这个会影响贷款状态。
第五步:建模,做预测分析
通过上述的分析,可以知道EmploymentStatusDuration、CreditScore、CreditGrade、ProsperRating.Alpha、Delin、BankCardUse、DebtToIncomeRatio、BorrowerRate对贷款状态有一定的影响,所以建模时将这几个选择为影响因子。
###建模
###训练集和测试集,以2009年7月1日为分界点
###从loandata_before数据集中随机抽70%定义为训练数据集,30%为测试数据集
set.seed(156)
tain_before1

版权声明:本站部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们将及时更正、删除,谢谢!


weinxin
爱卡网站长——亚熙哥
若开通会员无法使用
请扫码联系爱卡网站长
本平台不放贷、也不接网贷代做!
上一篇:网络借款平台的年化利率只有 21.51%? 假的!实际高到你无法相信!
下一篇:平安普惠平台被投诉,借款利率高费用多,借款人签名还遭复制?
楼主热帖
分享到:  QQ好友和群QQ好友和群
收藏
收藏0
支持
支持0
反对
反对0
122329my40v0m19mm281y0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 qq_login wechat_login1

本版积分规则

avatar

0关注

26粉丝

1091904帖子

发布主题
精选帖子
热帖排行
推荐
162349x8b848x8bpq4qaaz
客服咨询

155-5555-5876

服务时间 9:00-24:00

爱卡网APP下载

app

知识改变命运,技术改变未来!

  • 客服Q Q:70079566     微信:79710
  • 工作时间:周一到周日     9:00-22:00
  • 加入爱卡网VIP会员,菜鸟也能变大神!
15555555876

关注我们

  • app
  • app
  • app
本站唯一官网:www.7177.cn Copyright    2010-2021  爱卡网  Powered by Discuz!  技术支持:亚熙工作室   浙ICP备17046104号-1