Prosper 贷款数据分析

Prosper是美国的一家P2P(个人对个人)在线借贷平台网站,世界排名2万左右。网站撮合了一些有闲钱的人和一些急于用钱的人。用户若有贷款需求,可在网站上列出期望数额和可承受的最大利率。潜在贷方则为数额和利率展开竞价。这种交易对借贷双方是一种双赢。卖家可以获得比银行更高的利息收入,而对于买家来说,除了过程快捷便利和可以获得较低的还款利率外,更主要的是你不需要经过漫长的审查过程,不会遇到在银行申请贷款遭拒时的尴尬。本案例试图从EDA分析角度出发,分析Propser数据集中贷款人条件及贷款利率等问题。

library("ggplot2")
library("knitr")
library("dplyr")
library("gridExtra")
library("memisc")
# Load the Data
setwd('G:/备份/数据分析/进阶/R')prosper <- read.csv("prosperLoanData.csv")

单变量绘图

dim(prosper)

[1] 113937 81

str(prosper)

我们的数据集由81个变量组成,具有约110000个观测值

主要数据字典

BorrowerRate:借款人的贷款利率,影响着借贷双方经济利益,为本次分析的重要指标
Occupation:借款人的职业
Term:贷款期限(月)
EmploymentStatus:借款人就业状态
BorrowerState:借款人所在地址,采用2个字母缩写
ListingCategory:贷款类型,共21种状态
IncomeRange:借款人的收入范围
CreditGrade/ProsperRating..Alpha.:借款人评级,区别是前者为09年7月之前,后者为09年7月之后
CreditScore: 借款人评分,由信用评分计算均值获得
LenderYield:贷款人收益
InvestmentFromFriendsCount:对贷款进行投资的合伙人数量。
InvestmentFromFriendsAmount:合伙人的投资金额。

贷款利率

ggplot(aes(BorrowerRate),data = prosper) + geom_histogram() +theme(plot.title = element_text(hjust=0.5))+ggtitle('Count of Borrower Rate')


贷款利率主要分布在0%-0.4%之间,修正一下X轴。

ggplot(aes(BorrowerRate),data = prosper) + geom_histogram(binwidth = 0.01) +scale_x_continuous(breaks=seq(0,0.4,0.1))+theme(plot.title = element_text(hjust=0.5))+ggtitle('Count of Borrower Rate')


整体贷款利率集中在0.15%-0.2%之间,数据接近正态分布。

借款人职业

ggplot(aes(Occupation),data = prosper) + geom_bar() +theme(axis.text.x=element_text(angle = 90,hjust = 1,vjust=0,size=7),plot.title = element_text(hjust=0.5))+ggtitle('Count of Occupation')


从职业来看,大多数人都选择了other,紧接着就是Professional,但是具体是哪方面,并没有给出详细的信息。

贷款期限

#将Term数据类型改为factor
prosper$Term<-as.factor(prosper$Term)
summary(prosper$Term)
   12    36    60 1614 87778 24545
ggplot(aes(Term),data = prosper) + geom_bar() +theme(plot.title = element_text(hjust=0.5))+ggtitle('Count of Term')


prosper的贷款期限一般为1年、3年和5年,将近9W的人选择以3年为期限。

借款人就业情况

ggplot(aes(EmploymentStatus),data = prosper) + geom_bar() +theme(axis.text.x=element_text(angle = 90,hjust = 1,vjust=0,size=7),plot.title = element_text(hjust=0.5))+ggtitle('Count of EmploymentStatus')


从有效的数据看,90%以上申请贷款的都属于在职员工,具有稳定的收入,可以偿还贷款。

借款人所在地区

ggplot(aes(BorrowerState),data = prosper) + geom_bar() +theme(axis.text.x=element_text(angle = 90,hjust = 1,vjust=0,size=7),plot.title = element_text(hjust=0.5))+ggtitle('Count of Borrower State')

CA(加利福尼亚州)拥有最多的借款人,高出第二多的城市将近2倍,为什么在这里会有这么多的借款人?查阅资料发现加州受累于金融危机,经济崩溃,房地产市场崩溃,各种各样的繁荣和泡沫崩溃,可能是导致贷款人数居高不下的原因。
http://m.jrj.com.cn/toutiao/2015/12/29/20319918.shtml

贷款类型/用途

ggplot(aes(ListingCategory..numeric.),data = prosper) + geom_bar() +scale_x_continuous(breaks=seq(0,21,1))+theme(plot.title = element_text(hjust=0.5))+ggtitle('Count of Category')


