银行贷款客户拉新活动分析

1、案例背景

Thera Bank是一家拥有不断增长客户群的银行。这银行中大多数客户的存款规模都是不一样的。由于贷款业务的客户数量很少,所以银行希望有效地将存款用户转化为贷款用户以此扩大贷款业务量的基础,以带来更多的贷款业务,并在此过程中,通过贷款利息赚取更多。

因此,该银行去年为存款用户但未办理个人贷款业务的客户开展了一项推广活动来促使其办理个人贷款业务,有部分客户通过此活动已经办理了相关服务。这时的零售营销部门希望制定更好的策略去定位营销,以最小的预算提高成功率。该部门希望识别出更有可能购买贷款的潜在客户,提高转化的成功率,降低营销的费用。

#导入相关模块
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
#连接mysql
import pymysql
pymysql.install_as_MySQLdb()
from sqlalchemy import create_engine
engine=create_engine('mysql://用户名:密码@localhost:3306/数据库?charset=gbk')

2、数据处理

数据集共包含5000条记录,14个字段,对应字段含义如下:

*   ID - 客户
*   Age - 客户年龄
*   Experience - 客户工作经验
*   Income - 客户年收入(单位:千美元)
*   ZIPCode - 家庭地址邮政编码
*   Family - 客户的家庭规模
*   CCAvg - 每月信用卡消费额(单位:千美元)
*   Education - 教育水平 (1: 本科; 2: 研究生; 3: 高级)
*   Mortgage - 房屋抵押价值(如有)(单位:千美元)
*   Personal Loan - 此客户是否接受上一次活动中提供的个人贷款?(1:是 0:否)
*   Securities Account - 是否有证券账户?(1:是 0:否)
*   CD Account - 是否有存款证明(CD)帐户吗(1:是 0:否)
*   Online - 是否开通网上银行?(1:是 0:否)
*   CreditCard - 是否有信用卡?(1:是 0:否)
  • 查看数据
Bank_Personal_Loan.head()
  • 观察数据整体情况
Bank_Personal_Loan.info()

数据并无缺失值,但需要对字段类型做出更改。

  • 更改字段类型
Bank_Personal_Loan['Age']=Bank_Personal_Loan['Age'].astype('int')
Bank_Personal_Loan['Experience']=Bank_Personal_Loan['Experience'].astype('int')
Bank_Personal_Loan['Family']=Bank_Personal_Loan['Family'].astype('int')
Bank_Personal_Loan['Education']=Bank_Personal_Loan['Education'].astype('int')
Bank_Personal_Loan['ZIP Code']=Bank_Personal_Loan['ZIP Code'].astype('int')
Bank_Personal_Loan['Personal Loan']=Bank_Personal_Loan['Personal Loan'].astype('int')
Bank_Personal_Loan['CD Account']=Bank_Personal_Loan['CD Account'].astype('int')
Bank_Personal_Loan['Securities Account']=Bank_Personal_Loan['Securities Account'].astype('int')
Bank_Personal_Loan['Online']=Bank_Personal_Loan['Online'].astype('int')
Bank_Personal_Loan['CreditCard']=Bank_Personal_Loan['CreditCard'].astype('int')
Bank_Personal_Loan['Income']=Bank_Personal_Loan['Income'].astype('float')
Bank_Personal_Loan['CCAvg']=Bank_Personal_Loan['CCAvg'].astype('float')
Bank_Personal_Loan['Mortgage']=Bank_Personal_Loan['Mortgage'].astype('float')
  • 观察数据描述性信息
Bank_Personal_Loan.describe()
  • 发现Experience出现负值,有异常数据,考虑将Experience的负值改为0
Bank_Personal_Loan.loc[Bank_Personal_Loan['Experience']< 0,'Experience']=0
Bank_Personal_Loan['Experience'].describe()
count    5000.000000
mean       20.119600
std        11.440484
min         0.000000
25%        10.000000
50%        20.000000
75%        30.000000
max        43.000000
Name: Experience, dtype: float64

3、数据分析

