1、pandas.DataFrame.corr
DataFrame.corr(method: {'pearson', 'kendall', 'spearman'})
相关方法:
pearson:标准相关系数
kendall:Kendall Tau相关系数
spearman:Spearman秩相关系数
解释:相关系数的取值范围为[-1,1],属于0.8-1:极强相关;属于0.6-0.8:强相关;属于0.4-0.6:中等程度相关;属于0.2-0.4:弱相关;0-0.2:极弱相关或无相关;
2、三种常见相关系数及适用范围
(1)pearson相关系数:度量两变量x和y之间的线性关系,样本协方差除以x的标准差与y的标准差的乘积
公式:
其中, 为样本相关系数; 为样本协方差; 为x的样本标准差; 为y的样本标准差;
数据:x,y都是随机变量,双变量正态分布,在求pearson相关系数后,通常用t检验方法进行pearson相关系数检验,而t检验是基于数据呈正态分布的假设的;实验数据之间的差距不能太大。
import pandas as pd
import numpy as np
x=pd.Series([1,2,3,4,5,6])
y=pd.Series([0.3,0.9,2.7,2,3.5,5])
print(x.mean(),y.mean()) # 平均值
print(x.var(),y.var()) #方差
print(x.std(),y.std()) # 标准差
print("协方差",x.cov(y)) # 协方差
print("pearson相关系数",x.corr(y,method="pearson")) # pearson相关系数
(2)spearman相关系数,称为秩相关系数
主要用于计算不服从正态分布的数据、原始等级数据、一侧开口数据、总体分布类型未知的数据;
公式:
其中,n为样本中观测值的个数; 为对于第一个变量的第i个观测值的秩; 为对于第二个变量的第i个观测值的秩; 。
x1.corr("spearman相关系数",x.corr(y,method="spearman"))
(3)kendall相关系数
表示等级变量相关程度的一种方法,定义:n个同类的统计对象按特定属性排序,其他属性通常是乱序的。同序对和异序对之差与总对数(n*(n-1)/2) 的比值定义为kendall秩相关系数。
公式:
其中,n是数据样本量,P为两个变量值排列大小关系一致的统计对象对数。kendall stau系数性质:
- 如果两个变量排名是相同的,系数为1,两个变量正相关;
-
如果两个变量排名完全相反,系数为-1 ,两个变量负相关;
-
如果排名是完全独立的,系数为0;