除去0(暂无分类),最多的是1(债务合并),所谓债务合并就是向银行贷一笔款用于还清其他的所有债务,债务合并后,借款人会得到一个新的利率。

借款人收入范围

summary(prosper$IncomeRange)
 $0      $1-24,999      $100,000+ $25,000-49,999 $50,000-74,999 $75,000-99,999  Not displayed   Not employed 621           7274          17337          32192          31050          16916           7741            806
#将IncomeRange数据类型改为factor并且排序
prosper$IncomeRange <- factor(prosper$IncomeRange, levels=c("$0","$1-24,999","$25,000-49,999","$50,000-74,999","$75,000-99,999","$100,000+","Not displayed","Not employed"), ordered=TRUE)ggplot(aes(IncomeRange),data = prosper) + geom_bar() +theme(axis.text.x=element_text(angle = 90,hjust = 1,vjust=0,size=7),plot.title = element_text(hjust=0.5))+ggtitle('Count of Income Range')


大部分借款人的收入在“$25,000-$75,000”之间,其次就是“$75,000”以上的人群。

借款人信用等级/评分


#将贷款时间变更为Date格式,变更贷款评级数据类型为factor并排序
prosper$LoanOriginationDate <- as.Date(prosper$LoanOriginationDate)prosper$CreditGrade <- factor(prosper$CreditGrade, levels=c("HR","E","D","C","B","A","AA"), ordered=TRUE)
prosper$ProsperRating..Alpha. <- factor(prosper$ProsperRating..Alpha., levels=c("HR","E","D","C","B","A","AA"), ordered=TRUE)p1<-ggplot(aes(x=CreditGrade),data=subset(prosper,LoanOriginationDate < "2009-07-01"))+geom_bar()+theme(plot.title = element_text(hjust=0.5))+ggtitle('Grade before 2009-07')p2<-ggplot(aes(x=ProsperRating..Alpha.),data=subset(prosper,LoanOriginationDate > "2009-07-01"))+geom_bar()+theme(plot.title = element_text(hjust=0.5))+ggtitle('Grade after 2009-07')grid.arrange(p1,p2)


可以看到整体评级以09年7月为界,都是‘C’级用户数量最多,区别在于09年7月之前各评级分布较为平均,而7月之后,‘HR’和‘AA’评级数量明显下降。

#根据贷款评分上下限计算平均值得出贷款评分数据
prosper$CreditScore<-(prosper$CreditScoreRangeUpper+prosper$CreditScoreRangeLower)/2
#因为数据中包含一些值为0的数据,可视化时将其删除
ggplot(aes(CreditScore),data=prosper)+geom_bar(binwidth = 10)+xlim(400,850)+theme(plot.title = element_text(hjust=0.5))+ggtitle('Count of Credit Score')


如图可知,信用评分集中在650-750之间。

贷款金额

ggplot(aes(LenderYield),data=prosper)+geom_histogram(binwidth = 0.005)+theme(plot.title = element_text(hjust=0.5))+ggtitle('Count of Lender Yield')

summary(prosper$LenderYield)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.
-0.0100  0.1242  0.1730  0.1827  0.2400  0.4925

贷款人收益分布在0.15%附近,但是0.31%也经常出现。

对贷款进行投资的合伙人数量及金额

summary(prosper$InvestmentFromFriendsCount)
    Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 0.00000  0.00000  0.00000  0.02346  0.00000 33.00000
ggplot(aes(y=InvestmentFromFriendsCount),data=prosper)+geom_boxplot()+theme(plot.title = element_text(hjust=0.5))+ggtitle('Investment From Friends Count')


合伙贷款的数量都没有达到总体的25%,只有少部分人会选择和他人合伙贷款。

summary(prosper$InvestmentFromFriendsAmount)
    Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 0.00     0.00     0.00    16.55     0.00 25000.00

金额为0的数量过多,导致其他数值无法显示。

ggplot(aes(InvestmentFromFriendsAmount),data=subset(prosper,InvestmentFromFriendsAmount>0))+geom_histogram()+scale_y_sqrt()+theme(plot.title = element_text(hjust=0.5))+ggtitle('Investment From Friends Amount')


基于合伙贷款人数量较少,合伙投资贷款的金额也是较少,最高只有$25,000.

单变量分析

数据集的结构是什么?

详情见前文

您的数据集中的主要功能是什么?

主要根据借款人的条件情况结合贷款利率进行相关性分析。

你认为数据集内哪些其他特征可以帮助你探索兴趣特点?

