R语言——拍拍贷利率数据分析

library(ggplot2)
library(knitr)
library(gridExtra)
library(GGally)
library(scales)
library(memisc)
library(dplyr)
# 设置工作环境
setwd("C:/Users/yc/new-dand-advanced-china-master/ppdai_3_23")

# 加载数据
df <- read.csv("LC1.csv", fileEncoding='utf-8')

# 查看数据集的变量属性和统计数据
str(df)
summary(df)
## 'data.frame':    328553 obs. of  21 variables:
##  $ ListingId       : int  126541 133291 142421 149711 152141 162641 171191 175451 182261 193831 ...
##  $ 借款金额        : int  18000 9453 27000 25000 20000 20000 3940 20000 25000 10475 ...
##  $ 借款期限        : int  12 12 24 12 6 12 6 12 12 6 ...
##  $ 借款利率        : num  18 20 20 18 16 14 18 18 16 18 ...
##  $ 借款成功日期    : Factor w/ 756 levels "2015-01-01","2015-01-02",..: 119 70 477 84 22 79 172 439 75 100 ...
##  $ 初始评级        : Factor w/ 6 levels "A","B","C","D",..: 3 4 5 3 3 1 5 2 2 3 ...
##  $ 借款类型        : Factor w/ 4 levels "APP闪电","电商",..: 4 4 3 4 2 3 2 3 4 2 ...
##  $ 是否首标        : Factor w/ 2 levels "否","是": 1 1 1 1 1 1 1 1 1 1 ...
##  $ 年龄            : int  35 34 41 34 24 36 27 32 33 25 ...
##  $ 性别            : Factor w/ 2 levels "男","女": 1 1 1 1 1 1 2 1 2 1 ...
##  $ 手机认证        : Factor w/ 2 levels "成功认证","未成功认证": 1 2 1 1 1 1 1 1 1 1 ...
##  $ 户口认证        : Factor w/ 2 levels "成功认证","未成功认证": 2 1 2 1 1 1 1 1 2 1 ...
##  $ 视频认证        : Factor w/ 2 levels "成功认证","未成功认证": 1 2 2 1 1 1 1 1 1 1 ...
##  $ 学历认证        : Factor w/ 2 levels "成功认证","未成功认证": 2 2 2 2 2 2 2 2 2 2 ...
##  $ 征信认证        : Factor w/ 2 levels "成功认证","未成功认证": 2 2 2 2 2 2 2 2 2 2 ...
##  $ 淘宝认证        : Factor w/ 2 levels "成功认证","未成功认证": 2 2 2 2 2 2 2 2 2 2 ...
##  $ 历史成功借款次数: int  11 4 5 6 13 7 15 7 7 9 ...
##  $ 历史成功借款金额: num  40326 14500 21894 36190 77945 ...
##  $ 总待还本金      : num  8713 7891 11726 9703 0 ...
##  $ 历史正常还款期数: int  57 13 25 41 118 56 75 52 41 49 ...
##  $ 历史逾期还款期数: int  16 1 3 1 14 0 8 0 2 4 ...
##    ListingId           借款金额         借款期限        借款利率   
##  Min.   :  126541   Min.   :   100   Min.   : 1.00   Min.   : 6.5  
##  1st Qu.:11908871   1st Qu.:  2033   1st Qu.: 6.00   1st Qu.:20.0  
##  Median :19523251   Median :  3397   Median :12.00   Median :20.0  
##  Mean   :19079479   Mean   :  4424   Mean   :10.21   Mean   :20.6  
##  3rd Qu.:26298621   3rd Qu.:  5230   3rd Qu.:12.00   3rd Qu.:22.0  
##  Max.   :32819531   Max.   :500000   Max.   :24.00   Max.   :24.0  
##                                                                    
##      借款成功日期    初始评级      借款类型      是否首标   
##  2017-01-25:  3558   A: 10284   APP闪电:112079   否:241090  
##  2017-01-20:  3063   B: 33188   电商   :  1069   是: 87463  
##  2016-12-14:  2266   C:131705   普通   :118103              
##  2016-12-02:  2033   D:134860   其他   : 97302              
##  2017-01-09:  1859   E: 17027                               
##  2017-01-04:  1806   F:  1489                               
##  (Other)   :313968                                          
##       年龄       性别              手机认证            户口认证     
##  Min.   :17.00   男:221946   成功认证  :123007   成功认证  : 10105  
##  1st Qu.:24.00   女:106607   未成功认证:205546   未成功认证:318448  
##  Median :28.00                                                      
##  Mean   :29.14                                                      
##  3rd Qu.:33.00                                                      
##  Max.   :56.00                                                      
##                                                                     
##        视频认证            学历认证            征信认证     
##  成功认证  : 18501   成功认证  :114124   成功认证  :  9606  
##  未成功认证:310052   未成功认证:214429   未成功认证:318947  
##                                                             
##                                                             
##                                                             
##                                                             
##                                                             
##        淘宝认证      历史成功借款次数  历史成功借款金额    总待还本金     
##  成功认证  :  1152   Min.   :  0.000   Min.   :      0   Min.   :      0  
##  未成功认证:327401   1st Qu.:  0.000   1st Qu.:      0   1st Qu.:      0  
##                      Median :  2.000   Median :   5000   Median :   2542  
##                      Mean   :  2.323   Mean   :   8786   Mean   :   3722  
##                      3rd Qu.:  3.000   3rd Qu.:  10355   3rd Qu.:   5447  
##                      Max.   :649.000   Max.   :7405926   Max.   :1172653  
##                                                                           
##  历史正常还款期数   历史逾期还款期数 
##  Min.   :   0.000   Min.   : 0.0000  
##  1st Qu.:   0.000   1st Qu.: 0.0000  
##  Median :   5.000   Median : 0.0000  
##  Mean   :   9.948   Mean   : 0.4233  
##  3rd Qu.:  13.000   3rd Qu.: 0.0000  
##  Max.   :2507.000   Max.   :60.0000  
## 

