统计学中的大相三大相关性系数:pearson, spearman, kendall,他们反应的关系都是两个变量之间变化趋势的方向以及程度,其值范围为-1到+1。大相 0表示两个变量不相关,关系正值表示正相关,大相负值表示负相关,关系值越大表示相关性越强。大相 1. person correlation coefficient(皮尔森相关性系数) 皮尔逊相关系数通常用r或ρ表示,关系度量两变量X和Y之间相互关系(线性相关)(1)公式 皮尔森相关性系数的大相值等于它们之间的协方差cov(X,Y)除以它们各自标准差的乘积(σX, σY)。(2)数据要求 a.正态分布 它是关系协方差与标准差的比值,并且在求皮尔森相关性系数以后,大相通常还会用t检验之类的关系方法来进行皮尔森相关性系数检验,而t检验是大相基于数据呈正态分布的假设的。 b.实验数据之间的关系差距不能太大 比如:研究人跑步的速度与心脏跳动的相关性,如果人突发心脏病,大相心跳为0(或者过快与过慢),那这时候我们会测到一个偏离正常值的心跳,站群服务器如果我们把这个值也放进去进行相关性分析,它的存在会大大干扰计算的结果的。(3)实例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import pandas as pd import numpy as np #原始数据 X1=pd.Series([1, 2, 3, 4, 5, 6]) Y1=pd.Series([0.3, 0.9, 2.7, 2, 3.5, 5]) X1.mean() #平均值# 3.5 Y1.mean() #2.4 X1. var () #方差#3.5 Y1. var () #2.9760000000000004 X1.std() #标准差不能为0# 1.8708286933869707 Y1.std() #标准差不能为0#1.725108692227826 X1.cov(Y1) #协方差#3.0600000000000005 X1.corr(Y1,method= "pearson" ) #皮尔森相关性系数 #0.948136664010285 X1.cov(Y1)/(X1.std()*Y1.std()) #皮尔森相关性系数 # 0.948136664010285 2. spearman correlation coefficient(斯皮尔曼相关性系数) 斯皮尔曼相关性系数,通常也叫斯皮尔曼秩相关系数。“秩”,可以理解成就是一种顺序或者排序,那么它就是根据原始数据的排序位置进行求解 (1)公式 首先对两个变量(X, Y)的数据进行排序,然后记下排序以后的位置(X’, Y’),(X’, Y’)的值就称为秩次,秩次的差值就是上面公式中的di,n就是变量中数据的个数,最后带入公式就可求解结果。 (2)数据要求 因为是定序,所以我们不用管X和Y这两个变量具体的值到底差了多少,只需要算一下它们每个值所处的排列位置的差值,源码库就可以求出相关性系数了 (3)实例代码1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 import pandas as pd import numpy as np #原始数据 X1=pd.Series([1, 2, 3, 4, 5, 6]) Y1=pd.Series([0.3, 0.9, 2.7, 2, 3.5, 5]) #处理数据删除Nan x1=X1.dropna() y1=Y1.dropna() n=x1.count() x1.index=np.arange(n) y1.index=np.arange(n) #分部计算 d=(x1.sort_values().index-y1.sort_values().index)**2 dd=d.to_series().sum() p=1-n*dd/(n*(n**2-1)) #s.corr()函数计算 r=x1.corr(y1,method= spearman ) print(r,p) #0.942857142857143 0.9428571428571428
3. kendall correlation coefficient(肯德尔相关性系数)
http://shenzhen.offcn.com/