Pearson, Spearman, Kendall 三类相关系数是统计学上的三大重要相关系数,表示两个变量之间变化的趋势方向和趋势程度。下面对这三类系数做简单的介绍。
1、Pearson 相关系数(连续变量)
公式:
假设条件:
a) 两个变量分别服从正态分布,通常用t检验检查相关系数的显著性;
b) 两个变量的标准差不为0。
结论:
pearson 描述的是线性相关关系,取值[-1, 1]。负数表示负相关,正数表示正相关。在显著性的前提下,绝对值越大,相关性越强。绝对值为0, 无线性关系;绝对值为1表示完全线性相关。
python3.6应用 :
a) Dataframe.corr(method='pearson'), 返回相关关系矩阵
b) from scipy.stats import normaltest, probplot
normaltest(a)返回统计数和检验P值, 样本要求>20。
probplot(np.array(x,y), dist="norm", plot=pylab) 化PP图,若在对角线,则相关性强。
2、Spearman 秩相关系数(连续变量)
公式:
结论:无参数的等级相关系数,亦即其值与两个相关变量的具体值无关,而仅仅与其值之间的大小关系有关。di表示两个变量分别排序后成对的变量位置差,N表示N个样本,减少异常值的影响。
python3.6应用 :
a) Dataframe.corr(method='spearman'), 返回相关关系矩阵
b) from scipy.stats import spearmanr
spearmanr(array)返回 Spearman 系数(系数矩阵)和检验P值, 样本要求>20。
3、Kendall 相关系数 (有序分类变量)
公式:
任意一对(xi, yi)(xj, yj) 如果xi>=xj and yi>=yj, 则这一对和谐,若xi>xj and yi<yj, 则不和谐结果:属于等级相关系数。排序一致,则为1, 排序完全相反则为-1。
python3.6应用 :
a) Dataframe.corr(method='kendall'), 返回相关关系矩阵
b) from scipy.stats import kendalltau
kendalltau(x, y) 返回系数和P值