lending club 数据分析

全球资本市场是一个巨大的资金池,其中最为常见的便是个人消费贷款和中小企业贷款。美国和英国贷款市场迅速发展的背后,更多的其实是市场监管以及企业贷款风控升级和完善。美国的lending club 公司自从上市之后,一度成为贷款市场行业的老大,因此,对其贷款背后的风控系统以及贷款数据的探析有助于帮助我们见识到其股价暴涨,日常运营规模迅速增长的背后,有何内在的动因。

一、提出问题

1、了解lending club从2007到2015年的经营信息
	如:每年的交易金额的变化,每年放款金额的变化
2、客户贷款金额范围,还款期限选择情况
	如:客户贷款需求多集中在什么金额范围内?都选择多久还款期限?
3、坏账分布情况
	如:总坏账数,坏账率、坏账时间分布是怎样的?不同工作年限的客户,坏账如何分布? 
4、坏账信用等级分布情况
	如:Lenging club信用等级风控模型是否管用?不同信用等级坏账如何分布?

二、数据描述

数据来源:https://www.kesci.com/mw/dataset/58a7fab4fbe7a30f28357645/content

该数据集为LendingClub公司2007年到2015年的贷款发放信息数据集,包括目前的贷款状态信息,还款情况和最新的还款信息等。
数据量:
一共73列,887379行数据
字段描述:
总共73个字段,主要信息包括:
●基本贷款信息包括,贷款ID、会员ID、贷款金额、贷款期限,分期付款金额,贷款日期,贷款状态;
●授信信息包括信用等级,利率;
●个人政务信息包括房屋拥有情况,工作,工作年数,年收入,资产收入;
●其他信息包括贷款目的;
●地理信息:邮编,州;
●公共记录信息包括过去两年内信用档案中逾期30天以上的次数;
●过去6个月的查询数目(不包括房屋和汽车按揭);自借款人最后一次拖欠债务以来的月数等等;

三、数据清洗

1、数据导入
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
import warnings
warnings.filterwarnings('ignore')
loanDf=pd.read_csv('D:/kettle/lendingclub/loan.csv')
loanDf.info()

lending club 数据分析_第1张图片
2、选择子集

print('选取子集前:',loanDf.shape)
loanDf = loanDf.loc[:,'id':'dti']
print('选取子集后:',loanDf.shape)

选取子集前: (887379, 74)
选取子集后: (887379, 25)
3、删除重复行
① 查看是否有重复值

dupe=loanDf.duplicated(subset=['id','member_id','loan_amnt','funded_amnt','funded_amnt_inv','term','int_rate'])
dupe.any()

结果如果是FALSE — 代表没有重复值,如果结果是True,代表有重复值
② 删除重复值

loanDf.drop_duplicates(subset=['id','member_id','loan_amnt','funded_amnt','funded_amnt_inv','term','int_rate'])

lending club 数据分析_第2张图片
3、修改数据类型

loanDf['issue_d']=pd.to_datetime(loanDf['issue_d'])
print('转换后的数据类型:\n',loanDf.dtypes)

lending club 数据分析_第3张图片
4、数据排序

# 按贷款时间升序排序
loanDf=loanDf.sort_values(by=['issue_d'],ascending=True)

四、数据分析

1、了解lending club从2007到2015年的经营信息
① 每年交易额变化

