利用R分析拍拍贷数据

Posted 人走茶会凉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用R分析拍拍贷数据相关的知识,希望对你有一定的参考价值。

 

 

 

 

 

 

 

 

拍拍贷数据集分析

```{r echo=FALSE, message=FALSE, warning=FALSE}
# 加载你最终使用的所有组件
# 在这个代码块的分析中。

# 注意,在这个代码块中,将参数 "echo" 设为假。
# This prevents the code from displaying in the knitted html output.这可以避免代码混入 HTML 输出显示。
# 应当在文件中,对所有代码块设为 echo=FALSE 。
library(ggplot2)
library(gridExtra)
library(GGally)
library(scales)
library(memisc)
library(dplyr)
```

单变量曲线部分

```{r echo=FALSE, Load_the_Data}
# 加载数据
lc <- read.csv(\'LC.csv\',fileEncoding = \'utf8\')
str(lc)
summary(lc)  
```  
\'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   2017-01-25:  3558   A: 10284  
 1st Qu.:11908871   1st Qu.:  2033   1st Qu.: 6.00   1st Qu.:20.0   2017-01-20:  3063   B: 33188  
 Median :19523251   Median :  3397   Median :12.00   Median :20.0   2016-12-14:  2266   C:131705  
 Mean   :19079479   Mean   :  4424   Mean   :10.21   Mean   :20.6   2016-12-02:  2033   D:134860  
 3rd Qu.:26298621   3rd Qu.:  5230   3rd Qu.:12.00   3rd Qu.:22.0   2017-01-09:  1859   E: 17027  
 Max.   :32819531   Max.   :500000   Max.   :24.00   Max.   :24.0   2017-01-04:  1806   F:  1489  
                                                                    (Other)   :313968             
    借款类型      是否首标         年龄       性别              手机认证            户口认证     
 APP闪电:112079   否:241090   Min.   :17.00   男:221946   成功认证  :123007   成功认证  : 10105  
 电商   :  1069   是: 87463   1st Qu.:24.00   女:106607   未成功认证:205546   未成功认证:318448  
 普通   :118103               Median :28.00                                                      
 其他   : 97302               Mean   :29.14                                                      
                              3rd Qu.:33.00                                                      
                              Max.   :56.00                                                      
                                                                                                 
       视频认证            学历认证            征信认证            淘宝认证      历史成功借款次数 
 成功认证  : 18501   成功认证  :114124   成功认证  :  9606   成功认证  :  1152   Min.   :  0.000  
 未成功认证:310052   未成功认证:214429   未成功认证:318947   未成功认证:327401   1st Qu.:  0.000  
                                                                                 Median :  2.000  
                                                                                 Mean   :  2.323  
                                                                                 3rd Qu.:  3.000  
                                                                                 Max.   :649.000  
                                                                                                  
 历史成功借款金额    总待还本金      历史正常还款期数   历史逾期还款期数 
 Min.   :      0   Min.   :      0   Min.   :   0.000   Min.   : 0.0000  
 1st Qu.:      0   1st Qu.:      0   1st Qu.:   0.000   1st Qu.: 0.0000  
 Median :   5000   Median :   2542   Median :   5.000   Median : 0.0000  
 Mean   :   8786   Mean   :   3722   Mean   :   9.948   Mean   : 0.4233  
 3rd Qu.:  10355   3rd Qu.:   5447   3rd Qu.:  13.000   3rd Qu.: 0.0000  
 Max.   :7405926   Max.   :1172653   Max.   :2507.000   Max.   :60.0000  

我们的数据集由21个变量组成,有328553个观测值。 

# 单变量绘图选择

