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