三大相关系数分别是pearson[皮尔森]、spearman[斯皮尔曼] 和 kendall[肯德尔]
反应的都是两个变量之间变化趋势的方向以及程度,其值范围为-1到+1,0表示两个变量不相关,正值表示正相关,负值表示负相关,值越大表示相关性越强。
三大相关公式参考:公式链接
翻阅资料,文字说明简直让人头晕雾绕,在此写下我对它们的简单理解,如有不正确的地方烦请指出
pearson相关系数是考察数据间的线性相关性,数值为[-1,1],1代表它们正线性相关,-1代表它们负线性相关。
spearman秩相关系数,秩代表顺序,比如序列A:1,2,3,4,5,序列B:-1,0,1,4,5,大小顺序一样,则该相关系数为1
kendall秩相关系数:也是顺序,和spearman相比,所计算的对象是分类变量。举个例子。比如评委对选手的评分(优、中、差等),我们想看两个(或者多个)评委对几位选手的评价标准是否一致;或者医院的尿糖化验报告,想检验各个医院对尿糖的化验结果是否一致,这时候就可以使用肯德尔相关性系数进行衡量。
pandas代码:
# coding: utf-8
import numpy as np
import pandas as pd
def Pearson(df): # 计算 Pearson 相关系数
return df.corr()
def Kendall(df): # 计算 Kendall Tau 相关系数
return df.corr('kendall')
def Spearman(df): # 计算 Spearman 秩相关
return df.corr('spearman')
if __name__ == "__main__":
df = pd.DataFrame({'A': np.random.randint(1, 100, 10), # low、high、size
'B': np.random.randint(1, 100, 10),
'C': np.random.randint(1, 100, 10)})
print df
print "Pearson"
print Pearson(df)
print "Kendall Tau"
print Kendall(df)
print "Spearman:"
print Spearman(df)