关于企业贷款违约情况的数据分析研究的Python数据分析案例

关于企业贷款违约情况的数据分析研究

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. 从描述性统计可知,违约的概率总的来说是比较小的。
  2. 而且企业平均的销售总额达到了1.29亿元左右,绝大部分企业是比较大型的企业。
  3. 企业的平均退款率大概只有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()

销售净利率和是否违约关系不明显

总结

  1. 本样本理论违约率和实际违约情况基本吻合,说明原来银行预测理论基本准确
  2. 企业的净利润率和是否违约关系不明显
    3.企业盈亏额和企业违约情况关系研究
    3.1 企业盈亏额是否盈利和违约情况相关性不明显
    3.2 盈亏绝对值越小的企业相对违约率更小,反之更大
  3. 企业销售额与企业违约情况关系研究
    4.1 超过一亿元的大企业比小企业更少违约
    4.2 大企业的抗风险能力比小企业更好,资金腾挪空间更大
  4. 企业平均退款率与企业违约情况关系研究
    5.1 平均退款率在0-0.1区间的企业违约情况更少
    5.2 产品平均退款率在0.1是分界线,银行对于此类企业贷款应该更加慎重
  5. 企业营业成本率超过2左右的企业应该格外关注,违约概率更高
  6. 销进货数比高的企业一般不容易违约,反之则需要格外关注

猜你喜欢

转载自blog.csdn.net/david2000999/article/details/120219715#comments_21711995