数据可视化之热力图&相关系数图(原理+Python代码)

一、原理介绍

热力图,又名相关系数图。根据热力图中不同方块颜色对应的相关系数的大小,可以判断出变量之间相关性的大小。两个变量之间相关系数的计算公式为:

ρ X 1 X 2 = C o v ( X 1 , X 2 ) D X 1 , D X 2 = E X 1 X 2 − E X 1 ∗ E X 2 D X 1 ∗ D X 2 \rho _{_{X_{1}X_{2}}}=\frac{Cov(X_{1},X_{2})}{\sqrt{DX_{1},DX_{2} }}=\frac{EX_{1}X_{2}-EX_{1}\ast EX_{2}}{\sqrt{DX_{1}\ast DX_{2} }} ρX1X2=DX1,DX2 Cov(X1,X2)=DX1DX2 EX1X2EX1EX2
公式中, ρ \rho ρ 表示相关系数,Cov表示协方差,E表示数学期望/均值

值得注意的是,该相关系数只能度量出变量之间的线性相关关系;也就是说,相关系数越高,则变量间的线性相关程度越高。对于相关系数小的两个变量,只能说明变量间的线性相关程度弱,但不能说明变量之间不存在其它的相关关系,如曲线关系等。

二、代码实现

数据来源于2016年的上市企业数据,通过绘制热力图,来探究上市企业各指标之间的相关性,进而探究自变量之间的多重共线性以及各变量与企业违约率之间的相关关系强弱。
以下是代码的实现过程:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings("ignore") #过滤掉警告的意思
from pyforest import *
data=pd.read_csv("F:/data/cor.csv",encoding='gbk')
data.head()
年份证券简称资产负债率剔除预收款项后的资产负债率长期资本负债率长期资产适合率权益乘数流动负债权益比率带息债务/全部投入资本流动负债/负债合计资本固定化比率期望违约频率EDF
02016珠江实业0.7129060.6353450.4789820.5048920.9017180.4912990.3914370.1485170.4755400.000000
12016珠江控股0.6056480.4901100.5708610.4920150.1305250.0000000.4453240.6415380.7203050.428899
22016中洲控股0.6708810.6154950.5306500.4996210.8355390.4633410.3555130.3386760.4844460.991604
32016中天金融0.6783230.5889740.4456390.4950320.8517130.4926470.4074920.0939490.5092390.999601
42016中体产业0.8004100.7830330.9019290.5026320.9557450.5080000.0938380.5712390.4623440.792590
#图片显示中文
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] =False #减号unicode编码
data.drop(['证券简称','年份'], axis=1, inplace=True) #删除无关的列
#计算各变量之间的相关系数
corr = data.corr()
corr
资产负债率剔除预收款项后的资产负债率长期资本负债率长期资产适合率权益乘数流动负债权益比率带息债务/全部投入资本流动负债/负债合计资本固定化比率期望违约频率EDF
资产负债率1.0000000.5945270.492963-0.1609950.7236640.658646-0.8574740.320706-0.284634-0.091423
剔除预收款项后的资产负债率0.5945271.0000000.724546-0.0993180.5406390.492140-0.5540390.171270-0.2652590.068577
长期资本负债率0.4929630.7245461.000000-0.0913380.4505420.375839-0.5249550.300627-0.1983620.033209
长期资产适合率-0.160995-0.099318-0.0913381.000000-0.049872-0.0284520.1571570.009742-0.1623740.155095
权益乘数0.7236640.5406390.450542-0.0498721.0000000.951933-0.6517670.079052-0.5359840.007980
流动负债权益比率0.6586460.4921400.375839-0.0284520.9519331.000000-0.543147-0.106139-0.5223200.011466
带息债务/全部投入资本-0.857474-0.554039-0.5249550.157157-0.651767-0.5431471.000000-0.5950160.3105210.066397
流动负债/负债合计0.3207060.1712700.3006270.0097420.079052-0.106139-0.5950161.000000-0.105199-0.064886
资本固定化比率-0.284634-0.265259-0.198362-0.162374-0.535984-0.5223200.310521-0.1051991.000000-0.080153
期望违约频率EDF-0.0914230.0685770.0332090.1550950.0079800.0114660.066397-0.064886-0.0801531.000000
ax = plt.subplots(figsize=(20, 16))#调整画布大小
ax = sns.heatmap(corr, vmax=.8, square=True, annot=True)#画热力图   annot=True 表示显示系数
# 设置刻度字体大小
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)

在这里插入图片描述

三、结果解释

  • 热力图右侧的刻度展示了不同相关系数对应的颜色深浅。从图中可以看出,权益乘数流动负债权益比率之间的相关性较高,为0.95,即存在很强的多重共线性。在进行特征工程时可以考虑剔除二者中的一个变量,以免导致因多重共线性造成的过拟合。

  • 从热力图的最后一列或最后一行可以看出,长期资产适合率期望违约频率的相关系数相对最高,为0.16。因此,在进行违约风险评估建模时,可以考虑保留长期资产适合率这一变量。

相关阅读

  • 124
    点赞
  • 924
    收藏
    觉得还不错? 一键收藏
  • 20
    评论
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值