import seaborn as sns
plt.rcParams['font.sans-serif'] = [u'SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 抽取贷款发放月份字段的年份,组建新的一列
loanDf['year']=loanDf['issue_d'].dt.year
# 绘图
sns.countplot('year',data=loanDf)
plt.title('2007-2015年贷款交易额变化')

lending club 数据分析_第4张图片
② 每年放款金额变化

loanDf.groupby(by=['year'])['loan_amnt'].sum().plot()
plt.title('2007--2015年放款金额变化')

lending club 数据分析_第5张图片
2007年到2015年,lending club交易量逐年上升,从2012年之后进入了告诉发展期,交易量急速攀升。

2.客户贷金额范围、还款期限选择情况
① 客户贷款金额范围

# 绘制贷款金额的箱型图
sns.boxplot(y=loanDf['loan_amnt'],data=loanDf)
plt.title('客户贷款金额范围')

lending club 数据分析_第6张图片
② 用户还款期限选择

print('2007--2015年贷款期限选择:')
loanDf['term'].value_counts()

2007–2015年贷款期限选择:
36 months 621125
60 months 266254
Name: term, dtype: int64

# 绘制饼图
loanDf['term'].value_counts().plot.pie(autopct='%.2f%%')
plt.title('用户还款期限选择')

lending club 数据分析_第7张图片
客户一般能从lending club贷到不超过4万美元,选择三年还款期限的人占70.00%。
3.坏账分布情况
① 查看贷款当前状态

loanDf['loan_status'].value_counts()

lending club 数据分析_第8张图片
② 计算坏账率

# 定义坏账
badloan=['Charge Off','Late (31-120 days)','In Grace Period',
         'Late (16-30 days)','Does not meet the credit policy. Status:Charged Off',
         'Default']

#增加一列存放是goodloan、badloan
loanDf['loan_condition']=np.nan    

# 定义函数,筛选goodloan、badloan

def loancondition(status):
    if status in badloan:
        return 'badloan'
    else:
        return 'goodloan'
        # 给 loan_condition列赋值
loanDf['loan_condition']=loanDf['loan_status'].apply(loancondition)
# 查看 loan_condition列
loanDf['loan_condition'].head(20)

lending club 数据分析_第9张图片

# 查询坏账数
badloanDf=loanDf[loanDf['loan_condition']=='badloan']
badloan_num=badloanDf.shape[0]
print('2007-2015年总坏账数:',badloan_num)
# 查询累积交易数量
total_num=loanDf.shape[0]
print('2007--2015年累计交易数量:',total_num)
print('2007--2015年总坏账率=',badloan_num/total_num)

2007-2015年总坏账数: 22181
2007–2015年累计交易数量: 887379
2007–2015年总坏账率= 0.024996083973138874

# 绘制饼图
loanDf['loan_condition'].value_counts().plot.pie(autopct='%.2f%%')
plt.title('goodloans & badloans ')

lending club 数据分析_第10张图片
2007年到2015年坏账率控制在2.5%左右,极其优秀
③ 查看坏账时间分布

sns.countplot(x='year',hue='loan_condition',data=loanDf)

lending club 数据分析_第11张图片
坏账有一点上升的趋势,但是总体的坏账率仍然保持着比较低的水平
④ 不同工作年限的客户,坏账分布情况

badloanDf['emp_length'].value_counts().plot.bar()
plt.title('不同工作年限的坏账数量')

lending club 数据分析_第12张图片


# 查看不同工作年限d贷款发放基数
loanDf['emp_length'].value_counts()

lending club 数据分析_第13张图片
坏账大多数出现在工作10年以上的客户身上,贷款发放基数也是这一群体
4. 坏账信用等级分布情况

# 查看不同信用等级坏账数量
badloanDf=badloanDf.sort_values(by='grade',ascending='True')
sns.countplot('grade',data=badloanDf)
plt.xlabel('信用等级')
plt.ylabel('坏账数量')
plt.title('不同信用等级坏账数量')

lending club 数据分析_第14张图片

五、总结建议

1.lending club的2007-2015年经营信息
2007-2015年,lending club交易量逐年上升,从2012年之后进入高速发展期,交易量急剧攀升。

由于贷款期限较长(3年或者5年),没有重复贷款的客户,推测是2012年之后P2P进入急速发展期,加上 lending club 平台信誉累积了大量客户,客户数量的攀升给该P2P平台带来不断增长的交易量。

2.客户贷金额范围、还款期限选
客户一般能从lending club贷到不超过4万美元,选择三年还款期限的人占70.00%

3.坏账分布情况
2007-2015年坏账率控制在2.5%的范围,但是该平台约92万个订单处于‘current’状态,当中一定会出现坏账,须进一步采取措施控制坏账率。
坏账从2012年开始逐渐上升,但是即便如此,坏账率仍然控制在非常低的水平,推测lending club平台推行了更严格的风控系统,可查询内部数据,调整优化风控措施,并将效果较好的风控措施进大范围推广。
查看不同工作年限的客户的坏账分布情况,发现坏账多出现在工作10年以上的客户身上,不过我们看到对工作10年以上的客户发放基数也是最大的。发放基数大,监管相对放宽条件,一定程度增加坏账率,另外推测工作10年以上的用户负债压力较大大,进一步增加了坏账率,平台可着重调查该用户群体坏账率原因,从而加强监管。

4.坏账信用等级分布

坏账率与信用等级不完全成正相关关系,形态类似正态分布,‘G’类别贷款中坏账反而最少,该类别信用等级低,利率最高,推测原因为lending club对‘G’分类的客户实施了较为严格的风控措施,对该类客户大量实施拒贷,控制了这部分风险。
‘A’类客户的坏账较少,主要得益于该类用户信用好。
坏账信用等级分布图,形态类似正态分布,坏账往中间聚集,‘C’类客户的坏账最多,'D’类其次,推测是该两类用户评分级别中等,监管较为宽松,根据二八原则,该两类用户多为80%的中低收入者,还贷压力较大。可对‘C’、‘D’两级的客户进一步加强风控,必要调整其风控评分政策。

你可能感兴趣的:(lending club 数据分析)