由于整体数据集中特征较多,这里只选取了其中12项与借款人可能存在联系的特征,并且新增加了一列CreditScore计算信用评分。我认为其中BorrowerRate、Term、IncomeRange、CreditGrade、ProsperRating、CreditScore可能会影响贷款利率,可以做进一步分析。

您是否从数据集中的现有变量创建了任何新变量?

根据信用评分的上下限求取平均值作为信用评分变量,用来探讨信用评分与贷款利率的关系

在已经探究的特性中,是否存在任何异常分布?你是否对数据进行一些操作,如清洁、调整或改变数据的形式?如果是,你为什么会这样做?

1.因为贷款期限数据只有3种情况,所以将数据类型由int改为Factor;

2.对收入范围进行从低到高排序,合理反映各收入范围的数量;

3.由于数据集中借款人的评级以2009-07时间为截点,分为两部分子集进行可视化。

4.合伙投资贷款金额中含有大量值为0,导致其他数据无法显示,将此部分剔除后查看参与投资贷款的金额情况。

双变量绘图选择


#选取BorrowerRate、Term、IncomeRange、CreditGrade、ProsperRating、CreditScore、LenderYield、LoanOriginationDate列做进一步分析
keepvars<-c("BorrowerRate","Term","IncomeRange","CreditGrade","ProsperRating..Alpha.","CreditScore","LenderYield","LoanOriginationDate")prosper_sub <- prosper[keepvars]

贷款利率与期限

ggplot(aes(x=Term,y=BorrowerRate),data=prosper_sub)+geom_boxplot()+theme(plot.title = element_text(hjust=0.5))+ggtitle('Term vs BorrowerRate')

by(prosper_sub$BorrowerRate,prosper_sub$Term,summary)
prosper_sub$Term: 12Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 0.0400  0.0929  0.1434  0.1501  0.2064  0.2669
---------------------------------------------------------------------------------------------------------------------
prosper_sub$Term: 36Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 0.0000  0.1274  0.1815  0.1935  0.2599  0.4975
---------------------------------------------------------------------------------------------------------------------
prosper_sub$Term: 60Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 0.0669  0.1490  0.1870  0.1930  0.2319  0.3304

可见12个月期限的贷款利率整体偏小,但是并没有直接的证据可以证明贷款期限和贷款利率之间有什么关系。

贷款利率与收入

ggplot(aes(x=IncomeRange,y=BorrowerRate),data=prosper_sub)+geom_boxplot()+theme(axis.text.x=element_text(angle = 90,hjust = 1,vjust=0,size=15),plot.title = element_text(hjust=0.5))+ggtitle('IncomeRange vs BorrowerRate')

by(prosper_sub$BorrowerRate,prosper_sub$IncomeRange,summary)
prosper_sub$IncomeRange: $0Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 0.0050  0.1400  0.1750  0.1952  0.2500  0.3500
---------------------------------------------------------------------------------------------------------------------
prosper_sub$IncomeRange: $1-24,999Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 0.0000  0.1550  0.2199  0.2206  0.2900  0.3600
---------------------------------------------------------------------------------------------------------------------
prosper_sub$IncomeRange: $25,000-49,999Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 0.0000  0.1474  0.2015  0.2072  0.2684  0.3600
---------------------------------------------------------------------------------------------------------------------
prosper_sub$IncomeRange: $50,000-74,999Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 0.0000  0.1334  0.1800  0.1903  0.2487  0.3600
---------------------------------------------------------------------------------------------------------------------
prosper_sub$IncomeRange: $75,000-99,999Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 0.0000  0.1239  0.1699  0.1809  0.2321  0.3600
---------------------------------------------------------------------------------------------------------------------
prosper_sub$IncomeRange: $100,000+Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 0.0000  0.1139  0.1550  0.1692  0.2124  0.3600
---------------------------------------------------------------------------------------------------------------------
prosper_sub$IncomeRange: Not displayedMin. 1st Qu.  Median    Mean 3rd Qu.    Max. 0.0000  0.1350  0.1880  0.1892  0.2443  0.4975
---------------------------------------------------------------------------------------------------------------------
prosper_sub$IncomeRange: Not employedMin. 1st Qu.  Median    Mean 3rd Qu.    Max. 0.0400  0.1874  0.2600  0.2467  0.3149  0.3500

除去异常值,利率基本处于0.4%以下,奇怪的是“$0”并没有像“Not employed”一样,整体利率高于其他区间。

贷款利率与评级