单变量

单变量绘图选择

借款金额分布:由summary数据可知,借款金额最低为100,最高为500000,集中分布在3000-4000左右,做直方图。

# 借款金额的直方图,并做log转换
ggplot(df, aes(借款金额))+
  geom_histogram(binwidth = .05)+
  scale_x_log10(breaks = c(0, 500, 1000, 2000, 5000, 10000, 20000, 50000))+
  scale_y_sqrt()+
  theme(axis.text.x = element_text(angle=-45, hjust=.5))+
  geom_vline(xintercept = quantile(df$借款金额, .95), linetype='dashed', color='red')+
  geom_vline(xintercept = quantile(df$借款金额, .05), linetype='dashed', color='red')

# 查看5%和95%分位点的借款金额
quantile(df$借款金额, .95)
quantile(df$借款金额, .05)

df$log借款金额 <- log(df$借款金额)

在这里插入图片描述90%的借款分布在660-9000区间内,说明以小额借款为主。经log转换后借款分布近似正太分布。

借款人年龄分布:最小17,最大56,集中在28,29岁,做直方图。

# 建立年龄的直方图,并做log对数转换
ggplot(df, aes(年龄))+
  geom_histogram(binwidth = .02)+
  scale_x_log10(breaks = seq(17, 56, 2))+
  coord_trans(y='sqrt')+
  geom_vline(xintercept = quantile(df$年龄, .95), linetype='dashed', color='orange')+
  geom_vline(xintercept = quantile(df$年龄, .05), linetype='dashed', color='orange')

df$log年龄 <- log(df$年龄)

在这里插入图片描述
90%的借款人年龄在21岁到43岁区间内,说明借款人以青壮年为主力。分布经log转换后近似正态分布,显示25-27岁左右的青年人借款最集中,这个年龄的人群大概最缺钱吧。

借款利率分布:最低6.5,最高24.0,集中在20左右,做直方图。

# 借款利率的直方图
ggplot(df, aes(借款利率))+
  geom_histogram(binwidth = 1)+
  scale_y_sqrt()+
  scale_x_continuous(breaks = seq(6, 24, 1))

在这里插入图片描述
借款利率集中分布在20和22两档,大部分借款人都是这个利率。分布也近似正态。

