1.三类关系趋势
如下,在测量5个肝细胞gene x 转录本表达情况的基础上,同时也测量这5个肝细胞gene y转录本表达量。对来自同一细胞(sample)的两个数据进行配对,利用其在X轴(green)和Y轴(red)上的数据在二维平面组成一个新的点(蓝色的点)并用直线对其进行拟合。
1)如果斜率为正,gene x与gene y在细胞中表达成正相关。gene x表达水平随gene Y表达水平的增加而增加。利用拟合的直线,可以根据gene x的表达量预测gene y表达水平,也可以基于gene y的表达量预测gene x的表达水平。
2)如果斜率为负,Gene x与gene y的表达呈现负相关趋势。较低的gene x表达水平对应较高的gene y表达水平,较高的gene x水平对应较低的gene y表达水平。
3)如果斜率为0或者斜率不存在,gene x与gene y的表达水平之间无关联。表现为gene y/x的表达水平不随gene x/y的表达量变化而变化。
小结:协方差的主要思想之一,其可以将数据分为三类关系:正向趋势的关系;负向趋势的关系;无任何趋势的关系。
2. 引入协方差来描述三类关系趋势
协方差的计算公式:「当协方差为正时,gene x与gene y两变量间表现为正相关性。」 依次将数据代入公式,可以发现:两个黄色象限(一、三象限)的样本都对整体协方差做成正的贡献。协方差为116,它意味着gene x与gene y之间的拟合相关直线斜率是正值。因此,可以得出这样的结论:当协方差为正时,gene x与gene y之间呈正的变化趋势。
「当协方差为负,gene x与gene y两变量间表现为负相关性。」 假设gene y的值与以前不同,gene y的样本均值变为20.2。Gene x的值保持不变,gene x的均值为17.6。我们使用协方差的计算公式计算gene x与gene y的协方差,在黄色象限的数据对整体协方差做出负的贡献,最后协方差等于-105.15。因此可以得出结论:当协方差为负时,gene x与gene y两变量间的相关性直线的斜率为负。
「将协方差为0时,gene x与gene y两变量间表现为无相关性。」 同样的计算方法,我们可以推算出,当gene x与gene y表达水平无关系时,协方差等于0。因此可以得出结论:当协方差为0时,gene x与gene y两变量间无相关关系。
注意!!!协方差本身并不容易被阐释,它不能告诉我们相关性直线的斜率(陡峭或平坦),也不能告诉我们样本是否靠近相关性直线,它仅仅告诉我们两变量之间的相关性直线的斜率是正还是负。
3.协方差缺点:对数据的scale敏感
「协方差对数据的scale敏感,使其不能揭示数据间的相关性程度。」
又例如:左边的数据较右边的数据更接近相关性直线,左边数据对应的协方差为102;右边数据对应的协方差为381,远大于左侧数据的协方差。将右侧数据同时缩小4倍后,数据距离相关性直线的距离未发生改变,但对应的协方差变为24,小于原来的协方差,也小于左侧数据的协方差。
4.小结:
协方差值并不能告诉我们关系强弱,只能告诉我们是正/负相关。
协方差值的具体大小没有意义
协方差值对数据的波动(方差)较为敏感
5.协方差的替代指标:pearson相关系数
当数据波动变大后,数据的协方差也会变大,但是我们想用一个不会受数据波动影响的系数来反映数据之间的相关性。那么最简单的办法就是把这个波动给去除掉就好,我们可以通过除以数据的SD(波动程度值)来去除,这样就得到了我们的pearson相关系数的计算公式:
为什么要除以SD:假设有一组数据
X1:1,2,3,4,5
Y1:1,2,3,4,5
根据协方差公式,可以计算出两个变量的协方差为2,SD分别为√2,√2
根据pearson相关系数的计算公式:相关系数为1
现在将X1,Y1同时扩大2倍
X1:2,4,6,8,10
Y1:2,4,6,8,10
根据协方差公式,可以计算出两个变量的协方差为8,SD分别为2√2,2√2
根据pearson相关系数的计算公式:相关系数为1
可以看出,当数据扩大2倍的是时候,协方差与标准差都发生了变化,但相关系数并没有发生改变。
6.相关系数的特性
同时测量5个细胞中gene x与gene y的转录水平,将其绘制如下。将配对的数据用蓝色的小圆点表示,并使用直线展示gene x与gene y表达水平之间的相关趋势。基于该趋势,可以用gene x预测gene y的可能取值范围,也可用gene y预测gene x的可能取值范围。「(左图)强相关」:如果基于gene x的表达量能够无偏差地预测gene y的表达量,说明二者之间有很强的联系;
「(右图)弱相关」:如果基于gene x的表达量不能较准确地预测gene y的表达量,说明二者之间仅有较弱的联系。
以上涉及的是直线相关,相关系数的取值为【-1,1】:
散点完全在同一条直线上,预测的准确性最高,相关系数的正负号表示相关性的正负。若x与y是同向变化,相关系数等于1,为完全正相关;若x与y是反向变化,相关系数等于-1,为完全负相关。
散点不完全在同一直线上,沿直线分布越集中,相关系数越接近1,预测准确性逐渐增加。相反,沿直线分布越分散,相关系数越接近0,预测的准确性逐渐减弱。
小结
1.r 的取值范围在 [0,1]
|r|>=0.8:高度相关
0.5<=|r|<0.8:中度相关
0.3<=|r|<0.5:低度相关
|r|<0.3:不相关
2.r 具有对称性,x与y的相关性系数和y与x的相关性系数相等
3.r 的数值与x和y的原点及尺度无关
4.r 仅仅表示线性关系的度量,不能用于非线性关系。例如,当r=0时只能表示两个变量之间没有线性相关关系,但是它们之间可能存着非线性相关关系
注意点:
皮尔森相关性系数对数据是有比较高的要求的:
第一, 实验数据通常假设是成对的来自于正态分布的总体。为啥通常会假设为正态分布呢?因为我们在求皮尔森相关性系数以后,通常还会用t检验之类的方法来进行皮尔森相关性系数检验,而 t检验是基于数据呈正态分布的假设的。
第二, 实验数据之间的差距不能太大,或者说皮尔森相关性系数受异常值的影响比较大。比如刚才心跳与跑步的例子,万一这个人的心脏不太好,跑到一定速度后承受不了,突发心脏病,那这时候我们会测到一个偏离正常值的心跳(过快或者过慢,甚至为0),如果我们把这个值也放进去进行相关性分析,它的存在会大大干扰计算的结果的。
第三,两个变量之间是线性关系,都是连续数据。
7.协方差与相关系数的关系
「相同点」:二者符号的正负代表两变量变化趋势是同向还是反向;
「差异点」:相关系数的取值与数据的scale无关,不论数据的多少,只要数据完全在同一条直线上(陡峭或者平缓),相关系数就为1或者-1;而协方差取值对数据的scale敏感。这个原因使得协方差本身的意义难以阐释。皮尔森相关性系数是协方差与标准差的比值。
使用R语言对相关系数的计算
假设我们有一组数据,每一列代表一个样本,每一行代表一个基因在不同样本中的表达量
> head(a,3)#查看数据
X1_untreated X2_untreated X3_untreated X4_untreated X1_Dex
ENSG00000223972 -2.089725 -2.090478 -2.090475 -2.089265 -2.079351
ENSG00000227232 6.760110 6.892673 6.346646 6.739761 6.450597
ENSG00000243485 0.000000 0.000000 0.000000 0.000000 0.000000
X2_Dex X3_Dex X4_Dex
ENSG00000223972 -2.087724 -2.091304 -2.089408
ENSG00000227232 6.749787 6.623112 6.524621
ENSG00000243485 0.000000 0.000000 0.000000
> cor_a = cor(a)使用cor函数计算相关性
> cor_a查看相关系数
8.Pearson(皮尔逊)相关系数与Spearman Rank(斯皮尔曼等级)相关系数区别
斯皮尔曼相关性系数,通常也叫斯皮尔曼秩相关系数,这是一种无参数(与分布无关)检验方法,要求数据具有同升或同降变化趋势,但明显不具有线性相关关系。
“秩”,可以理解成就是一种顺序或者排序,那么它就是根据原始数据的排序位置进行求解,这种表征形式就没有了求皮尔森相关性系数时那些限制。
也就是说,我们不用管X和Y这两个变量具体的值到底差了多少,只需要算一下它们每个值所处的排列位置的差值,就可以求出相关性系数了。
另外,即使出现异常值,由于异常值的秩次通常不会有明显的变化(比如过大或者过小,那要么排第一,要么排最后),所以对斯皮尔曼相关性系数的影响也非常小!
用“秩”的概念,一方面可以解决异常值的问题,但是有好就有坏,这在另外一方面,也说明,这种方法的检验效力没有pearson相关系数强,因为它忽略了相关性的具体大小,而只保留了大小关系。