#划分子集,筛选按照09年7月之前的数据并移除缺失值
ggplot(aes(x=CreditGrade,y=BorrowerRate),data=subset(prosper_sub,LoanOriginationDate < "2009-07-01" & !is.na(CreditGrade)))+geom_boxplot()+theme(plot.title = element_text(hjust=0.5))+ggtitle('Grade before 2009-07 vs BorrowerRate')

#划分子集,筛选按照09年7月之后的数据并移除缺失值
ggplot(aes(x=ProsperRating..Alpha.,y=BorrowerRate),data=subset(prosper_sub,LoanOriginationDate > "2009-07-01" & !is.na(ProsperRating..Alpha.)))+geom_boxplot()+ylim(0,0.5)+theme(plot.title = element_text(hjust=0.5))+ggtitle('Grade after 2009-07 vs BorrowerRate')


这下可以明显看到借款人评级和利率之间的趋势,信用等级越高的人利率明显要低很多,而且2009年7月之后这种差异更加明显,结合之前的结论,7月之后评级制度对申请贷款的重要性提高了。

贷款利率与评分

#增加抖动,添加一条贷款利率平均值曲线
ggplot(aes(x=CreditScore,y=BorrowerRate),data=prosper_sub)+geom_jitter(alpha=1/100,color='orange')+xlim(400,850)+geom_line(stat='summary',fun.y=mean,color='red')+theme(plot.title = element_text(hjust=0.5))+ggtitle('Credit Score vs BorrowerRate')


应为评分都为整数,增加抖动及透明度,期待可以看到一些微小的变化,其实并不明显。但是从利率的均值可以看出,评分高的借款人利率也相对较低,这和前面的评级结论相同,信用越好贷款的利率就会越低。

贷款利率与贷款人收益

ggplot(aes(x=LenderYield,y=BorrowerRate),data=prosper_sub)+geom_point(alpha=1/20,color='blue')+theme(plot.title = element_text(hjust=0.5))+ggtitle('Lender Yield vs BorrowerRate')

cor.test(prosper_sub$LenderYield,prosper_sub$BorrowerRate)
 Pearson's product-moment correlationdata:  prosper_sub$LenderYield and prosper_sub$BorrowerRate
t = 8493.9, df = 113940, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:0.9992021 0.9992204
sample estimates:cor
0.9992113

这个结果还是很符合常理,毕竟贷款利率越高,贷款人的收益自然也会升高,具有很强的相关性。

双变量分析

探讨你在这部分探究中观察到的一些关系。这些感兴趣的特性与数据集内其他特性有什么区别?

在这一部分我们总共分析了5组变量,结论如下:

1.Term和IncomeRange对贷款利率的影响并不明显,至少在图形中是这样的;

2.CreditGrade、ProsperRating和CreditScore可以明显看出对贷款利率的影响,信用等级越高,贷款利率就越低,2009年7月之后这种趋势更明显了。

你是否观察到主要特性与其他特性之间的有趣关系?

2009年7月这个时间节点前后对评级和评分似乎有变化。看起来Prosper进行了一些改变,可以进一步探究。

你发现最强的关系是什么?

贷款利率与贷款人收益表现出了极强的正相关关系,可以单独使用任意一个变量,但是后续分析不会使用这两个变量组合,因为相关性过强,会影响结论。

多变量绘图选择

贷款利率与信用评分和收入

ggplot(aes(x=CreditScore,y=BorrowerRate,color=IncomeRange),data=subset(prosper_sub,LoanOriginationDate < "2009-07-01" ))+geom_jitter(alpha=1/5)+scale_color_brewer(type = 'qual',guide = guide_legend(title = 'IncomeRange', reverse = T,override.aes = list(alpha = 1, size = 2)))+theme(plot.title = element_text(hjust=0.5))+ggtitle('Before 2009-07')

ggplot(aes(x=CreditScore,y=BorrowerRate,color=IncomeRange),data=subset(prosper_sub,LoanOriginationDate > "2009-07-01"))+geom_jitter(alpha=1/10)+ylim(0,0.5)+scale_color_brewer(type = 'qual',guide = guide_legend(title = 'IncomeRange', reverse = T,override.aes = list(alpha = 1, size = 2)))+theme(plot.title = element_text(hjust=0.5))+ggtitle('After 2009-07')


我们发现7月份以后评分都处于600分以上,这是之前没有发现的地方,可能说明Prosper对评分制度进行了修正。但是似乎与借款人的收入范围并没有什么关联。

贷款利率与信用评分和评级

