pandas.DataFrame.corr求解变量列相关系数与可视化展示
1常见的三种相关系数
- Pearson相关系数:度量两变量之间的线性相关性;对异常值敏感且对变量数据分布有要求。
- Spearman秩相关系数:非参数统计方法,利用数据秩计算相关系数,对变量数据分布没有要求,具有稳健性。
- Kendall秩相关系数:适用于两个变量均为有序分类的情况,构造的思想为协同思想。
具体可以参考:统计学习–三种常见的相关系数
2 pandas.DataFrame.corr用法
DataFrame.corr(method=‘pearson’, min_periods=1)[source]
- 由数据框.corr方法将会计算数据框每个列两两之间的相似度,返回相关系数矩阵,类型为数据框。
- Series.corr(other Series) 则返回指定的两列之间的相关系数。具体例子如下:
import numpy as np
import pandas as pd
import seaborn as sns
%config InlineBackend.figure_format = 'svg'
#导入数据
df=pd.read_csv('D:/pylearn/data/iris.csv')
#删除分类变量
df1=df.drop('variety',1)
print('相关系数矩阵为:\n',df1.corr())
print('sepal_length与sepal_width的相关系数为:\n',df1['sepal_length'].corr(df1['sepal_width']))
运行结果:
#相关系数矩阵为:
sepal_length sepal_width petal_length petal_width
sepal_length 1.000000 -0.117570 0.871754 0.817941
sepal_width -0.117570 1.000000 -0.428440 -0.366126
petal_length 0.871754 -0.428440 1.000000 0.962865
petal_width 0.817941 -0.366126 0.962865 1.000000
sepal_length与sepal_width的相关系数为:
-0.11756978413300198
3 结果可视化
#可视化
plt.figure()
sns.heatmap(df1.corr(),annot=True, vmax=1, square=True,cmap='gist_heat')
plt.show()
运行结果:
注:以上数据来自python自带数据,实际需要结合业务分析数据。
参考资料:
1.统计学习–三种常见的相关系数
2.python分析多个特征的相关性并绘制热力图
3.pandas.DataFrame.corr