整体思路:
一、去年银行举办的推广活动的效果如何?
二、什么类型的存款用户成为银行贷款业务的潜在客户可能性更大?
三、随着客户年收入的增长,贷款情况是如何变化?
四、随着客户年龄的增长,贷款情况如何变化?

  • 活动推广结果分析
Bank_Personal_Loan.groupby(['Personal Loan']).size()
out:
Personal Loan
0    4520
1     480
dtype: int64

通过这次推广活动以后,5000名客户中,有480个客户开通了个人贷款业务。由于该活动是针对未办理个人贷款业务的客户开展的,对比从以往数据来看,个人贷款业务增长了近10%,说明此次推广活动的效果还是不错的。

  • 探索其他变量与Personal Loan变量的关系
#fig代表绘图窗口(Figure);axis代表这个绘图窗口上的坐标系(axis)
fig,axis=plt.subplots(figsize=(12,12))
#绘制热力图,颜色越深,相关性越强
ax=sns.heatmap(Bank_Personal_Loan.corr(),annot=True,cmap="YlGnBu")
#bottom代表y轴下限,top表示y轴上限(有些matplotlib版本画热力图上下边框只显示一半)
bottom, top = ax.get_ylim()
ax.set_ylim(bottom + 0.5, top - 0.5)
print(Bank_Personal_Loan.corr()['Personal Loan'])

从图中可以看出:
1、和开通信贷相关性较强的变量有:收入,信用卡还款额及是否有该银行存单账户;
2、和开通信贷弱相关的变量有:受教育程度,房屋抵押贷款数,家庭人数;
3、邮编、是否是证券账户,是否开通网上银行及是否有信用卡,关系都不大;
4、年龄、工作经验虽然关系也不大,但它们属于连续的数值变量,所以需要分箱后再做观察,看看是否有某一段存在特殊值。

  • 先剔除无关的变量,对其余相关变量进行分析

定性变量与开通贷款的关系

(对定性变量中是否有该银行存单账户、受教育程度、家庭人数与是否开通贷款的关系进行探究)

1.1、是否有该银行存单账户

print(Bank_Personal_Loan.groupby('CD Account')['Personal Loan'].agg([np.mean]))
sns.countplot(x="CD Account",data=Bank_Personal_Loan,hue='Personal Loan')
                mean
CD Account          
0           0.072371
1           0.463576

开通了银行存单账户的客户,其申请贷款的可能性是没有开通的6倍多,说明开通了银行账户的客户是一个主要的目标客户;找到方法让客户开通该银行存款账单也是一个提高申请贷款率的可能选项。

1.2、教育水平

print(Bank_Personal_Loan.groupby('Education').agg([np.mean,'count'])['Personal Loan'])
sns.catplot('Education',hue='Personal Loan',data=Bank_Personal_Loan,kind='count')
            mean
Family          
1       0.072690
2       0.081790
3       0.131683
4       0.109656

学历越高,贷款意愿的比率越多,说明教育水平越高,越能接受超前消费观念,其贷款意愿越高。学历层次越高的用户的存款用户成为银行贷款业务的潜在客户可能性会更大.

1.3家庭人数

print(Bank_Personal_Loan.groupby('Family')['Personal Loan'].agg([np.mean]))
sns.catplot('Family',hue='Personal Loan',data=Bank_Personal_Loan,kind='count')
            mean
Family          
1       0.072690
2       0.081790
3       0.131683
4       0.109656

单身人士与没有孩子的家庭的贷款率都比较低,有孩子的家庭用户相对而言更有意愿转化为贷款用户,特别是独生子女家庭.

定量变量与开通贷款的关系

(对定量变量中的年领、收入、信用卡还款额和房屋抵押贷款与是否开通贷款的关系进行探究)

2.1、年龄

print(Bank_Personal_Loan.groupby('Personal Loan')['Age'].agg([np.mean,'count']))
sns.boxenplot(x='Personal Loan',y='Age',data=Bank_Personal_Loan)


对年龄分层

Bank_Personal_Loan['Income Bins'] = pd.qcut(Bank_Personal_Loan.Age,6) 
print(Bank_Personal_Loan.groupby('Income Bins')['Personal Loan'].agg([np.mean,'count']))
Bank_Personal_Loan.groupby('Income Bins')['Personal Loan'].agg({'Loan rate':np.mean}).plot()


