利用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分析拍拍贷数据的主要内容,如果未能解决你的问题,请参考以下文章