贷款投放的宗旨是了解客户
我们知道,一笔贷款主要通过收息或者收费的方式获取息、费收入,如果借款客户违约,放贷机构非但无法获得息费,更将面临本金的损失,而这部分损失是要更多的息费才能弥补的,也就是说如果无法将违约率控制在一定范围之内,放贷机构不仅“竹篮打水一场空”,而且还要“自我割肉”。
因此防范客户的违约风险是放贷机构的核心工作,具体的防范措施多样、复杂,各家放贷机构也多有自己的独门秘笈,其中通过分析以往贷款的贷后表现,从而设置相应的准入门槛、调整优化审批策略是一个基础又通用的方法。
本期“品玩SAS”以KAGGLE网站的贷款数据为例,通过以下三个维度探究贷款违约的相关性。
1.贷款违约情况分布及占比
2.本金金额、还款期限与违约的相关性
3.客户个人基本信息与违约的相关性
数据样本:2016年的贷款数据,还款方式为一次性还本付息,还款期限分为7天、15天、30天三种,共500名贷款客户,11个字段。
字段解释:
Loan_id:客户的唯一贷款编号
Loan_status:贷款状态,分为正常还款,违约结清,违约未结清
Principal:贷款金额
Terms:还款期限,分为7天、15天、30天
Effective_date:贷款发放日期
Due_date:贷款到期日(一次性还款)
Paid_off_time:客户偿还贷款的实际时间
Past_due_days:贷款逾期天数
Age:年龄
Education:教育程度
Gender:性别
1 贷款违约情况分布及占比
首先将数据导入SAS,生成loan数据集。
%let liulu = D:\sastest\liulu;
libname ll "&liulu." ;
data ll.loan;
%let _EFIERR_ =0;
infile "&liulu.\loan.csv" delimiter=',' MISSOVER DSD lrecl=32767 firstobs=2;
informat Loan_ID $32.00;
informat loan_status $32.00;
informat Principal best32.;
informat effective_date mmddyy10.;
informat due_date mmddyy10.;
informat paid_off_time $32.0;
informat education $32.00;
informat Gender $32.0;
format Loan_ID $32.00;
format loan_status $32.00;
format Principal best32.;
format effective_date yymmdd10.;
format due_date yymmdd10.;
format paid_off_time $32.0;
format education $32.00;
format Gender $32.0;
input
Loan_ID $
loan_status $
Principal
terms
effective_date
due_date
paid_off_time $
past_due_days
age
education $
Gender $
;
if _ERROR_thencall symputx('_EFIERR_',1);
run;
在信贷行业中,贷款的逾期天数有相应的表达方式。一般而言,正常还款被归类为M0,逾期1-30天为M1,31-60天为M2,61-90天为M3,90-120天为M4,121-150天为M5,151-180天为M6,大于180天以上的为M6+,目前我国监管要求各银行将逾期大于90天的贷款列为不良贷款,也就是M4+的为不良贷款。下面根据贷款状态,逾期天数将数据分类。
proc sql;
select loan_status as 贷款状态,count(loan_status) as 数量,
catt(round(count(loan_status)/(select count(*) from ll.loan ) *100,0.01),'%') as 占比
from ll.loan
group by 贷款状态
order by 占比 desc;
quit;
proc sql;
select case when past_due_days is null then'M0'
when past_due_days<=30 then'M1'
when past_due_days>30 and past_due_Days<=60 then 'M2'
when past_due_days>60 and past_due_days<=90 then 'M3' else 'M4'
end as 逾期阶段,
count(loan_id) as 数量,
catt(round(count(loan_id)/(select count(*) from ll.loan)*100,0.01),'%') as 占比
from ll.loan
group by 逾期阶段
order by 数量 desc;
quit;
贷款状态上,正常还款,违约,违约后结清的数量占比分别为60%,20%,20%,发生过违约的贷款高达40%,说明贷款审批不严或存在一定缺陷。
逾期阶段方面,贷款最大逾期天数在90天以内,M1、M2、M3分别占比19.8%、12.6%、7.6%,可以看出违约客户主要分布在M1、M2两个时间段(逾期60天内),并且M1-M3违约客户数递减,这说明通过后续的贷后管理,M1、M2的客户也会陆续还款。
当然,40%的违约占比确实太高了,为了降低违约占比,减少贷后管理成本,应在贷款审批阶段更加严格审核,以筛选掉高风险客户。
2 本金金额、还款期限与违约的相关性
proc sql;
select terms as 还款期限,
count(loan_id) as 数量,
count(case when loan_status in ('COLLECTION','COLLECTION_PAIDOFF') then loan_id end) as 违约数,
catt(round(count(case whenloan_status in ('COLLECTION','COLLECTION_PAIDOFF') then loan_id end)/count(*)*100,0.01),'%') as 违约率
from ll.loan
group by terms
order by 违约数 desc;
quit;
proc sql;
select principal as 贷款本金,
count(loan_id) as 数量,
count(case when loan_status in ('COLLECTION','COLLECTION_PAIDOFF') then loan_id end) as 违约数,
catt(round(count(case when loan_status in ('COLLECTION','COLLECTION_PAIDOFF') then loan_id end)/count(*)*100,0.01),'%') as 违约率
from ll.loan
group by principal
order by 违约率 desc;
quit;
本金金额、还款期限与违约的相关性情况如上图所示,还款期限分为30天、15天、7天三种,客户选择的贷款期限主要集中在30天和15天,违约率上选择30天贷款期限的客户违约率最高,为73.75%,接近一半的客户出现违约,其次为15天的违约率38.65%,选择7天的客户违约率最低,为4.76%。
贷款本金上,贷款1000元的客户最多,其违约率也最高,贷款本金为800元的客户数居第二位,违约率仅次于贷款1000元的客户。
总体上看,本金金额越大、还款期限越长的客户,其违约率越高。
3 客户个人基本信息与违约的相关性
3.1 性别分布
proc sql;
select gender as 性别,
count(loan_id) as 数量,
catt(round(count(loan_id)/500*100,0.01),'%') as 占比,
count(case when loan_status in ('COLLECTION','COLLECTION_PAIDOFF') then loan_id end) as 违约数,
catt(round(count(case when loan_status in ('COLLECTION','COLLECTION_PAIDOFF') then loan_id end)/count(*)*100,0.01),'%') as 违约率
from ll.loan
group by gender
order by 违约率 desc;
quit;
男性为贷款主力军,在500名贷款客户中占比84.6%,女性仅为15.4%,两者差异悬殊。而在违约率上男性有近四成的客户发生了违约,女性则有近三成客户发生违约,与贷款数量相比,男性、女性的贷款数量占比相差悬殊,贷款违约率则较为接近。
3.2 学历分布
proc sql;
select education as 学历,
count(loan_id) as 数量,
count(case when loan_status in ('COLLECTION','COLLECTION_PAIDOFF') then loan_id end) as 违约数,
catt(round(count(case when loan_status in ('COLLECTION','COLLECTION_PAIDOFF') then loan_id end)/count(*)*100,0.01),'%') as 违约率
from ll.loan
group by 学历
order by 违约率 desc;
quit;
贷款数量由高到低分别为学院、高中及以下、学士、硕士及以上。违约率上,高中及以下客户违约率最高,为41.15%,其次为学院、学士、硕士及以上客户。
一般而言,学历的高低与收入成正比,高学历群体无论是贷款数量还是违约率均低于低学历群体。
3.3 不同性别的学历分布
proc sql;
select gender as 性别,
education as 学历,
count(loan_id) as 数量,
count(case when loan_status in ('COLLECTION','COLLECTION_PAIDOFF') then loan_id end) as 违约数,
catt(round(count(case when loan_status in ('COLLECTION','COLLECTION_PAIDOFF') then loan_id end)/count(*)*100,0.01),'%') as 违约率
from ll.loan
group by 性别,学历
order by 违约数 desc;
quit;
前面我们得知,男性客户违约利率高、低学历客户违约率高,具体细分来看,男性各学历群体的违约率均高于女性,两性在不同学历的违约情况也满足高学历低违约率,低学历高违约率的特征。在贷款审批上可以适当限制低学历客户,尤其是男性的贷款通过率。
3.4 年龄分布
proc sql;
select case when age>=18andage<=25 then '18-25'
when age>25 and age<=39 then '26-39'
when age>=40 then '40+' end as 年龄阶段,
count(loan_id) as 数量,
catt(round(count(loan_id)/500*100,0.01),'%') as 占比,
count(case when loan_status in ('COLLECTION','COLLECTION_PAIDOFF') then loan_id end) as 违约数,
catt(round(count(case when loan_status in ('COLLECTION','COLLECTION_PAIDOFF') then loan_id end)/count(*)*100,0.01),'%') as 违约率
from ll.loan
group by 年龄阶段;
quit;
通常,18-25岁的人群多处在上学阶段,这部分人群没有稳定的经济收入,信用意识较为淡薄;26-39岁是发展事业、建立家庭的黄金期,这期间有稳定的工作收入,日常消费也较大,资金需求旺盛,收入与支出均呈现上升趋势;40往上人群,家庭、事业已基本稳定,有了一定的经济基础,对于资金的贷款需求降低。
从上图各年龄段的分布来看,满足我们上面讲的顺应不同人生阶段的资金需求,26-39岁人群的贷款数最多,其次为18-25、40+的人群。违约率上,“少不更事”的年轻人乐于消费,但信用观念尚不成熟,违约率最高,另两大群体违约率相仿。
4 总结
贷款审批策略的制定涉及到多个维度,上面的分析仅仅是其中的一小部分,就各个部分我们可以采取相应的加严措施,但贷款的发放并不只是为了降低违约率,而是在违约率可控的范围内尽可能多的获取收益。
就拿还款期限来说,客户的借款期限越长,其违约的可能性越大,但相应的利息收入也会越高,此外,实际信贷环境中多数客户倾向于更长的借款期限,因为这样每期的还款压力更小。
所以说当我们采取一项措施时,需要考量的是收益、风险与客户体验这三点,缺了哪一点,最后的结果可能都不是我们预想的那样。