ggplot(aes(x=CreditScore,y=BorrowerRate,color=CreditGrade),data=subset(prosper_sub,LoanOriginationDate < "2009-07-01" & !is.na(CreditGrade)))+geom_jitter()+xlim(400,850)+scale_color_brewer(type = 'div',guide = guide_legend(title = 'CreditGrade', reverse = T,override.aes = list(alpha = 1, size = 2)))+theme(plot.title = element_text(hjust=0.5))+ggtitle('Before 2009-07')

ggplot(aes(x=CreditScore,y=BorrowerRate,color=ProsperRating..Alpha.),data=subset(prosper_sub,LoanOriginationDate > "2009-07-01" & !is.na(ProsperRating..Alpha.)))+geom_jitter()+ylim(0,0.5)+scale_color_brewer(type = 'div',guide = guide_legend(title = 'ProsperRating', reverse = T,
override.aes = list(alpha = 1, size = 2)))+theme(plot.title = element_text(hjust=0.5))+ggtitle('After 2009-07')


从两幅图中可以看出,09年7月前后信用等级评定标准确实发生了变化。很有趣的变化,7月之前虽然信用等级高,信用分也高,但是并没有因此而减少贷款利率,这就显得这个信用评级/评分很可能对借款人的并没有起到什么作用;7月之后分布发生了明显的变化,“B”级以上的评分在650以上,而且相对于“B”级以下的贷款利率有明显的降低,说明Prosper充分考虑了借款人的条件,给与信用评级较高的用户更多福利,激励用户去使用贷款;同样的,对于信用不好的借款人,增加贷款利率,保护发放贷款人的同时,也鼓励用户提高信用等级。

贷款利率与信用评分、评级和收入

ggplot(aes(x=CreditScore,y=BorrowerRate,color=CreditGrade),data=subset(prosper_sub,LoanOriginationDate < "2009-07-01" & !is.na(CreditGrade)))+geom_jitter()+geom_line(stat='summary',fun.y=mean,color='red')+xlim(400,850)+facet_wrap(~IncomeRange)+scale_color_brewer(type = 'div',guide = guide_legend(title = 'CreditGrade', reverse = T,
override.aes = list(alpha = 1, size = 2)))+theme(plot.title = element_text(hjust=0.5))+ggtitle('Before 2009-07')

ggplot(aes(x=CreditScore,y=BorrowerRate,color=ProsperRating..Alpha.),data=subset(prosper_sub,LoanOriginationDate > "2009-07-01" & !is.na(ProsperRating..Alpha.)))+geom_jitter()+geom_line(stat='summary',fun.y=mean,color='red')+facet_wrap(~IncomeRange)+ylim(0,0.5)+scale_color_brewer(type = 'div',guide = guide_legend(title = 'ProsperRating', reverse = T,override.aes = list(alpha = 1, size = 2)))+theme(plot.title = element_text(hjust=0.5))+ggtitle('After 2009-07')


综合来看,似乎与验证了我们的想法,贷款利率随着评级升高而下降,借款人的收入在其中并没有起到什么作用。接下来使用线性回归模型验证为我们的观点。

线性回归

