R使用笔记:相关系数:cor.test();corr.test();rcorr()

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R使用笔记:相关系数:cor.test();corr.test();rcorr()相关的知识,希望对你有一定的参考价值。

参考技术A

相关系数(correlation coefficient)用于描述两个变量之间的相关程度。一般在[-1, 1]之间。包括:

在本次笔记中仅讨论 连续型变量 的相关系数。

cor.test() 和 cor() 都是R自带包里的函数,两者差别仅为 cor() 只给出相关系数一个值, cor.test() 给出相关系数,p值等。

你可以把数据的两组feature提出来进行相关性分析,看是否有相关性;也可以把包含多个feature的表格作为 cor() input,得到的是一个对称的 correlation matrix . 即所有feature两两比较的相关系数。然后你可以拿去各种可视化。 cor.test() 似乎不能这样用。
使用 Hmisc 包的rcorr(),可以得到correlation matrix的p值矩阵。当然 rcorr() 也可以像 cor() 那样,只计算两个feature之间的相关系数。

如果你想比较 attitude 6个feature中前3个与后3个的关联,并且需要进行多重矫正,需要使用psych包的corr.test()。
你有关于一套sample的两套feature,比方说两个dataframe, 其行是相同的(sample),列为不同的feature.那么可以 corr.test(df1, df2, method= ...) 来计算两组feature的相关系数并加以矫正。这时得到的output不是对称的,而是 ncol(df1) * ncol(df2)
需要注意如果input为两个dataframe, 两者的row必须长度和顺序都一致。

可以根据P值,把P值做成 * , ** ...这样的的significant levels,便于后面画热图。总的来说以下函数可以塞进去两个你想比较的dataframe,得到相关系数,矫正后的P值,校正后的P值significant levels矩阵,结合 heatmap.2 ,就可以画图了...

spearmanCI()
安装 spearmanCI 包。在cor.test()中method使用pearson, 默认结果中有95%CI,但是spearman没有。
用法: spearmanCI(df[[var1]], df[[var2]], level=0.95)
注意一下它的Ouput不是一个完整的list...要把它读出来:
capture.output(spearmanCI(...))

R里做相关系数的函数茫茫多,不止这几个。以后如果要用到其他的再补上。

Ref:
更多见STHDA的教程
corr.test的文档

R语言偏相关或者部分相关性系数计算实战:使用psych包计算(Partial Correlation)偏相关系数拟合回归模型使用两个回归模型的残差计算偏相关性系数

R语言偏相关或者部分相关性系数计算实战:使用psych包计算(Partial Correlation)偏相关系数、拟合回归模型使用两个回归模型的残差计算偏相关性系数

目录

以上是关于R使用笔记:相关系数:cor.test();corr.test();rcorr()的主要内容,如果未能解决你的问题,请参考以下文章

如何用R语言做线性相关回归分析

如何在R中找到数值变量和因子变量之间的相关性?

如何关联R中的多个子集

R语言之相关性分析

R x相关性计算时缺失值的处理

R语言,分别计算pearson和spearman相关系数