关于企业贷款违约情况的数据分析研究
import pandas as pd
import numpy as np
import matplotlib.pyplot as mp
data = pd.read_csv('data.csv',encoding='gbk') # 加载数据
data # 显示全部数据
查看字段
data.columns
Index(['Unnamed: 0', '进项总额', '销项总额', '盈亏额', '进项退款率', '销项退款率', '平均退款率', '进货单量',
'销售单量', '进项退款数', '销项退款数', '销售净利率', '营业成本率', 'Unnamed: 13', '销进货数比',
'是否违约', '违约率'],
dtype='object')
字段描述
data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 123 entries, 0 to 122
Data columns (total 17 columns):
Unnamed: 0 123 non-null int64
进项总额 123 non-null int64
销项总额 123 non-null int64
盈亏额 123 non-null int64
进项退款率 123 non-null float64
销项退款率 123 non-null float64
平均退款率 123 non-null float64
进货单量 123 non-null int64
销售单量 123 non-null int64
进项退款数 123 non-null int64
销项退款数 123 non-null int64
销售净利率 123 non-null float64
营业成本率 123 non-null float64
Unnamed: 13 0 non-null float64
销进货数比 123 non-null float64
是否违约 123 non-null int64
违约率 123 non-null float64
dtypes: float64(8), int64(9)
memory usage: 16.4 KB
- 从描述性统计可知,违约的概率总的来说是比较小的。
- 而且企业平均的销售总额达到了1.29亿元左右,绝大部分企业是比较大型的企业。
- 企业的平均退款率大概只有0.083左右,不足百分之一,说明多数企业产品比较合格。
使得图表中能显示中文
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['Simhei']
mpl.rcParams['axes.unicode_minus'] = False
获救情况人数可视化
data.是否违约.value_counts().plot(kind='bar') # 柱状图
mp.title('企业贷款违约情况(1为违约)')
mp.ylabel("企业数")
mp.legend()
mp.show()
绘制饼状图
data.是否违约.value_counts().plot.pie(figsize=(4,4))
mp.title("违约情况(1表示违约)")
mp.legend()
mp.show()
说明大部分企业的违约概率都集中在0.2左右,和实际违约情况基本相符
密度图
data.盈亏额[data.是否违约 == 1].plot(kind='kde')
data.盈亏额[data.是否违约 == 0].plot(kind='kde')
mp.xlabel("盈亏额")
mp.ylabel("密度")
mp.title("盈亏额和是否违约关系")
mp.legend(("违约","不违约"))
mp.show()
违约企业比不违约企业盈亏额的绝对值更加靠近0,但是亏损和盈利基本分布均匀,所以是否亏损和是和否违约关系不明显,但是相对来说,盈亏绝对值更大的更不容易违约。
违约和不违约企业营业额分布散点图
mp.scatter(data.是否违约,data.销项总额)
mp.ylabel("销项总额")
mp.xlabel("是否违约")
mp.title("按照销项总额看是否违约分布可视化(1为违约)")
mp.show()
违约企业中没有营业额超过一亿元的企业,说明小型企业抗风险能力差,更容易违约
密度图
data.平均退款率[data.是否违约 == 1].plot(kind='kde')
data.平均退款率[data.是否违约 == 0].plot(kind='kde')
mp.xlabel("平均退款率")
mp.ylabel("密度")
mp.title("平均退款率和是否违约关系")
mp.legend(("违约","不违约"))
mp.show()
图中可知,绝大部分企业平均退款率在0-0.1之间,但是在大于0.1以后,明显企业更加可能出现违约情况,应该警惕平均退款率大于0.1的企业
密度图
data.营业成本率[data.是否违约 == 1].plot(kind='kde')
data.营业成本率[data.是否违约 == 0].plot(kind='kde')
mp.xlabel("营业成本率")
mp.ylabel("密度")
mp.title("营业成本率和是否违约关系")
mp.legend(("违约","不违约"))
mp.show()
对于营业成本率特别高的企业应该尤其关注,提高其风险等级
a=data.销进货数比
b=data.违约率
mp.xlabel("违约率")
mp.ylabel("销进货数比")
mp.title("销进货数比和违约率关系")
mp.plot(b,a)
销进货数比高的企业一般不容易违约,反之则需要格外关注
密度图
data.销售净利率[data.是否违约 == 1].plot(kind='kde')
data.销售净利率[data.是否违约 == 0].plot(kind='kde')
mp.xlabel("销售净利率")
mp.ylabel("密度")
mp.title("销售净利率和是否违约关系")
mp.legend(("违约","不违约"))
mp.show()
销售净利率和是否违约关系不明显
总结
- 本样本理论违约率和实际违约情况基本吻合,说明原来银行预测理论基本准确
- 企业的净利润率和是否违约关系不明显
3.企业盈亏额和企业违约情况关系研究
3.1 企业盈亏额是否盈利和违约情况相关性不明显
3.2 盈亏绝对值越小的企业相对违约率更小,反之更大 - 企业销售额与企业违约情况关系研究
4.1 超过一亿元的大企业比小企业更少违约
4.2 大企业的抗风险能力比小企业更好,资金腾挪空间更大 - 企业平均退款率与企业违约情况关系研究
5.1 平均退款率在0-0.1区间的企业违约情况更少
5.2 产品平均退款率在0.1是分界线,银行对于此类企业贷款应该更加慎重 - 企业营业成本率超过2左右的企业应该格外关注,违约概率更高
- 销进货数比高的企业一般不容易违约,反之则需要格外关注