m1 <- lm(I(BorrowerRate) ~ I(CreditGrade),data = prosper_sub)
m2 <- update(m1, ~ . + CreditScore)
m3 <- update(m2, ~ . + IncomeRange)
mtable(m1, m2, m3)
Calls:
m1: lm(formula = I(BorrowerRate) ~ I(CreditGrade), data = prosper_sub)
m2: lm(formula = I(BorrowerRate) ~ I(CreditGrade) + CreditScore, data = prosper_sub)
m3: lm(formula = I(BorrowerRate) ~ I(CreditGrade) + CreditScore + IncomeRange, data = prosper_sub)===================================================================m1             m2             m3
-------------------------------------------------------------------(Intercept)              0.183***       0.187***       0.255***  (0.000)        (0.013)        (0.013)    I(CreditGrade): .L      -0.150***      -0.148***      -0.134***  (0.001)        (0.005)        (0.004)    I(CreditGrade): .Q      -0.005***      -0.006***      -0.004***  (0.001)        (0.001)        (0.001)    I(CreditGrade): .C       0.013***       0.013***       0.015***  (0.001)        (0.001)        (0.001)    I(CreditGrade): ^4      -0.013***      -0.013***      -0.014***  (0.001)        (0.001)        (0.001)    I(CreditGrade): ^5       0.008***       0.008***       0.009***  (0.001)        (0.001)        (0.001)    I(CreditGrade): ^6      -0.001         -0.001*        -0.002*    (0.001)        (0.001)        (0.001)    CreditScore                            -0.000         -0.000***  (0.000)        (0.000)    IncomeRange: .L                                       -0.015***  (0.003)    IncomeRange: .Q                                        0.014***  (0.003)    IncomeRange: .C                                       -0.011***  (0.002)    IncomeRange: ^4                                        0.022***  (0.002)    IncomeRange: ^5                                        0.008***  (0.001)    IncomeRange: ^6                                        0.011***  (0.001)    IncomeRange: ^7                                        0.005***  (0.001)
-------------------------------------------------------------------R-squared                0.503          0.502          0.517     adj. R-squared           0.503          0.502          0.517     sigma                    0.053          0.052          0.052     F                     4856.843       4064.058       2157.541     p                        0.000          0.000          0.000     Log-likelihood       44003.017      43203.465      43636.305     Deviance                79.533         77.458         75.119     AIC                 -87990.034     -86388.930     -87240.609     BIC                 -87923.886     -86314.696     -87108.638     N                    28812          28232          28232
===================================================================
m4 <- lm(I(BorrowerRate) ~ I(ProsperRating..Alpha.),data = prosper_sub)
m5 <- update(m4, ~ . + CreditScore)
m6 <- update(m5, ~ . + IncomeRange)
mtable(m4, m5, m6)
Calls:
m4: lm(formula = I(BorrowerRate) ~ I(ProsperRating..Alpha.), data = prosper_sub)
m5: lm(formula = I(BorrowerRate) ~ I(ProsperRating..Alpha.) + CreditScore, data = prosper_sub)
m6: lm(formula = I(BorrowerRate) ~ I(ProsperRating..Alpha.) + CreditScore + IncomeRange, data = prosper_sub)================================================================================m4              m5              m6
--------------------------------------------------------------------------------(Intercept)                         0.200***        0.174***        0.176***  (0.000)         (0.001)         (0.002)    I(ProsperRating..Alpha.): .L       -0.221***       -0.224***       -0.223***  (0.000)         (0.000)         (0.000)    I(ProsperRating..Alpha.): .Q        0.000          -0.001***       -0.001***  (0.000)         (0.000)         (0.000)    I(ProsperRating..Alpha.): .C        0.014***        0.014***        0.014***  (0.000)         (0.000)         (0.000)    I(ProsperRating..Alpha.): ^4       -0.007***       -0.007***       -0.007***  (0.000)         (0.000)         (0.000)    I(ProsperRating..Alpha.): ^5        0.003***        0.003***        0.003***  (0.000)         (0.000)         (0.000)    I(ProsperRating..Alpha.): ^6        0.003***        0.003***        0.003***  (0.000)         (0.000)         (0.000)    CreditScore                                         0.000***        0.000***  (0.000)         (0.000)    IncomeRange: .L                                                     0.003     (0.002)    IncomeRange: .Q                                                     0.005*    (0.002)    IncomeRange: .C                                                     0.004**   (0.001)    IncomeRange: ^4                                                     0.001     (0.001)    IncomeRange: ^5                                                     0.001***  (0.000)    IncomeRange: ^6                                                     0.000     (0.000)
--------------------------------------------------------------------------------R-squared                           0.914           0.914           0.914     adj. R-squared                      0.914           0.914           0.914     sigma                               0.022           0.022           0.022     F                              149953.301      129092.701       69645.755     p                                   0.000           0.000           0.000     Log-likelihood                 203812.348      203981.779      204059.392     Deviance                           40.728          40.565          40.491     AIC                           -407608.696     -407945.559     -408088.784     BIC                           -407533.906     -407861.421     -407948.553     N                               84853           84853           84853
================================================================================

根据两次拟合结果来看,7月之前的决定系数(R-squared)信用评级和贷款利率为0.503,加入评分后反而略有下降,加入收入为0.517;7月之后,决定系数达到0.914,明显大于0.5。这也证实了我们之前的看法,借款人的收入对贷款利率的影响微乎其微;2009年7月以后Prosper对评级的重视程度有所增加,鼓励借款人去提升评级。

多变量分析

探讨你在这部分探究中观察到的一些关系。通过观察感兴趣的特性,是否存在相互促进的特性?

贷款利率随着评级升高而下降。

这些特性之间是否存在有趣或惊人的联系呢?

借款人的收入在其中并没有起到什么作用,2009年7月以后Prosper对评级的重视程度有所增加

选项:你是否创建过数据集的任何模型?讨论你模型的优缺点。