借款期限分布:最低1个月,最高24个月,集中分布在12个月左右,做直方图。

# 借款期限直方图,做log转换
ggplot(df, aes(借款期限))+
  geom_histogram(binwidth = .05)+
  scale_x_log10(breaks = seq(1, 24, 1))+
  scale_y_sqrt()

df$log借款期限 <- log(df$借款期限)

在这里插入图片描述
大部分借款人借款期限为6个月和12个月两档,说明借款以短期借款为主。转换后近似正态分布。

认证分布:比较6个认证特征的分布差异。

# 柱状图显示6个认证特征的分布,用grid.arrange方法塞进一张图里
p1 <- ggplot(df, aes(手机认证))+
  geom_bar()
p2 <- ggplot(df, aes(户口认证))+
  geom_bar()
p3 <- ggplot(df, aes(视频认证))+
  geom_bar()
p4 <- ggplot(df, aes(学历认证))+
  geom_bar()
p5 <- ggplot(df, aes(征信认证))+
  geom_bar()
p6 <- ggplot(df, aes(淘宝认证))+
  geom_bar()

grid.arrange(p1, p2, p3, p4, p5, p6, ncol=3)

在这里插入图片描述
6个认证特征均是未成功认证占多数。而成功认证当中,大部分只有手机认证或学历认证。

借款人性别分布

# 柱状图显示借款人的性别分布
ggplot(df, aes(性别))+
  geom_bar()

在这里插入图片描述
借款的男性数量几乎是女性的两倍,看来当今社会男性更加缺钱呀。

借款成功日期分布:最早开始于2015-01-01,最晚截止至2017-01-30。

# 将借款成功日期转换为Date数据类型
df$借款成功日期 <- as.Date(as.character(df$借款成功日期), "%Y-%m-%d")

ggplot(df, aes(借款成功日期))+
  geom_histogram(binwidth = 30)+
  scale_x_date(date_breaks = '1 month', date_labels = '%y-%m')

在这里插入图片描述
分布呈明显的左偏,到截止时间为止,借款数量稳步上升。在16年底,17年初也就是最后的截止时间附近,借款数量最高。

借款是否首标

# 柱状图显示是否为首标
ggplot(df, aes(是否首标))+
  geom_bar()

在这里插入图片描述
首标约为非首标的1/3,说明大部分借款人都不是第一次借款。

借款类型分布

# 柱状图显示借款类型的分布,由于电商数量太少,使用scale_y_sqrt方法使其数量显示更清楚。
ggplot(df, aes(借款类型))+
  scale_y_sqrt()+
  geom_bar()

在这里插入图片描述
APP闪电,普通和其他,3中借款类型平分秋色,电商类借款最少,远少于其他类型。推测为电商类借款难以获得资格。

查看历史借款情况

# 将借款成功日期转换为Date数据类型,并做log转换
p7 <- ggplot(df, aes(历史成功借款次数))+
  geom_histogram()+
  scale_x_log10()
p8 <- ggplot(df, aes(历史成功借款金额))+
  geom_histogram()+
  scale_x_log10()
p9 <- ggplot(df, aes(总待还本金))+
  geom_histogram()+
  scale_x_log10()
p10 <- ggplot(df, aes(历史正常还款期数))+
  geom_histogram()+
  scale_x_log10()
p11 <- ggplot(df, aes(历史逾期还款期数))+
  geom_histogram()+
  scale_x_log10()

# 同样用grid.arrange方法塞进一张图里
grid.arrange(p7,p8,p9,p10,p11, ncol=3)

# 由于历史借款数据可能为0,最好在log转换前+1避免无穷大出现
df$log历史成功借款次数 <- log(df$历史成功借款次数+1)
df$log历史成功借款金额 <- log(df$历史成功借款金额+1)
df$log总待还本金 <- log(df$总待还本金+1)
df$log历史正常还款期数 <- log(df$历史正常还款期数+1)
df$log历史逾期还款期数 <- log(df$历史逾期还款期数+1)

在这里插入图片描述
经过log转换后,历史成功借款金额,总待还本金,历史正常还款期数都近似正态分布。而历史成功借款次数和历史逾期还款期数仍有明显的右偏。

