R语言进行相关性分析

Python030

R语言进行相关性分析,第1张

相关性分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个变量因素的相关密切程度。相关性分析旨在研究两个或两个以上随机变量之间相互依存关系的方向和密切程度。

一般来讲研究对象(样品或处理组)之间使用距离分析,而元素(物种或环境因子)之间进行相关性分析 。两个变量之间的相关性可以用简单相关系数(例如皮尔森相关系数等)进行表示,相关系数越接近1,两个元素相关性越大,相关系数越接近0,两个元素越独立。

Pearson相关系数是用于表示相关性大小的最常用指标,数值介于-1~1之间,越接近0相关性越低,越接近-1或1相关性越高。正负号表明相关方向,正号为正相关、负号为负相关。适用于两个正态分布的连续变量。

利用两变量的秩次大小来进行分析,属于非参数统计方法。适用于不满足Pearson相关系数正态分布要求的连续变量。也可以用于有序分类变量的之间的相关性测量。

Kendall's Tau相关系数是一种非参数检验,适用于两个有序分类变量。

此外衡量两个变量之间关系的方法还有:卡方检验、Fisher精确检验等。

Pearson、Spearman、Kendall相关系数都可以通过cor函数实现,cov协方差函数参数同cor函数。

ggcorrplot包内只有2个函数,一个cor_pmat()用于计算p值,一个ggcorrplot()用于绘图。ggcorrplot相当于精简版的corrplot包,只有主题更加丰富多样。

This function computes and returns the distance matrix computed by using the specified distance measure to compute the distances between the rows of a data matrix.

这个函数用特定的方法计算矩阵的行之间的距离,并返回距离矩阵。

scale是对矩阵的每一列进行标准化,如果要对行标准化需要先转置。如 heatmapdata <- t(scale(t(heatmapdata)))

比如 Horticulture Research 中的论文 Comparative analysis of long noncoding RNAs in angiosperms and characterization of long noncoding RNAs in response to heat stress in Chinese cabbage 方法部分写道

这里相当于是计算两个数据集中的变量之间的相关性,之前发现 correlation 这个R包里的函数 correlation() 可以做

但是这里遇到了一个问题

关掉这个报错界面以后就会提示

暂时还不知道如何解决,自己搜索了一下暂时还没有找到解决办法

只能把输入法切换成中文,然后一次性把函数名输入完

计算相关系数和P值

结果如下

但是mRNA的表达量有上万个,用这个函数计算的时候是非常慢的

找到了另外一个函数是 Hmisc 这个包中的 rcorr() 函数

这个速度快很多,但是他不能计算两个数据集之间变量的相关性,

这样的话可以先计算,然后再筛选

这个函数要求的输入数据是矩阵格式

自定义函数将这个结果转换成一个四列的数据框格式

最后用变量名去匹配

两个矩阵之间的相关性热图这么容易画的吗?零基础学习R语言之相关性分析2_哔哩哔哩_bilibili

psych 这个包里的 corr.test() 函数也是可以直接计算两个数据集变量之间的相关性的,这个结果了也有显著性检验的p值

但是这个如果数量量比较大的话速度也很慢

小明的数据分析笔记本

analyze-correlate-bivariate-选择变量 OK 输出的是相关系数矩阵 相关系数下面的Sig.是显著性检验结果的P值,越接近0越显著。 另外,表格下会显示显著性检验的判断结果,你看看表格下的解释就知道,比如“**. Correlation is significant at the 0.01 level (2-tailed).” 就是说,如果相关系数后有"**"符号,代表在0.01显著性水平下显著相关 粗略判断的方法是,相关系数0.6以上,可以认为显著相关了