根据借款人的评级、评分和收入范围,以时间为节点创建了两个线性模型,证实了我们的想法是可信的。


定稿图与总结

绘图一

prosper$LoanOriginationDate <- as.Date(prosper$LoanOriginationDate)prosper$CreditGrade <- factor(prosper$CreditGrade, levels=c("HR","E","D","C","B","A","AA"), ordered=TRUE)
prosper$ProsperRating..Alpha. <- factor(prosper$ProsperRating..Alpha., levels=c("HR","E","D","C","B","A","AA"), ordered=TRUE)p1<-ggplot(aes(x=CreditGrade),data=subset(prosper,LoanOriginationDate < "2009-07-01"))+geom_bar()+theme(plot.title = element_text(hjust=0.5))+ggtitle('Grade before 2009-07')p2<-ggplot(aes(x=ProsperRating..Alpha.),data=subset(prosper,LoanOriginationDate > "2009-07-01"))+geom_bar()+theme(plot.title = element_text(hjust=0.5))+ggtitle('Grade after 2009-07')grid.arrange(p1,p2)

描述一

整体评级以09年7月为界,都是‘C’级用户数量最多,区别在于09年7月之前各评级分布较为平均,而7月之后,‘HR’和‘AA’评级数量明显下降。

绘图二

p3<-ggplot(aes(x=CreditGrade,y=BorrowerRate),data=subset(prosper_sub,LoanOriginationDate < "2009-07-01" & !is.na(CreditGrade)))+geom_boxplot()+theme(plot.title = element_text(hjust=0.5))+ggtitle('Grade before 2009-07 vs BorrowerRate')p4<-ggplot(aes(x=ProsperRating..Alpha.,y=BorrowerRate),data=subset(prosper_sub,LoanOriginationDate > "2009-07-01" & !is.na(ProsperRating..Alpha.)))+geom_boxplot()+ylim(0,0.5)+theme(plot.title = element_text(hjust=0.5))+ggtitle('Grade after 2009-07 vs BorrowerRate')grid.arrange(p3,p4)

描述二

可以明显看到借款人评级和利率之间的趋势,信用等级越高的人利率明显要低很多,而且2009年7月之后这种差异更加明显,结合之前的结论,7月之后评级制度对申请贷款的重要性提高了。

绘图三

p5<-ggplot(aes(x=CreditScore,y=BorrowerRate,color=CreditGrade),data=subset(prosper_sub,LoanOriginationDate < "2009-07-01" & !is.na(CreditGrade)))+geom_jitter()+xlim(400,850)+scale_color_brewer(type = 'div',guide = guide_legend(title = 'CreditGrade', reverse = T,override.aes = list(alpha = 1, size = 2)))+theme(plot.title = element_text(hjust=0.5))+ggtitle('Before 2009-07')p6<-ggplot(aes(x=CreditScore,y=BorrowerRate,color=ProsperRating..Alpha.),data=subset(prosper_sub,LoanOriginationDate > "2009-07-01" & !is.na(ProsperRating..Alpha.)))+geom_jitter()+ylim(0,0.5)+scale_color_brewer(type = 'div',guide = guide_legend(title = 'ProsperRating', reverse = T,override.aes = list(alpha = 1, size = 2)))+theme(plot.title = element_text(hjust=0.5))+ggtitle('After 2009-07')grid.arrange(p5,p6)

描述三

从两幅图中可以看出,09年7月前后信用等级评定标准确实发生了变化。Prosper充分考虑了借款人的条件,给与信用评级较高的用户更多福利,激励用户去使用贷款;同样的,对于信用不好的借款人,增加贷款利率,保护发放贷款人的同时,也鼓励用户提高信用等级。


反思

1.数据集中变量较多,本次分析只选取了其中的一部分进行分析,可能错过了一些重要变量,另外本次分析主要选择了信用评分和等级,数据内容比较接近,有点儿冗余。

2.由于对贷款的相关知识比较欠缺,加上数据字典全是英文,专业术语理解上造成了不少困扰,也可能错误领会了变量的含义,进而影响结论的准确性。

3.在我们的EDA分析中,成功发现2009年7月前后prosper修改了其借贷评级模型。

4.待后续的学习了数据挖掘相关算法后再进行深入研究。