综合来看,各阶段的年龄的贷款意愿都相差不大,相对来说区间在(32.0, 39.0]的客户意愿较强

2.2、收入

print(Bank_Personal_Loan.groupby('Personal Loan')['Income'].agg([np.mean,'count']))
sns.boxenplot(x='Personal Loan',y='Income',data=Bank_Personal_Loan)

  • 取平均来看,高收入的人群会比低收入的人群更愿意申请贷款

对收入分层

Bank_Personal_Loan['Income Bins'] = pd.qcut(Bank_Personal_Loan.Income,20) 
print(Bank_Personal_Loan.groupby('Income Bins')['Personal Loan'].agg([np.mean,'count']))
Bank_Personal_Loan.groupby('Income Bins')['Personal Loan'].agg({'Loan rate':np.mean}).plot()

  • 当年收入超过82时,贷款意愿会有5倍以上的上升,超过98时,贷款意愿达到17%以上,超过170时,贷款意愿达到一半,相对收入越高,贷款的意愿越强烈.

2.3、房屋抵押值

print(Bank_Personal_Loan.groupby('Personal Loan')['Mortgage'].agg([np.mean,'count']))
sns.catplot('Personal Loan','Mortgage',data=Bank_Personal_Loan,kind='boxen')

对抵押值分层

Bank_Personal_Loan['Mortgage_Bins']=pd.cut(Bank_Personal_Loan.Mortgage,10)
print(Bank_Personal_Loan.groupby('Mortgage_Bins')['Personal Loan'].agg({np.mean,'count'}))
Bank_Personal_Loan.groupby('Mortgage_Bins')['Personal Loan'].agg({'Loan_rate':np.mean}).plot()
  • 当房屋抵押值大于190.5千美元时,贷款申请的意愿有明显的提升,总体来看,抵押值越高,贷款意愿越强烈.

2.4、每月信用卡消费额

print(Bank_Personal_Loan.groupby('Personal Loan')['CCAvg'].agg([np.mean,'count']))
sns.boxenplot(x='Personal Loan',y='CCAvg',data=Bank_Personal_Loan)
  • 大部分没有申请贷款的,信用卡消费额的均值在1.7K美元左右,而申请贷款的客户信用款消费额均值达到3.9K美元,是其2倍有多。
#对每月消费额进行分层
Bank_Personal_Loan['CCAvg Bins']=pd.qcut(Bank_Personal_Loan.CCAvg,20)
print(Bank_Personal_Loan.groupby('CCAvg Bins')['Personal Loan'].agg({'mean','count'}))
Bank_Personal_Loan.groupby('CCAvg Bins')['Personal Loan'].agg({'Loan rate':np.mean}).plot()

  • 大概在每月消费额为2.8千美元时,申请贷款率会增大将近4倍,超过6千美元时,申请申请贷款率会有所回落到31%左右,但这个贷款意愿相对还是很强烈的,可对每月消费额在2.8千美元以上的客户加大力度去营销.

4、结论

  1. 通过这次活动,个人贷款业务增长了近10%,说明此次推广活动的效果还是不错的
  2. 对于开通了银行账户的用户需要加强营销力度,他们的贷款意愿相对于没有开通银行账户更强
  3. 教育水平越高的客户越容易接受贷款
  4. 家庭人口较多的家庭贷款意愿较强,尤其是独生子女的家庭
  5. 年龄区间在30-40岁的客户相对贷款意愿更强
  6. 相对收入越高,贷款的意愿越强烈, 当年收入超过82时,贷款意愿会有5倍以上的上升,超过98时,贷款意愿达到17%以上,超过170时,贷款意愿达到一半
  7. 当房屋抵押值大于190.5千美元时,贷款申请的意愿有明显的提升
  8. 每月消费额在2.8千美元以上的客户,贷款申请的意愿有明显的提升
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,529评论 5 475
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,015评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,409评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,385评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,387评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,466评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,880评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,528评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,727评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,528评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,602评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,302评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,873评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,890评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,132评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,777评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,310评论 2 342