单变量分析

你的数据集结构是什么?

数据集含有328553条借款数据,21个变量。

你的数据集内感兴趣的主要特性有哪些?

由于借款时不同的借款人会有不同的借款利率,而借款利率直接关系到借款人的经济利益,是数据集中最应关注的特征。

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

除了ListingId外的其他19个特征,应该都与借款利率存在一定相关性,可帮助探索。

根据数据集内已有变量,你是否创建了任何新变量?

对若干个数值型变量进行了log对数转换,并将转换后的值保存为log+variable形式的新变量,方便用于后续的分析和计算。

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

数据集中的借款成功日期是factor数据类型,可转换为date类型,以便按时间序列作图。

双变量

双变量绘图选择

绘制借款利率与数值型变量之间的特征矩阵图。

# 借款利率与数值变量的矩阵图
Num_vars <- c("log借款金额","log借款期限","借款利率","借款成功日期","log年龄","log历史成功借款次数","log历史成功借款金额","log总待还本金","log历史正常还款期数","log历史逾期还款期数")
df_subset <- df[Num_vars]
set.seed(42)
theme_set(theme_minimal(10))
# 选取2000个样本进行ggpairs矩阵绘图
ggpairs(df_subset[sample.int(nrow(df_subset), 2000),])

在这里插入图片描述
数值型变量中,与借款利率相关系数最高的是借款期限,为0.381。而历史成功借款次数和金额,总待还本金,历史正常还款期数这几个变量均有-0.25左右的负相关系数。说明借款期限越高,利率越高,而呈负相关的几项特征值越高,利率越低。
另外可以发现,年龄,借款金额,借款成功时间,和历史逾期还款期数与借款利率的相关性很低,可以认为不相关。

借款利率与几个数值变量的相关系数。

# 重新设回ggplot默认主题
theme_set(theme_grey())

# 计算借款利率的相关系数较高的几个特征关系
with(df, cor.test(借款利率, log借款期限, method='pearson'))
with(df, cor.test(借款利率, log历史成功借款次数, method='pearson'))
with(df, cor.test(借款利率, log历史成功借款金额, method='pearson'))
with(df, cor.test(借款利率, log总待还本金, method='pearson'))
with(df, cor.test(借款利率, log历史正常还款期数, method='pearson'))

## 
##  Pearson's product-moment correlation
## 
## data:  借款利率 and log借款期限
## t = 228.91, df = 328550, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.3679249 0.3738230
## sample estimates:
##       cor 
## 0.3708777
## 
##  Pearson's product-moment correlation
## 
## data:  借款利率 and log历史成功借款次数
## t = -160.81, df = 328550, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.2732944 -0.2669547
## sample estimates:
##        cor 
## -0.2701275
## 
##  Pearson's product-moment correlation
## 
## data:  借款利率 and log历史成功借款金额
## t = -164.34, df = 328550, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.2787568 -0.2724375
## sample estimates:
##        cor 
## -0.2756001
## 
##  Pearson's product-moment correlation
## 
## data:  借款利率 and log总待还本金
## t = -146.55, df = 328550, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.2509111 -0.2444920
## sample estimates:
##        cor 
## -0.2477043
## 
##  Pearson's product-moment correlation
## 
## data:  借款利率 and log历史正常还款期数
## t = -154.57, df = 328550, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.2635476 -0.2571724
## sample estimates:
##        cor 
## -0.2603628

借款利率与借款期限的相关系数为0.371,而另外几个特征均为-0.25左右。

借款利率与初始评级关系。

# 对初始评级做利率的箱型图,观察评级与利率的相关性
ggplot(df, aes(初始评级, 借款利率))+
  geom_boxplot()

在这里插入图片描述
初始评级越高(最高为A),借款利率越低。

借款利率与借款类型的关系。

# 箱型图比较不同借款类型
ggplot(df, aes(借款类型, 借款利率))+
  geom_boxplot()

在这里插入图片描述
电商的借款利率最低,其他类型没有明显差异。

借款利率与是否首标关系。

# 箱型图比较是否首标的区别
ggplot(df, aes(是否首标, 借款利率))+
  geom_boxplot()