Udacity数据分析(进阶)-Prosper 贷款数据分析相关推荐

  1. R语言25-Prosper 贷款数据分析1

    Prosper 贷款数据分析 数据导入 工作目录设置 首先查看当前工作路径,对其进行对应更改 getwd() setwd('C:/Users/blabla/Desktop/数据分析/R语言') get ...

  2. 《从Excel到R 数据分析进阶指南》一3.4 更改数据格式

    本节书摘来自异步社区<从Excel到R 数据分析进阶指南>一书中的第3章,第3.4节,作者 王彦平(蓝鲸),更多章节内容可以访问云栖社区"异步社区"公众号查看 3.4 ...

  3. 《从Excel到R 数据分析进阶指南》一第1章 生成数据表1.1 导入数据表

    本节书摘来自异步社区<从Excel到R 数据分析进阶指南>一书中的第1章,第1.1节,作者 王彦平(蓝鲸),更多章节内容可以访问云栖社区"异步社区"公众号查看 第1章 ...

  4. 【数据分析进阶】DCIC竞赛-task2 数据可视化

    [数据分析进阶]DCIC竞赛-task2 数据可视化 数据可视化介绍 常规可视化 可视化组成元素 可视化图标类型 地图可视化 赛题可视化 1. 24小时巡游成统计数量 2. 24小时巡游车平均GPS速 ...

  5. python用于财务数据分析_财务数据分析进阶之路

    从一个人生故事说起 刚从学校毕业的年轻人,选定一个方向,开始探索. 几年以后,探索到了边界,用力推开一扇门,勇敢的跨进去,点亮了更大的世界. 又过了许久,再次来到世界尽头,再次努力突破天花板,又见到了 ...

  6. 冰与火之歌-五王之战(优达数据分析进阶项目)

    五王之战分析 - 冰与火之歌 简介 五王之战(War of the Five Kings)是著名严肃奇幻小说<冰与火之歌>中的著名内战.这是一场规模空前.波及七大王国的内乱.顾名思义,前后 ...

  7. 互联网业务数据分析-数据分析进阶

    本章主要介绍了四种数据分析进阶方法,主要是用户画像.归因查找.路径挖掘.行为序列,此外,还介绍了3种数据分析案例.

  8. 【数据分析进阶】DCIC竞赛-task1 数据读取

    [数据分析进阶]DCIC竞赛-task1 数据读取 学习目标 赛题介绍 赛题思路 赛题数据 数据读取 pandas介绍 numpy介绍 读取代码 1.巡游车GPS数据读取 2.巡游车订单单个文件读取 ...

  9. 【数据分析进阶】DCIC竞赛-task56 订单调度分析

    [数据分析进阶]DCIC竞赛-task5&6 订单调度分析 task5 订单调度分析 经纬度转换相关知识 经纬度编码 订单调度分析 思考 task 06 分析报告撰写 分析报告撰写 报告撰写建 ...

最新文章

  1. 如果特斯拉制造相机的梦想像激光雷达一样真正实现,它可能会帮助到更多同行...
  2. ST-Link VCP Ctrl驱动安装失败解决(win7 64bits)
  3. 5分钟学会区块链 - 开发一条区块链 Develop BlockChain with Tendermint
  4. [Python图像处理] 五.图像融合、加法运算及图像类型转换
  5. 235. 二叉搜索树的最近公共祖先
  6. ExtJS Grid 与 Asp.NET 通信
  7. docker部署mysql项目_Docker部署项目步骤
  8. 已知拱高和弦长,求弧长、半径、角度
  9. python合并pdf_一个用于合并pdf的简单Python脚本
  10. 项目管理工具——5W1H分析法
  11. 超好玩的css3-3d效果
  12. 人工智能截稿日期重磅
  13. 【Python】Talk Python To Me Podcast播客
  14. 微信域名防封的注意点,微信域名防封系统原理
  15. 计算车号Java,汽车VIN码校验算法 java版
  16. c语言作业迷宫代码,用C语言写的走迷宫的代码
  17. 整理准备使用wireshark、拉米在线解密PDM5生成密钥网址
  18. linux下测试ftp传输,linux下ftp命令使用详解---linux文件传输ftp命令
  19. java中accept什么意思_accept()
  20. 程序猿之歌:一人我编程累

热门文章

  1. validateform.js表单验证工具
  2. java编写GUI计算器
  3. windows如何使用远程桌面连接电脑
  4. 芭比之长发公主 Barbie as Rapunzel 高清720P
  5. U盘文件找不到了?莫慌!!!
  6. 数据库1NF 2NF 3NF范式解释
  7. 笔刷分享|每个建模人都在用的笔刷合集
  8. 超过1M的网络动图添加到微信表情包
  9. java学习(类和对象)
  10. 华为p60pro和mate50pro哪个好 华为p60pro和mate50pro参数对比