```{r echo=FALSE}
##1.借款金额
summary(lc$借款金额)
ggplot(aes(x=借款金额),data =lc )+
  geom_histogram(binwidth = .01)+
  scale_x_log10(breaks = c(0,700,1000,3000,10000, 20000, 100000))+
  scale_y_sqrt()+
  geom_vline(xintercept = quantile(lc$借款金额,probs = 0.95,na.rm = T),linetype = \'dashed\',color = \'red\')+
  geom_vline(xintercept = quantile(lc$借款金额,probs = 0.05,na.rm = T),linetype = \'dashed\',color = \'red\')+
  theme(axis.text.x = element_text(angle = 90, hjust = 1))

95%借款金额大多在700-8000元之间,说明大部分借款金额以小额借贷为主。

2.借款期限 

```{r echo=FALSE}
##2.借款期限
ggplot(aes(x=借款期限),data = lc)+
  geom_histogram(binwidth = 1)+
  scale_x_continuous(breaks = seq(1,24,1))
```

结论:借款期限选择6和12个月的人多,说明借款以短期借贷为主。 

3.借款利率

```{r echo=FALSE}
##3.借款利率
summary(lc$借款利率)
ggplot(aes(x=借款利率),data = lc)+
  geom_histogram(binwidth = 1)+
  scale_x_continuous(breaks = seq(6,24,1))