在这里插入图片描述
没有明显关系。

借款利率与性别关系。

# 箱型图比较性别差异
ggplot(df, aes(性别, 借款利率))+
  geom_boxplot()

在这里插入图片描述
没有明显关系。

借款利率与6种认证的关系。

# 箱型图比较6种认证对利率的影响
f1 <- ggplot(df, aes(手机认证, 借款利率))+
  geom_boxplot()
f2 <- ggplot(df, aes(户口认证, 借款利率))+
  geom_boxplot()
f3 <- ggplot(df, aes(视频认证, 借款利率))+
  geom_boxplot()
f4 <- ggplot(df, aes(学历认证, 借款利率))+
  geom_boxplot()
f5 <- ggplot(df, aes(征信认证, 借款利率))+
  geom_boxplot()
f6 <- ggplot(df, aes(淘宝认证, 借款利率))+
  geom_boxplot()

grid.arrange(f1,f2,f3,f4,f5,f6, ncol=3)

在这里插入图片描述
淘宝认证成功者借款利率较低,其他认证成功与否与借款利率关系不明显。结合借款类型中电商的低利率,说明淘宝商家在借款中有一定的利率优势。这可能与淘宝商家的借款金额,初始评级有关。

查看淘宝认证商家的借款类型。

# 柱状图比较不同类型的利率,并用facet_wrap方法分为淘宝成功认证与否来比较
ggplot(df, aes(借款类型))+
  geom_bar()+
  scale_y_sqrt()+
  facet_wrap(~淘宝认证, scales = 'free_y')

在这里插入图片描述
淘宝认证成功的借款人借款类型多为电商,未认证成功者则几乎不适用电商类型借款。这应该与拍拍贷借款策略有关,只有通过了淘宝认证的借款人才能使用电商类型借款。

淘宝商家的借款金额。

# 箱型图淘宝认证与否的借款金额差异
ggplot(df, aes(淘宝认证, 借款金额))+
  geom_boxplot()+
  scale_y_sqrt()+
  coord_cartesian(ylim = c(0, 100000))

在这里插入图片描述
淘宝认证电商在借款金额上明显高于非电商借款人。

淘宝商家的初始评级。

# 柱状图查看淘宝认证与否的初始评级差异,同样以facet_wrap方法分组
ggplot(df, aes(初始评级))+
  geom_bar()+
  facet_wrap(~淘宝认证, scales = 'free_y')

在这里插入图片描述
淘宝认证成功商家初始评级集中在B、C,未成功认证者集中在C、D,说明电商借款的初始评级更高。

双变量分析

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

  1. 借款期限越长,借款利率越高。
  2. 借款金额,历史成功借款次数和金额,总待还本金,历史正常还款期数越大,借款利率越低。
  3. 初始评级越高,借款利率越低。
  4. 借款利率与是否首标,年龄,性别,除淘宝认证外的其他认证没有明显相关性。
  5. 拥有淘宝认证的电商借款利率更低,这与其较高的借款金额和初始评级有关。

借款利率作为数据集的一个特征本质上与其他特征没有区别,但由于我想要找出其他特征与借款利率的相关性,便赋予了借款利率一个目标值的意义,并以此为目的进行了单变量乃至多变量的分析。

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

借款利率与借款期限正相关,与借款金额,历史成功借款次数和金额,总待还本金,历史正常还款期数负相关。此外,初始评级越高,或是拥有淘宝认证的电商,借款利率越低。

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

数值型变量中,借款利率与借款期限的相关性最强,达0.371;而分类型变量中,初始评级与借款利率的线性关系最明显。

多变量

多变量绘图选择

借款利率,借款金额和借款类型之间关系。

# 以借款金额为x,利率为y,不同借款类型为不同颜色做多变量散点图
ggplot(df, aes(借款金额, 借款利率, color=借款类型))+
  scale_x_log10()+
  geom_jitter(alpha=.75)

在这里插入图片描述
APP闪电多为小额借款,利率较高,电商正好相反,借款额度高,利率较低。

借款利率,借款金额,初始评级之间关系。

