不同年齡客戶的通過率和逾期率計算

違約分析,主流方法是通過邏輯回歸來做模型,調整關鍵的特徵,提升違約率預測的準確率。筆者這裡的數據,有價值的特徵太少,樣本不均衡問題突出,下面主要做做描述統計、探索性分析,尋找一些有意思的現象。

用pandas讀入數據,我們看到年齡特徵中有一些異常值和缺失值:

import pandas as pdndf = pd.read_csv("data.csv",encoding="gbk")nprint (df.shape)nprint(df[年齡].value_counts(ascending=True))n

奇怪的是,年齡也能夠錄入負數,還成功申請貸款,並結清了:

刪去年齡太大或太小的樣本,保留【18歲-60歲】:

df.rename(columns=lambda x:x.replace(年齡,Age), inplace=True)ndf.rename(columns=lambda x:x.replace(借款狀態,Status), inplace=True)ndf1=df[(df[Age]<=60) & (df[Age]>=18) ]n

下面有兩個分析思路:一是比較不同年齡的審批通過率,二是通過貸款中不同年齡的逾期率。

import numpy as npnimport matplotlib.pyplot as pltndf2=df1.copy()ndf2[Status]=df2[Status].replace("FAILED",0).replace("REPAYING",1).replace("CLOSED",1).replace("BADDEBT",1).replace("OVERDUE",1)nprint(df2[Status].value_counts())ntable2=pd.pivot_table(df2,index=["Age"],values=["Status"],aggfunc=[np.mean])ntable2.plot(kind=line,title=uStatus)nplt.show()n

用數據透視表,計算出每個年齡的審批通過率:

18歲的客戶,申請了105筆,通過了98筆,通過率93.3333%(98/105)。

結論:25歲左右客戶通過率最低。

再看,審批通過的客戶,逾期率與年齡的關係:

df3=df1.copy()ndf3=df3[(df3[Status] != "FAILED")]ndf3[Status]=df3[Status].replace("REPAYING",0).replace("CLOSED",0).replace("BADDEBT",1).replace("OVERDUE",1)ntable3=pd.pivot_table(df3,index=["Age"],values=["Status"],aggfunc=[len,np.sum,np.mean])nprint (table3.shape)nprint(table3)n

30歲的客戶,放款量25488筆,逾期量290筆,逾期率1.1378%(290/25488)

通過圖片能看的更清楚一些:

的確,30歲左右的客戶,逾期率最高

25歲以下和48歲以上的樣本量太少,有一些偶然因素。


推薦閱讀:

我的前半生丨3分鐘讀懂評分卡
鮮為人知的天葬
為什麼要搞錯行業分類

TAG:数据分析 | Python | 信贷 |