1. 程式人生 > >利用R分析拍拍貸數據

利用R分析拍拍貸數據

探索 col bsp pos 註意 繪圖 2016年 square spl

拍拍貸數據集分析

```{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分析拍拍貸數據