# 以借款金额为x,利率为y,不同初始评级为不同颜色做多变量散点图
# scale_color_brewer方法调用红色色板,颜色越深的评级越高
ggplot(df, aes(借款金额, 借款利率, color=初始评级))+
  scale_x_log10()+
  geom_point(position = 'jitter')+
  scale_color_brewer(palette = 'Reds',direction = -1)

在这里插入图片描述
初始评级越高的借款人,更倾向于高额借款,并能得到较低的借款利率。

借款利率,借款期限,借款金额的关系。

# 以借款期限为x,利率为y,不同借款金额为不同散点大小做多变量散点图
ggplot(df, aes(借款期限, 借款利率, size=借款金额))+
  scale_x_log10()+
  geom_point(position = 'jitter', alpha=.25)

在这里插入图片描述
大额借款主要集中在短期低利率区间内,说明资本是很理智的,不愿意在利率上花费太多。而小额贷款的周期大多偏长,利率也较高。整体上借款利率有随借款期限上升的趋势。

建立预测借款利率线性模型。

# 由于log历史成功还款次数的分布显著右偏,不代入线性模型中
m1 <- lm(I(借款利率)~I(log借款期限), data=df)
m2 <- update(m1, ~.+初始评级)
m3 <- update(m2, ~.+log借款金额)
m4 <- update(m3, ~.+借款类型)
m5 <- update(m4, ~.+淘宝认证)
m6 <- update(m5, ~.+log历史成功借款金额)
m7 <- update(m6, ~.+log总待还本金)
m8 <- update(m7, ~.+log历史正常还款期数)
mtable(m1, m2, m3, m4, m5, m6, m7, m8)
## 
## Calls:
## m1: lm(formula = I(借款利率) ~ I(log借款期限), data = df)
## m2: lm(formula = I(借款利率) ~ I(log借款期限) + 初始评级, data = df)
## m3: lm(formula = I(借款利率) ~ I(log借款期限) + 初始评级 + log借款金额, 
##     data = df)
## m4: lm(formula = I(借款利率) ~ I(log借款期限) + 初始评级 + log借款金额 + 
##     借款类型, data = df)
## m5: lm(formula = I(借款利率) ~ I(log借款期限) + 初始评级 + log借款金额 + 
##     借款类型 + 淘宝认证, data = df)
## m6: lm(formula = I(借款利率) ~ I(log借款期限) + 初始评级 + log借款金额 + 
##     借款类型 + 淘宝认证 + log历史成功借款金额, data = df)
## m7: lm(formula = I(借款利率) ~ I(log借款期限) + 初始评级 + log借款金额 + 
##     借款类型 + 淘宝认证 + log历史成功借款金额 + log总待还本金, 
##     data = df)
## m8: lm(formula = I(借款利率) ~ I(log借款期限) + 初始评级 + log借款金额 + 
##     借款类型 + 淘宝认证 + log历史成功借款金额 + log总待还本金 + 
##     log历史正常还款期数, data = df)
## 
## ==========================================================================================================================================================
##                                 m1              m2              m3              m4              m5              m6              m7              m8        
## ----------------------------------------------------------------------------------------------------------------------------------------------------------
##   (Intercept)                  16.038***       15.393***       16.528***       16.464***       16.353***       16.966***       16.958***       16.966***  
##                                (0.020)         (0.014)         (0.018)         (0.019)         (0.034)         (0.035)         (0.035)         (0.035)    
##   I(log借款期限)                2.005***        0.315***        0.389***        0.339***        0.339***        0.354***        0.353***        0.349***  
##                                (0.009)         (0.005)         (0.005)         (0.005)         (0.005)         (0.005)         (0.005)         (0.005)    
##   初始评级: B/A                                 1.932***        1.937***        1.976***        1.976***        1.956***        1.956***        1.957***  
##                                                (0.010)         (0.009)         (0.009)         (0.009)         (0.009)         (0.009)         (0.009)    
##   初始评级: C/A                                 3.925***        3.938***        3.939***        3.939***        3.946***        3.946***        3.949***  
##                                                (0.009)         (0.009)         (0.008)         (0.008)         (0.008)         (0.008)         (0.008)    
##   初始评级: D/A                                 5.726***        5.713***        5.711***        5.711***        5.634***        5.635***        5.640***  
##                                                (0.009)         (0.009)         (0.009)         (0.009)         (0.009)         (0.009)         (0.009)    
##   初始评级: E/A                                 6.716***        6.712***        6.693***        6.692***        6.536***        6.537***        6.542***  
##                                                (0.011)         (0.010)         (0.010)         (0.010)         (0.011)         (0.011)         (0.011)    
##   初始评级: F/A                                 5.239***        5.207***        5.195***        5.195***        5.099***        5.101***        5.105***  
##                                                (0.023)         (0.023)         (0.023)         (0.023)         (0.023)         (0.023)         (0.023)    
##   log借款金额                                                  -0.162***       -0.142***       -0.142***       -0.190***       -0.189***       -0.189***  
##                                                                (0.002)         (0.002)         (0.002)         (0.002)         (0.002)         (0.002)    
##   借款类型: 电商/APP闪电                                                       -2.277***       -2.216***       -2.033***       -2.028***       -2.013***  
##                                                                                (0.026)         (0.030)         (0.030)         (0.030)         (0.030)    
##   借款类型: 普通/APP闪电                                                        0.078***        0.078***        0.104***        0.103***        0.101***  
##                                                                                (0.004)         (0.004)         (0.004)         (0.004)         (0.004)    
##   借款类型: 其他/APP闪电                                                       -0.030***       -0.030***        0.072***        0.071***        0.069***  
##                                                                                (0.004)         (0.004)         (0.004)         (0.004)         (0.004)    
##   淘宝认证: 未成功认证                                                                          0.111***        0.062*          0.061*          0.064*    
##                                                                                                (0.028)         (0.028)         (0.028)         (0.028)    
##   log历史成功借款金额                                                                                          -0.032***       -0.035***       -0.043***  
##                                                                                                                (0.000)         (0.001)         (0.001)    
##   log总待还本金                                                                                                                 0.004***        0.005***  
##                                                                                                                                (0.001)         (0.001)    
##   log历史正常还款期数                                                                                                                           0.023***  
##                                                                                                                                                (0.002)    
## ----------------------------------------------------------------------------------------------------------------------------------------------------------
##   R-squared                     0.138           0.774           0.779           0.785           0.785           0.789           0.789           0.789     
##   adj. R-squared                0.138           0.774           0.779           0.785           0.785           0.789           0.789           0.789     
##   sigma                         1.646           0.842           0.832           0.821           0.821           0.814           0.814           0.814     
##   F                         52399.890      187610.099      165872.707      120187.024      109267.017      102391.389       94521.739       87799.714     
##   p                             0.000           0.000           0.000           0.000           0.000           0.000           0.000           0.000     
##   Log-likelihood          -629930.385     -409872.077     -405915.242     -401479.378     -401471.800     -398623.952     -398614.491     -398570.495     
##   Deviance                 890154.488      233185.563      227636.058      221571.578      221561.357      217753.537      217740.996      217682.690     
##   AIC                     1259866.769      819760.153      811848.485      802982.756      802969.599      797275.904      797258.982      797172.990     
##   BIC                     1259898.876      819845.773      811944.807      803111.185      803108.731      797425.738      797419.518      797344.229     
##   N                        328553          328553          328553          328553          328553          328553          328553          328553         
## ==========================================================================================================================================================

