(转自 微信公众号克里克学苑) 1. person correlation coefficient(皮尔森相关性系数)公式如下: 公式的分母是变量的标准差,这就意味着计算皮尔森相关性系数时,变量的标准差不能为0(分母不能为0),也就是说你的两个变量中任何一个的值不能都是相同的。如果没有变化,用皮尔森相关系数是没办法算出这个变量与另一个变量之间是不是有相关性的。 就好比我们想研究人跑步的速度与心脏跳动的相关性,如果你无论跑多快,心跳都不变(即心跳这个变量的标准差为0),或者你心跳忽快忽慢的,却一直保持一个速度在跑(即跑步速度这个变量的标准差为0),那我们都无法通过皮尔森相关性系数的计算来判断心跳与跑步速度到底相不相关。 我们再拔高一点,来看个更具普遍性的例子吧,其中的计算我们使用广受欢迎的R语言来运行,如果你手边也装了R语言,可以一起来做做看: 假设你现在做了个生物学实验,喜得以下两个变量:
其值在0.9以上,说明二者非常相关,比如验证了蛋白A表达量的变化,与蛋白B表达量的变化关系很大!拿到这种有统计学论证的结果你可能很开心。 然而,由于实验操作不慎或者处理数据不小心,得到了这样一个变量X2(1,1,1,1,1,1),那么计算X2与Y1之间的皮尔森相关性系数会发生什么呢?
R运行会得到一个缺失值(NA),并且代码给你提醒:标准差为零(自己试着计算下X2的标准差是多少),这时候明白上面说的意思了吧!也就是说,X2里面的取值根本没有任何波动,那它与Y1的相关性也就没法用这种方法来计算了。 此外,从上面的公式我们知道,皮尔森相关性系数是协方差与标准差的比值,所以它对数据是有比较高的要求的: 第一, 实验数据通常假设是成对的来自于正态分布的总体。为啥通常会假设为正态分布呢?因为我们在求皮尔森相关性系数以后,通常还会用t检验之类的方法来进行皮尔森相关性系数检验,而 t检验是基于数据呈正态分布的假设的。 统计学之三大相关性系数(pearson、spearman、kendall) 2. spearman correlation coefficient(斯皮尔曼相关性系数)斯皮尔曼相关性系数,通常也叫斯皮尔曼秩相关系数。“秩”,可以理解成就是一种顺序或者排序,那么它就是根据原始数据的排序位置进行求解,这种表征形式就没有了求皮尔森相关性系数时那些限制。下面来看一下它的计算公式: 统计学之三大相关性系数(pearson、spearman、kendall) 统计学之三大相关性系数(pearson、spearman、kendall) 也就是说,我们不用管X和Y这两个变量具体的值到底差了多少,只需要算一下它们每个值所处的排列位置的差值,就可以求出相关性系数了。这下理解起来是不是容易多了!还是用上面的数据,下面写下代码实现:
而且,即便在变量值没有变化的情况下,也不会出现像皮尔森系数那样分母为0而无法计算的情况。另外,即使出现异常值,由于异常值的秩次通常不会有明显的变化(比如过大或者过小,那要么排第一,要么排最后),所以对斯皮尔曼相关性系数的影响也非常小! 由于斯皮尔曼相关性系数没有那些数据条件要求,适用的范围就广多了。在我们生物实验数据分析中,尤其是在分析多组学交叉的数据中说明不同组学数据之间的相关性时,使用的频率很高。 3. kendall correlation coefficient(肯德尔相关性系数)肯德尔相关性系数,又称肯德尔秩相关系数,它也是一种秩相关系数,不过它所计算的对象是分类变量。 举个例子。比如评委对选手的评分(优、中、差等),我们想看两个(或者多个)评委对几位选手的评价标准是否一致;或者医院的尿糖化验报告,想检验各个医院对尿糖的化验结果是否一致,这时候就可以使用肯德尔相关性系数进行衡量。 由于数据情况不同,求得肯德尔相关性系数的计算公式不一样,一般有3种计算公式,在这里就不繁琐地列出计算公式了,直接给出R语言的计算函数: 还是用cor函数求,这时候把method这个参数设成“kendall”,这时我们假设老师对选手的评价等级—3表示优,2表示中,1表示差:
这时候就可以理解为两位老师对选手们的看法是呈相反趋势的,不过这种相反的程度不很大。 |
|
来自: 王的宫殿7hgg9t > 《待分类》