Bonky Zhu
If someone is able to show me that what I think or do is not right, I will happily change, for I seek the truth, by which no one was ever truly harmed. It is the person who continues in his self-deception and ignorance who is harmed.

三大相关系数:Pearson, Spearman, Kendall

Pearson, Spearman, Kendall 三大相关系数

原文地址:https://zhuanlan.zhihu.com/p/60059869

Pearson, Spearman, Kendall 三类相关系数是统计学上的三大重要相关系数,表示两个变量之间变化的趋势方向和趋势程度。下面对这三类系数做简单的介绍。

系数 使用场景 备注
Pearson 定量数据,数据满足正态性时 正态图可查看正态性,散点图展示数据关系
Spearman 定量数据,数据不满足正态性时 正态图可查着正态性,散点图展示数据关系
Kendall 定量数据一致性判断 通常用于评分数据一致性水平研究(非关系研究)如评委打分,数据排名等

Pearson 相关系数(连续变量)

公式如下(三个式子当然是等价的):

$$
\rho_{X, Y}=\frac{\operatorname{cov}(X, Y)}{\sigma_{X} \sigma_{Y}}=\frac{E\left(\left(X-\mu_{X}\right)\left(Y-\mu_{Y}\right)\right)}{\sigma_{X} \sigma_{Y}}=\frac{E(X Y)-E(H) E(Y)}{\sqrt{E\left(Y^{2}\right)-E^{2}(H)} \sqrt{E\left(Y^{2}\right)-E^{2}(Y)}}
$$

$$
\rho_{X, Y}=\frac{N \sum X Y-\sum X \sum Y}{\sqrt{N \sum X^{2}-\left(\sum X\right)^{2}} \sqrt{N \sum Y^{2}-\left(\sum Y\right)^{2}}}
$$

$$
\rho_{X, Y}=\frac{\sum X Y-\frac{\sum X \sum Y}{N}}{\sqrt{\left(\sum X^{2}-\frac{\left(\sum X\right)^{2}}{N}\right)\left(\sum Y^{2}-\frac{\left(\sum Y\right)^{2}}{N}\right)}}
$$

假设条件:

  • 两个变量分别服从正态分布,通常用t检验检查相关系数的显著性;
  • 两个变量的标准差不为0。

结论:(知道结论有时候够用了~)

pearson 描述的是线性相关关系,取值 [-1, 1]。负数表示负相关,正数表示正相关。在显著性的前提下,绝对值越大,相关性越强。绝对值为0, 无线性关系;绝对值为1表示完全线性相关。

python3.6应用 :

>>> Dataframe.corr(method='pearson') # 返回相关关系矩阵

>>> from scipy.stats import normaltest, probplot
>>> normaltest(a)# 返回统计数和检验P值, 样本要求>20。
>>> probplot(np.array(x,y), dist="norm", plot=pylab) # 化PP图,若在对角线,则相关性强。


Spearman 秩相关系数(连续变量)

公式:

$$
\rho=1-\frac{6 \sum_{i=1}^{N} d_{i}^{2}}{N\left(N^{2}-1\right)}
$$

结论:

无参数的等级相关系数,亦即其值与两个相关变量的具体值无关,而仅仅与其值之间的大小关系有关。di表示两个变量分别排序后成对的变量位置差,N表示N个样本,减少异常值的影响。

python3.6应用 :

>>> Dataframe.corr(method='spearman') # 返回相关关系矩阵

>>> from scipy.stats import spearmanr
>>> spearmanr(array)# 返回 Pearson 系数和检验P值, 样本要求>20。


Kendall 相关系数 (有序分类变量)

公式:

$$
\tau=\frac{(\text { number of concordant pairs })-( \text { number of discordant pairs) } }{n(n-1) / 2}
$$

任意一对$(x_i, y_i)$, $(x_j, y_j)$, 如果$x_i\geq x_j$ and $y_i\geq y_j$, 则这一对和谐;否则不和谐:

$$
\tau=\frac{2}{n(n-1)} \sum\limits _ { i > j } ^ { } \sin ( x _ { i } - x _ { j } ) \sin ( y _ { i } - y _ { j } )
$$

结论:

属于等级相关系数。排序一致,则为1, 排序完全相反则为-1。

python3.6应用 :

>>> Dataframe.corr(method='kendall') # 返回相关关系矩阵

>>> from scipy.stats import kendalltau
>>> kendalltau(x, y) # 返回系数和P值

Share

You may also like...

发表评论