多变量分析

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

借款利率和初始评级,借款金额,借款期限,借款类型等均存在不同程度的相关性。其中,借款利率与借款期限有相互促进的正相关关系。

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

很多特征之间是相互联系的,譬如获得淘宝认证的电商普遍利率更低,同时这些电商又拥有较高的初始评级和借款金额,并且更倾向于使用电商类贷款,而正是这些特征又会带来较低的借款利率。这些特征相互联系,对借款利率的影响相似,属于相关性较强的特征。

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

创建了数据集的线性回归模型,以借款利率为目标值,依次带入借款期限,初始评级,借款金额,借款类型,淘宝认证,历史成功借款金额,总待还本金,历史正常还款期数这7个变量。最终得到的模型决定系数R^2=0.789,线性相关性还不错。

在模型构建中带入的这些特征之间,或多或少带有一定相关性,或者说变量的重复,会增加模型的复杂度。有条件的话可以做主成分分析将特征转换为不相关的变量。


定稿图与总结

图像展示

绘图一

# 将楷体添加到windowsfont字体库中
windowsFonts(kaiti=windowsFont("楷体"))

# 借款利率分布的直方图
ggplot(df, aes(借款利率))+
  geom_histogram(binwidth = 1, fill=I('#B3EE3A'), color=I('black'))+     # 填充草绿色
  scale_y_sqrt()+                                                        # y轴开方以延长低频段   
  labs(x = '利率', y = '频数', title = '借款利率的分布')+
  theme(title = element_text(family = "kaiti", size = 12, 
                             color = 'red', face = 'bold'))              # 设置标签格式