```

借款利率大多在20%与22%。

4.借款成功日期 

```{r echo=FALSE, Univariate_Plots}
##4.借款成功日期
lc_month <- format(as.Date(lc$借款成功日期), "%m")
lc_day <- format(as.Date(lc$借款成功日期), "%d")
lc_year <- format(as.Date(lc$借款成功日期), "%Y")
year <- ggplot(aes(lc_year),data = lc)+geom_bar()
month <- ggplot(aes(lc_month),data = lc)+geom_bar()
day <- ggplot(aes(lc_day),data = lc)+geom_bar()
grid.arrange(month,day,year)
```

借款成功日期在2016年的1、10、11、12月比较多。 

5.初始评级 

```{r echo=FALSE}
##5.初始评级
lc$初始评级 <- factor(lc$初始评级,levels=c(\'F\',\'E\',\'D\',\'C\',\'B\',\'A\'),ordered=T)
summary(lc$初始评级)
ggplot(aes(x=初始评级),data = lc)+geom_bar()
```

借款人初始评级C和D的人数最多

6.借款类型

```{r echo=FALSE}
##6.借款类型
summary(lc$借款类型)
ggplot(aes(x=借款类型),data = lc)+geom_bar()
```

APP闪电 普通 其他多,电商最少。

7.年龄

```{r echo=FALSE}
##7.年龄
summary(lc$年龄)
ggplot(aes(x=年龄),data = lc)+
  geom_histogram(binwidth = 1)+
  scale_x_continuous(breaks = seq(17,56,1))+
  geom_vline(xintercept = quantile(lc$年龄,probs = 0.95,na.rm = T),linetype = \'dashed\',color = \'red\')+
  geom_vline(xintercept = quantile(lc$年龄,probs = 0.05,na.rm = T),linetype = \'dashed\',color = \'red\')+
  theme(axis.text.x = element_text(angle = 90, hjust = 1))
```

95%的借款人年龄在21岁和43岁之间,说明借款人以青壮年为主。

8.性别

```{r echo=FALSE}
##8.性别
summary(lc$性别)
ggplot(aes(x=性别),data = lc)+geom_bar()
```

借款人性别男性多于女性,大约为其两倍。说明男性比女性更需要钱。

9.认证

```{r echo=FALSE}
##9.认证
lc_phone_cret <- ggplot(aes(x=手机认证),data=lc)+geom_bar()
lc_id_cret <- ggplot(aes(x=户口认证),data=lc)+geom_bar()
lc_video_cret <- ggplot(aes(x=视频认证),data=lc)+geom_bar()
lc_dipoma_cret <- ggplot(aes(x=学历认证),data=lc)+geom_bar()
lc_card_cret <- ggplot(aes(x=征信认证),data=lc)+geom_bar()
lc_shop_cret <- ggplot(aes(x=淘宝认证),data=lc)+geom_bar()
grid.arrange(lc_phone_cret,lc_id_cret,lc_video_cret,lc_dipoma_cret,lc_card_cret,lc_shop_cret)
```

学历认证和手机认证成功认证的多。

10.历史成功借款次数

```{r echo=FALSE}
##10.历史成功借款次数
summary(lc$历史成功借款次数)
ggplot(aes(x=历史成功借款次数),data=lc)+
  geom_histogram(binwidth = 1)+
  coord_cartesian(xlim = c(0,40))+
  scale_x_continuous(breaks = seq(0,40,1))+
  scale_y_sqrt()+
  geom_vline(xintercept = quantile(lc$历史成功借款次数,probs = 0.95,na.rm = T),
             linetype = \'dashed\',color = \'red\')

```

95%借款次数在7或7以下。说明借款人比较理性。

11.历史逾期还款期数

```{r echo=FALSE}
##11.历史逾期还款期数
summary(lc$历史逾期还款期数)
ggplot(aes(x=历史逾期还款期数),data = lc)+
  geom_histogram(binwidth = 1)+
  coord_cartesian(xlim = c(0,16))+
  scale_x_continuous(breaks = seq(1,16,1))+
  scale_y_sqrt()+
  geom_vline(xintercept = quantile(lc$历史逾期还款期数,probs = 0.95,na.rm = T),linetype = \'dashed\',color = \'red\')
 

```

95%的人逾期次数在2以下。说明借款人比较理性,根据自己能力还款。

单变量分析

你的数据集结构是什么?

数据集中有328553个数据,具有22种变量。
其他观察:
1.95%借款金额大多在700-8000元之间,说明大部分借款金额以小额借贷为主。
2.借款期限选择6和12个月的人多,说明借款以短期借贷为主。
3.借款利率大多在20%与22%。
4.借款成功日期在2016年的1、10、11、12月比较多。
5.借款人初始评级C和D的人数最多。
6.APP闪电 普通 其他多,电商最少。
7.95%的借款人年龄在21岁和43岁之间,说明借款人以青壮年为主。
8.借款人性别男性多于女性,大约为其两倍。说明男性比女性更需要钱。
9.学历认证和手机认证成功认证的多。
10.95%借款次数在7或7以下。
11.95%的人逾期次数在2以下。说明借款人比较理性,根据自己能力还款。

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

数据集中的主要特征是借款利率和借款金额。我想确定哪些功能影响贷款利率。

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

借款金额 初始评级 借款类型 是否首标 年龄 历史成功借款金额可以帮助我探索兴趣特点

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

没有

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

对借款日期进行了提取,三个变量绘制三幅图更清晰。

双变量绘图选择

1.初始评级与借款利率

```{r echo=FALSE}
ggplot(aes(x=初始评级,y=借款利率),data=lc)+
  geom_boxplot()+
  scale_y_continuous(breaks = seq(15,25,1))

```

初始评级越高,贷款利率越低。呈负相关关系。

2.借款类型与借款利率

```{r echo=FALSE}
ggplot(aes(x=借款类型,y=借款利率),data=lc)+
  geom_boxplot()
```

电商的借款利率最低,可能和电商的初始评级有关。

3.历史成功借款金额与借款利率

```{r echo=FALSE}
ggplot(aes(x=历史成功借款金额,y=借款利率),data = lc)+
  geom_point(alpha = 1/10)+
  scale_x_log10()+
  scale_y_log10()+
  geom_smooth(method = lm)
cor.test(lc$历史成功借款金额,lc$借款利率,method = \'pearson\')
```

历史成功借款金额越多,借款利率越少 ,呈负相关, 相关性为-0.15,说明历史成功借款金额与借款利率没多大关系。

4.年龄阶段与借款利率

```{r echo=FALSE}
lc$年龄阶段 <- cut(lc$年龄,breaks = c(17,20,25,30,35,40,45,50,56))
ggplot(aes(x = 年龄阶段,y = 借款利率),data=subset(lc,!is.na(lc$年龄阶段)))+
  geom_boxplot()
```

借款利率和年龄没关系

5.年龄阶段与借款金额

```{r echo=FALSE}
lc$年龄阶段 <- cut(lc$年龄,breaks = c(17,20,25,30,35,40,45,50,56))
ggplot(aes(x=年龄阶段,y=借款金额),data=subset(lc,!is.na(lc$年龄阶段)))+
  geom_boxplot()+
  scale_y_log10()

```

在17到30岁之间借款金额逐渐升高,之后金额不变。

6.历史成功借款金额与借款金额

```{r echo=FALSE}
ggplot(aes(x=历史成功借款金额,y=借款金额),data=lc)+
  geom_point(alpha=1/20,position = \'jitter\')+
  scale_x_log10()+
  scale_y_log10()+
  geom_smooth()
cor.test(lc$历史成功借款金额,lc$借款金额,method = \'pearson\')
```

历史还款金额愈多,借款金额越多,在借款金额为1万的时候增长幅度变高,呈正相关,相关系数为0.518,说明历史成功借款金额与借款金额有一定关系。

双变量分析

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

1.初始评级越高,贷款利率越低
2.电商的借款利率最低
3.历史成功借款金额越多,借款利率越少
4.借款利率和年龄没关系
5.在17到30岁之间借款金额逐渐升高,之后金额不变
6.历史还款金额愈多,借款金额越多,在借款金额为1万的时候增长幅度变高。
区别在于经过了单变量的筛选。

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

贷款利率和贷款类型 初始评级 借款金额相关。

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

初始评级和贷款利率

多变量绘图选择

```{r echo=FALSE}
ggplot(aes(x=借款利率,y=借款金额,color=借款类型),data=lc)+
  geom_point(alpha=0.8,size =1,position = \'jitter\')+
  scale_color_brewer(type = \'div\')+
  theme_dark()+
  scale_x_continuous()+
  scale_y_log10()

```

结论:APP闪电利率高,借款数额小,电商利率低借款数额大,普通介于电商和APP闪电之间.

1.借款利率,借款金额 初始评级

```{r echo=FALSE}
ggplot(aes(x=借款利率,y=借款金额,color=初始评级),data=lc)+
  geom_point(size =1,position = \'jitter\')+
  scale_color_brewer(type = \'div\')+
  theme_dark()+
  scale_x_continuous()+
  scale_y_log10()
```

结论:初始评级越好,贷款利率越低,借款金额越大。

2.借款利率 金额 期限

```{r echo=FALSE}
ggplot(aes(x=借款利率,y=借款金额,color=借款期限),data=lc)+
  geom_point(alpha = 1/2)+
  theme_dark()+
  scale_y_log10()
```

结论:借款期限越长,借款利率越高,借款额度大且期限短,利率低。

1.创建线性模型 

```{r echo=FALSE}
m1 <- lm(I(借款利率)~I(初始评级),data=lc)
m2 <- update(m1,~ . + 借款金额)
m3 <- update(m2,~ . + 借款类型)
m4 <- update(m3,~ . + 借款期限)
mtable(m1,m2,m3,m4)
```

Calls:
m1: lm(formula = I(借款利率) ~ I(初始评级), data = lc)
m2: lm(formula = I(借款利率) ~ I(初始评级) + 借款金额, data = lc)
m3: lm(formula = I(借款利率) ~ I(初始评级) + 借款金额 + 借款类型,
data = lc)
m4: lm(formula = I(借款利率) ~ I(初始评级) + 借款金额 + 借款类型 +
借款期限, data = lc)

==========================================================================================
m1 m2 m3 m4
------------------------------------------------------------------------------------------
(Intercept) 20.025*** 20.087*** 20.104*** 19.750***
(0.004) (0.004) (0.005) (0.007)
I(初始评级): .L -5.128*** -5.087*** -5.102*** -5.038***
(0.014) (0.014) (0.014) (0.014)
I(初始评级): .Q -2.324*** -2.322*** -2.337*** -2.315***
(0.013) (0.013) (0.013) (0.013)
I(初始评级): .C 1.128*** 1.115*** 1.105*** 1.054***
(0.010) (0.010) (0.010) (0.010)
I(初始评级): ^4 -0.258*** -0.280*** -0.284*** -0.287***
(0.006) (0.006) (0.006) (0.006)
I(初始评级): ^5 0.003 -0.009* 0.006 0.041***
(0.004) (0.004) (0.004) (0.004)
借款金额 -0.000*** -0.000*** -0.000***
(0.000) (0.000) (0.000)
借款类型: 电商/APP闪电 -2.023*** -1.837***
(0.031) (0.031)
借款类型: 普通/APP闪电 -0.018*** -0.021***
(0.004) (0.004)
借款类型: 其他/APP闪电 -0.114*** -0.109***
(0.004) (0.004)
借款期限 0.036***
(0.001)
------------------------------------------------------------------------------------------
R-squared 0.771 0.778 0.782 0.784
adj. R-squared 0.771 0.778 0.782 0.784
sigma 0.848 0.835 0.828 0.824
F 221655.696 192164.030 130698.457 119322.294
p 0.000 0.000 0.000 0.000
Log-likelihood -411847.887 -406814.070 -404249.218 -402410.223
Deviance 236007.101 228884.966 225339.133 222830.640
AIC 823709.775 813644.139 808520.435 804844.447
BIC 823784.692 813729.759 808638.162 804972.876
N 328553 328553 328553 328553
==========================================================================================

结论:贷款利率和借款类型 借款期限联系最为紧密

多变量分析

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

借款利率与初始评级 借款金额 借款类型 借款期限的关系。

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

借款额度大,借款期限短,利率低

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

是的,我创建了一个线性模型,从借款利率和初始评级开始。

------

# 定稿图与总结

### 绘图一

```{r echo=FALSE}
summary(lc$借款利率)
ggplot(aes(x=借款利率),data = lc)+
  geom_histogram(binwidth = 1)+
  scale_x_continuous(breaks = seq(6,24,1))+
  ggtitle(111, subtitle = NULL)
```

### 描述一

借款利率主要在16-24之间,总体利率平稳。

### 绘图二

```{r echo=FALSE}
ggplot(aes(x=初始评级,y=借款利率),data=lc)+
  geom_boxplot()+
  scale_y_continuous(breaks = seq(15,25,1))+
  ggtitle(222, subtitle = NULL)
  
```

## 描述二

初始评级越高,贷款利率越低,呈负相关。

### 绘图三

```{r echo=FALSE}
ggplot(aes(x=借款利率,y=借款金额,color=初始评级),data=lc)+
  geom_point(size =1,position = \'jitter\')+
  scale_color_brewer(type = \'div\')+
  theme_dark()+
  scale_x_continuous()+
  scale_y_log10()+
  ggtitle(333, subtitle = NULL)
```

### 描述三

结论:初始评级越好,贷款利率越低,借款金额越大,初始评级和贷款利率呈负相关,同借款金额呈正相关。
------

# 反思
拍拍贷数据集包含21个变量中328553个数据的信息。我通过了解数据集中的各个变量开始,然后在继续对情节进行观察时探究了有趣的问题和线索。最后,我研究了许多变量的贷款利率,并创建了一个预测贷款利率的线性模型。
说明贷款利率和借款类型 借款期限之间存在着明显的趋势,以后我会加入贷款是否是首标,作为考虑影响贷款利率的因素。

以上是关于利用R分析拍拍贷数据的主要内容,如果未能解决你的问题,请参考以下文章

祝贺富爸爸队的投资分析作品成功进入拍拍贷魔镜杯复赛阶段

拍拍贷消息中间件的架构演进

直击拍拍贷高效可视化集成测试平台

第四届拍拍贷魔镜杯冠军方案分享

上海拍拍贷:接口测试工程师 薪资15-25k

基于LendingClub数据的金融现金贷用户数据分析和用户画像(附python代码)