數據分析 - 美國金融科技公司Prosper的風險評分分析
今年Reinhard Hsu覺得最有意思的事情,是參加了拍拍貸第二屆魔鏡杯互聯網金融數據應用大賽。通過“富爸爸隊”,認識了一群小伙伴,帶領大家成功進入到復賽階段,並打造了復賽階段用戶評分最高的分析類產品。詳見《祝賀富爸爸隊的投資分析作品成功進入拍拍貸魔鏡杯復賽階段》。
Prosper是美國的一家金融科技公司,Reinhard Hsu在進入金融科技行業前就已經知道該公司,因為名字與Reinhard Hsu之前的老東家非常相似,以至於Tableau的原廠顧問在一開始以為我的老東家與他的老客戶Prosper是同一家公司。
這次Reinhard Hsu使用R語言對Prosper公開數據集的分析,看看Prosper風險評分的影響因素都有哪些。
主要指標的統計描述
## 'data.frame': 84853 obs. of 14 variables:
## $ CreditGrade : Factor w/ 7 levels "AA","A","B","C",..: 2 2 5 3 6 4 1 1 4 3 ...
## $ Term : int 36 36 36 60 36 36 36 36 60 36 ...
## $ BorrowerAPR : num 0.12 0.125 0.246 0.154 0.31 ...
## $ EmploymentStatus : Factor w/ 7 levels "Employed","Full-time",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ EmploymentStatusDuration : int 44 113 44 82 172 103 269 269 300 1 ...
## $ InquiriesLast6Months : int 3 0 1 0 0 3 1 1 1 1 ...
## $ BankcardUtilization : num 0.21 0.04 0.81 0.39 0.72 0.13 0.11 0.11 0.51 0.7 ...
## $ DebtToIncomeRatio : num 0.18 0.15 0.26 0.36 0.27 0.24 0.25 0.25 0.12 0.18 ...
## $ ProsperPaymentsLessThanOneMonthLate: int NA NA 0 NA NA NA NA NA NA NA ...
## $ ProsperPaymentsOneMonthPlusLate : int NA NA 0 NA NA NA NA NA NA NA ...
## $ LoanOriginalAmount : int 10000 10000 15000 15000 3000 10000 10000 10000 13500 4000 ...
## $ ProsperScore : num 7 9 4 10 2 4 9 11 7 4 ...
## $ ListingCreationDateInHour : num 8.47 11.03 18.63 8.43 9.87 ...
## $ CreditScoreRangeMean : num 690 810 690 750 690 ...
## CreditGrade Term BorrowerAPR EmploymentStatus
## AA: 5372 Min. :12.00 Min. :0.04583 Employed :67310
## A :14551 1st Qu.:36.00 1st Qu.:0.16328 Full-time : 7927
## B :15581 Median :36.00 Median :0.21945 Not employed : 649
## C :18345 Mean :42.49 Mean :0.22666 Other : 3806
## D :14274 3rd Qu.:60.00 3rd Qu.:0.29254 Part-time : 256
## E : 9795 Max. :60.00 Max. :0.42395 Retired : 367
## HR: 6935 Self-employed: 4538
## EmploymentStatusDuration InquiriesLast6Months BankcardUtilization
## Min. : 0.0 Min. : 0.0000 Min. :0.0000
## 1st Qu.: 30.0 1st Qu.: 0.0000 1st Qu.:0.3300
## Median : 74.0 Median : 0.0000 Median :0.6000
## Mean :103.1 Mean : 0.9646 Mean :0.5642
## 3rd Qu.:148.0 3rd Qu.: 1.0000 3rd Qu.:0.8300
## Max. :755.0 Max. :27.0000 Max. :2.5000
## NA's :19
## DebtToIncomeRatio ProsperPaymentsLessThanOneMonthLate
## Min. : 0.000 Min. : 0.00
## 1st Qu.: 0.150 1st Qu.: 0.00
## Median : 0.220 Median : 0.00
## Mean : 0.259 Mean : 0.66
## 3rd Qu.: 0.320 3rd Qu.: 0.00
## Max. :10.010 Max. :42.00
## NA's :7296 NA's :65056
## ProsperPaymentsOneMonthPlusLate LoanOriginalAmount ProsperScore
## Min. : 0.00 Min. : 1000 Min. : 1.00
## 1st Qu.: 0.00 1st Qu.: 4000 1st Qu.: 4.00
## Median : 0.00 Median : 7500 Median : 6.00
## Mean : 0.05 Mean : 9083 Mean : 5.95
## 3rd Qu.: 0.00 3rd Qu.:13500 3rd Qu.: 8.00
## Max. :21.00 Max. :35000 Max. :11.00
## NA's :65056
## ListingCreationDateInHour CreditScoreRangeMean
## Min. : 0.00 Min. :609.5
## 1st Qu.: 9.10 1st Qu.:669.5
## Median :12.60 Median :709.5
## Mean :12.79 Mean :708.9
## 3rd Qu.:16.52 3rd Qu.:729.5
## Max. :23.98 Max. :889.5
##
單變量
借款金額分布
我們看到Prosper平台的借款金額主要以15000以下的小額借款為主。其中幾個數額的借款人數很多,4000元、10000元、15000元。
風險評級
我們看到風險評級的分布中,中等風險的數量最多,高風險和低風險的數量較少。
風險評分
我們看到風險評分的4分、6分、8分的數量最多。高分和低分的較少。
借款期數
我們看到Prosper的借款期數主要以長期為主。其中3年期最多,其次是5年期。我們知道一般而言,借款人信用越好,能借到的期數越長,這說明Prosper的借款人的信用看起來還不錯。
借款人征信數據的信用評分上下限的均值
我們看到這個分布呈右偏分布,有一些借款人的征信信用評分相對比較高。
借款人發起借款的時間段
我們看到絕大多數實在6點到21點之間進行借款的,也有少數在半夜進行借款。
借款人當前職業持續月數
我們看到這是一個右偏倚數據,在右邊有着長長的尾巴。少數人連續從事一份職業能夠達到50年之久。數量最多的是1年、2年和3年,其次是不到1年工作狀態就發生變化的。
信用卡已用額度占比
這個數據居然能夠超過100%,我覺得有點不可思議。后面我會將異常值過濾掉。大部分人的已用額度在30%到80%之間,中位數在60%左右。
負債收入比
我們看到大多數人的負債收入比在17%到32%之間,應該還算是不錯的一個水平。
借款金額直方圖按照借款期數進行分面
我們看到,Prosper的借款期數主要以3年期為主,其次是5年期的。而1年期的借款很少。借款金額主要以4000、10000、15000為主,大部分金額較低。
單變量分析
我們的Prosper數據集有81個特征,超過11萬個觀察對象。經過清晰和轉換后,我的數據集擁有14個特征,和84853個觀察對象。
在本次分析中,我最感興趣的特征是Prosper對每個散標的風險評分ProsperScore。
Prosper數據集中的特征很豐富,這里我挑選了最感興趣的14個特征,它們分別是:
特征 | 描述 |
---|---|
CreditGrade | Prosper對散標的風險評級 |
Term | 借款的期數 |
BorrowerAPR | 借款年化利息 |
EmploymentStatus | 借款人的工作狀態 |
EmploymentStatusDuration | 借款人當前工作狀態持續的月數 |
CreditScoreRangeMean | 借款人征信數據中的信用評分范圍上下限的均值 |
InquiriesLast6Months | 前6個月借款人征信數據被查詢的次數 |
BankcardUtilization | 借款人信用卡已用額度占比 |
DebtToIncomeRatio | 借款人負債收入比 |
ProsperPaymentsLessThanOneMonthLate | 借款人在Prosper逾期還款在一個月內的次數 |
ProsperPaymentsOneMonthPlusLate | 借款人在Prosper逾期還款在一個月以上的次數 |
LoanOriginalAmount | 借款人的借款金額 |
ListingCreationDateInHour | 借款人發起借款請求的時間段(小時) |
ProsperScore | Prosper的風險評分 |
在拍拍貸魔鏡大數據風控系統之父顧鳴博士的一次分享中,我了解到借款人發起借款請求的時間段與散標的風險有一些關系。他給出的理由是,如果一個人在半夜借錢,從概率上講他很可能是沒有工作的。
根據這個提示,我從ListingCreationDate中取出小時,創建了ListingCreationDateInHour特征。
在對特征調查的過程中,我發現借款人征信數據中的信用評分上下線的均值、借款人發起借款請求的時間段,這兩個基本呈正態分布。
Prosper風險評分
因為Prosper風險評分字段在2009年后才加入,我會將之前沒有風險評分的數據過濾掉。
在對Prosper風險評級特征進行可視化時,我發現並未按照風險大小的順序進行排序。我又將其轉換為有序因子。
雙變量
風險評級和風險評分
##
## Pearson's product-moment correlation
##
## data: as.numeric(as.factor(prosper$CreditGrade)) and prosper$ProsperScore
## t = -289.74, df = 84851, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.7085876 -0.7018231
## sample estimates:
## cor
## -0.7052214
散標的風險評分給出的分數越高,風險評級的風險越低。這兩個特征的皮爾遜相關系數達到了-0.7052,說明這兩個特征之間的關系很有意義。很有可能風險評級是根據風險評分去定的。
風險評分和借款年化利率
##
## Pearson's product-moment correlation
##
## data: prosper$ProsperScore and log(prosper$BorrowerAPR)
## t = -277.2, df = 84851, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.6928780 -0.6858159
## sample estimates:
## cor
## -0.6893633
散標的風險評分給出的分數越高,借款年化利息越低,這兩個特征的皮爾遜相關系數是-0.6894,說明這兩個特征之間有一定的關系。
風險評級和借款年化利率
##
## Pearson's product-moment correlation
##
## data: as.numeric(as.factor(prosper$CreditGrade)) and log(prosper$BorrowerAPR)
## t = 808.67, df = 84851, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.9400468 0.9415923
## sample estimates:
## cor
## 0.9408244
風險評級給出的風險越高,借款年化利率越高。這兩個特征的皮爾遜相關系數達到了0.9408,說明這兩個特征之間的關系很有意義。很有可能是因為年化利息是根據風險評級而定的。
風險評分和負債收入比
##
## Pearson's product-moment correlation
##
## data: ProsperScore and sqrt(DebtToIncomeRatio)
## t = -80.585, df = 75261, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.2883991 -0.2752455
## sample estimates:
## cor
## -0.2818355
借款人負債收入比越高,一般風險評分給出的分數越低。這兩個特征的皮爾遜相關系數只有-0.2818,沒有什么實質性的關系。
風險評分和信用卡已用額度占比
##
## Pearson's product-moment correlation
##
## data: ProsperScore and BankcardUtilization
## t = -73.435, df = 84842, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.2507807 -0.2381273
## sample estimates:
## cor
## -0.2444644
借款人信用卡已用額度占比越高,一般風險評分給出的分數越低。但是這兩個特征的皮爾遜相關系數只有-0.2445,沒有什么實質性的關系。
風險評分和征信數據信用評分范圍均值
##
## Pearson's product-moment correlation
##
## data: prosper$ProsperScore and prosper$CreditScoreRangeMean
## t = 115.87, df = 84851, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.3637793 0.3753979
## sample estimates:
## cor
## 0.369603
借款人征信數據中的信用評分范圍上下限均值越高,一般風險評分給出的分數越高。這兩個特征的皮爾遜相關系數達是0.3696,說明這兩個特征之間的關系有意義,但是很小。
風險評分和借款金額
##
## Pearson's product-moment correlation
##
## data: prosper$ProsperScore and prosper$LoanOriginalAmount
## t = 80.475, df = 84851, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.2600308 0.2725335
## sample estimates:
## cor
## 0.2662933
一般風險評分給出的評分越高,借款人的借款金額越高。這兩個特征的皮爾遜相關系數是-0.2663,說明這兩個特征之間沒有什么實質性關系。
風險評分和最近職業持續月數
##
## Pearson's product-moment correlation
##
## data: ProsperScore and EmploymentStatusDuration
## t = -3.5037, df = 83736, p-value = 0.000459
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.018878712 -0.005334483
## sample estimates:
## cor
## -0.01210715
風險評分在10分以上的借款人當前職業狀態持續月數的中位數,比其它分值的要稍微高一點點。這兩個特征的皮爾遜相關系數是-0.0121,說明這兩個特征之間沒有什么實質性關系。
風險評分和最近6個月借款人征信數據被查詢次數
##
## Pearson's product-moment correlation
##
## data: prosper$ProsperScore and sqrt(prosper$InquiriesLast6Months)
## t = -95.58, df = 84851, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.3178320 -0.3056831
## sample estimates:
## cor
## -0.3117703
最近6個月借款人征信數據被查詢次數越多,一般風險評分給出的分數越低。這兩個特征的皮爾遜相關系數達是-0.3118,說明這兩個特征之間的關系有意義,但是很小。
我們看到風險評分在6分及以上的,借款人近6個月征信數據被查詢次數大多是0次到1次,中位數是0次。評分在3到5分的,查詢次數大多是0次到2次,中位數是1次。評分是1分和2分的,查詢次數明顯多一點,特別是1分的,查詢次數大多是1次到5次,中位數達到了3次。
時段和逾期超過一個月的次數的均值
##
## Pearson's product-moment correlation
##
## data: prosper.group_by_hour_late$ListingCreationDateInHour_24 and prosper.group_by_hour_late$ProsperPaymentsOneMonthPlusLate_Mean
## t = 2.6215, df = 22, p-value = 0.01558
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.1051864 0.7447116
## sample estimates:
## cor
## 0.4878814
通過分析借款人發起借款請求的時間段,與借款人在Prosper逾期還款在一個月以上的次數的均值,我們看到在23點到0點之間發起借款的人,逾期還款一個月以上的次數的均值要高一些。這兩個特征的皮爾遜相關系數是0.4879,說明兩個特征之間的關系有一定意義。
時段和前6個月征信數據被查詢的次數的均值
##
## Pearson's product-moment correlation
##
## data: prosper.group_by_hour_bank$ListingCreationDateInHour_27 and prosper.group_by_hour_bank$InquiriesLast6Months_Mean
## t = 4.476, df = 22, p-value = 0.0001886
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.3977499 0.8555152
## sample estimates:
## cor
## 0.6903752
通過分析借款人發起借款請求的時間段,與前6個月借款人征信數據被查詢的次數的均值,我們看到在20點到2點之間發起借款的人,前6個月借款人征信數據被查詢的次數的均值非常高。這兩個特征的皮爾遜相關系數是0.6904,說明兩個特征之間的關系有一定意義。
我們在辦信用卡、貸款、逾期還款時,會查詢我們的征信數據。一般我們認為,征信數據近期被查詢的次數越高,這個人可能越缺錢,逾期的風險也越大。
時段和征信信用評分范圍的均值
##
## Pearson's product-moment correlation
##
## data: prosper.group_by_hour_bank$ListingCreationDateInHour_27 and prosper.group_by_hour_bank$CreditScoreRange_Mean
## t = -1.9706, df = 22, p-value = 0.06149
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.68387345 0.01904139
## sample estimates:
## cor
## -0.3873305
通過分析借款人發起借款請求的時間段,與借款人征信數據中的信用評分范圍下限的均值,我們看到在20點到2點之間發起借款的人,借款人征信數據中的信用評分范圍下限的均值非常低。這兩個特征的皮爾遜相關系數是-0.3873,說明兩個特征之間的關系有一定意義。
通過ggpair函數,我們生成了變量關系矩陣圖。我們最感興趣的是ProsperScore風險評分,我們看到它與借款年華利率之間的關系有一定意義,與過去6個月借款人征信數據被查詢的次數之間的關系有一定意義。與信用卡已用額度占比,和借款金額之間沒有什么實質性的關系。
雙變量分析
通過同時對兩個特征的分析,我們看到風險評分特征,與其它很多特征有相關性。
我觀察了借款人發起借款請求的時段,與逾期超過一個月的次數的均值、前6個月征信數據被查詢的次數的均值、征信信用評分范圍的均值之間的關系,發現半夜發起借款申請的借款人,缺失風險更大。
發現了借款年化利息與風險評級之間、風險評級與風險評分之間有強相關性。這與我們的業務知識相一致,我們都知道借款年化利息是根據風險評級的高低定的,而風險評級又是根據風險評分定的。
多變量
##
## Calls:
## m1: lm(formula = I(ProsperScore) ~ I(InquiriesLast6Months), data = prosper)
## m2: lm(formula = I(ProsperScore) ~ I(InquiriesLast6Months) + BankcardUtilization,
## data = prosper)
## m3: lm(formula = I(ProsperScore) ~ I(InquiriesLast6Months) + BankcardUtilization +
## CreditScoreRangeMean, data = prosper)
## m4: lm(formula = I(ProsperScore) ~ I(InquiriesLast6Months) + BankcardUtilization +
## CreditScoreRangeMean + DebtToIncomeRatio, data = prosper)
## m5: lm(formula = I(ProsperScore) ~ I(InquiriesLast6Months) + BankcardUtilization +
## CreditScoreRangeMean + DebtToIncomeRatio + ProsperPaymentsLessThanOneMonthLate,
## data = prosper)
##
## ==============================================================================================
## m1 m2 m3 m4 m5
## ----------------------------------------------------------------------------------------------
## (Intercept) 6.436*** 7.732*** -2.847*** -2.822*** -5.580***
## (0.009) (0.017) (0.131) (0.132) (0.269)
## I(InquiriesLast6Months) -0.504*** -0.556*** -0.494*** -0.519*** -0.541***
## (0.006) (0.005) (0.005) (0.005) (0.010)
## BankcardUtilization -2.208*** -1.203*** -1.199*** -0.782***
## (0.025) (0.027) (0.027) (0.057)
## CreditScoreRangeMean 0.014*** 0.015*** 0.019***
## (0.000) (0.000) (0.000)
## DebtToIncomeRatio -1.080*** -1.438***
## (0.023) (0.054)
## ProsperPaymentsLessThanOneMonthLate -0.036***
## (0.006)
## ----------------------------------------------------------------------------------------------
## R-squared 0.1 0.2 0.2 0.3 0.4
## adj. R-squared 0.1 0.2 0.2 0.3 0.4
## sigma 2.3 2.2 2.1 2.0 2.1
## F 8194.3 8426.6 8284.2 7122.6 2085.7
## p 0.0 0.0 0.0 0.0 0.0
## Log-likelihood -189940.7 -186165.3 -182953.0 -164587.3 -38518.0
## Deviance 437019.4 399811.4 370657.0 316533.1 80115.3
## AIC 379887.3 372338.7 365916.0 329186.5 77050.0
## BIC 379915.3 372376.1 365962.7 329242.1 77104.5
## N 84853 84853 84853 77557 17724
## ==============================================================================================
多變量分析
我們看到,征信數據的信用評分上下線均值越低,一般Prosper信用評級給出的風險也越高。
信用卡已用額度占比越低,一般Prosper信用評級給出的風險越低。但是我們注意到信用卡已用額度占比為0的話,也就是這個人沒刷信用卡就跑來借錢,Prosper信用評級認為風險很高。
我們知道風險評級是基於風險評分生成的,借款的年化利率又是根據風險評級定的,這兩個特征雖然都與風險評分有着較強的相關性,但是因為是先有的風險評分,再有的風險評級,最后才有的年化利率,所以無法使用這兩個特征去預測風險評分。
這里生成了模型,使用的都是與風險評分弱相關性的特征,最后模型的r平方系數是0.4,比較低,說明我這里特征可能沒有選好。
總結
逾期一個月以上的次數的均值與借款時間段
我們看到,正如拍拍貸魔鏡大數據風控系統之父顧鳴博士所說,半夜借錢的人,逾期的風險比較高。
特別是0點發起借款申請的人,逾期一個月以上的次數的均值,是其它時間段的2倍以上。
風險評分與信用卡已用額度占比
Prosper的風險評分居然與信用卡已用額度占比有相關性。我們看到已用額度占比的均值越高,風險評分越低。
有可能是因為已用額度占比高的借款人,供他們周轉的資金已經很少了,還款壓力較大,逾期的風險也更高。
借款期限與借款金額
借款期數如此之長,還是挺令我驚訝的。我們看到借款金額主要是15000元以內的小額借款,借款期數卻可以長達3年5年。
借款期數長一方面可能是因為,能夠通過Prosper審核的借款人都是信用較好的借款人,另一方面也有可能是因為美國那邊的信用體系更完善,Prosper能夠獲取到的用戶信用數據更多,美國人更重視信用,所以敢放得長一點。
相對而言,國內的P2P借款主要以短期為主。
反思
拍拍貸風控負責人曾在分享中提到,他們的風控系統是利用成百上千個特征去建模的,每個特征所占的權重很小,並且他們發現利用高度相關的特征訓練出來的模型效果並不好,需要利用大量弱相關的特征去做建模。
所以我覺得,我得到的模型r平方值只有0.4,一方面可能確實是因為我的特征沒有選好,另一方面可能真的是需要利用大量弱相關的特征,我用的特征太少了。
我們看到Prosper的風險評分與借款人的一些征信數據有一定相關性,我們可以試着再加入更多的征信數據,看能不能提升模型的效果。
另一方面我們在分析中看到借款發起申請的時段確實與風險有一定關系,但是在最終構建模型時卻沒有很好地利用上時段這個特征。
國內P2P平台還會利用借款人的住房公積金、社保、社交網絡、網購等數據對征信數據進行補充,來構建風控模型,預測風險,這部分數據Prosper的數據集里沒有提供,不知道國外P2P是不是僅僅依靠銀行征信數據就夠。