在这里插入图片描述
借款利率主要集中在16-24之间,主要为偶数。其中,20和22利率出现最多。近似呈正态分布。

绘图二

# 初始评级的借款利率箱型图
ggplot(df, aes(初始评级, 借款利率, color=初始评级, fill=初始评级))+
  geom_boxplot()+
  theme_bw()+                                                             # 白色背景
  coord_cartesian(ylim = seq(15,24,1))+
  labs(x = '评级', y = '利率', color = '评级', fill='评级', title = '不同评级的利率箱型图')+
  theme(title = element_text(size = 12, color = 'black', 
                             face = 'bold', family = "kaiti"))    # 设置标签格式

在这里插入图片描述
初始评级越高(A>B>C>D>E>F),借款利率越低,有明显的线性相关关系。

绘图三

# 以借款期限为x,利率为y,不同借款金额为不同散点大小做多变量散点图
ggplot(df, aes(借款期限, 借款利率, size=借款金额))+
  scale_x_log10()+
  geom_point(position = 'jitter', alpha=.25)+
  labs(x = '期限(月)', y = '利率', size = '金额(RMB)', title = '借款期限,利率,金额关系图')+
  theme(panel.grid = element_blank())+                             # 删掉网格线
  theme(title = element_text(size = 12, color = 'blue', 
                             face = 'bold', family = "kaiti"))     # 设置标签格式

在这里插入图片描述
大额借款主要集中在短期低利率区间内,说明资本是很理智的,不愿意在利率上花费太多。而小额贷款的周期大多偏长,利率也较高。整体上借款利率有随借款期限上升的趋势。


反思与总结

  1. 本项目采用拍拍贷真实数据集中的LC表数据,主要对借款的利率及其影响因素做探究,通过单变量,双变量和多变量的探索,找出了特征间的一些规律,并以贷款利率为目标值创建了预测的线性模型。
  2. 借款利率与借款人初始评级关系最大,初始评级越高,利率越低。此外,借款利率还与借款期限正相关,与借款金额负相关。电商在借款中可获得最低的利率,收益最高。
  3. 项目在进行过程中也遇到了许多问题,主要是对R语言和ggplot2包的不熟悉所致,譬如plot文本字体类型,大小,位置的设置和主题的选择等。此外,Rstudio对中文的支持也不太好,导致使用时多有不便。
  4. 由于不太好直接比较数值型变量和分类变量对目标值“借款利率”的影响,开始时我错误地认为相关系数较高的“借款期限”是对利率影响最大的特征。而在后面线性模型的建立中发现,只代入特征“借款期限”得到的R方只有0.138,代入特征“初始评级”后却可以让决定系数R方升高至0.774,而最后代入所有变量得到的R方为0.789,没有太大变化。可以认为“初始评级”在线性模型的构建中占最大的比重,是对利率影响最大的特征。这也是探索过程中的意外发现。
  5. 建立的预测借款利率的线性模型中,特征之间相关性较高,导致模型变量的重复和冗余。后续有条件可以对其进行主成分分析,将相关特征转换为不相关特征。除了数据集中的LC表外,后续还可对LCIS表及LP表进行联立探索,分析和预测投资者收益或每笔借款收回情况。

猜你喜欢

转载自blog.csdn.net/weixin_44054605/article/details/88410528