R语言之相关性分析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言之相关性分析相关的知识,希望对你有一定的参考价值。

两个变量或两组变量之间的联系,对于连续变量称为相关性,对于分类变量称为关联性。

一、连续变量间的相关性
常用命令及选项如下
技术分享

使用方法如下:
1.计算相关系数及相关系数矩阵

> cor(count,speed)
[1] 0.7237206

> cor(count,speed,method = "spearman")
[1] 0.5269556

> cor(mf)
           Length       Speed      Algae         NO3        BOD
Length  1.0000000 -0.34322968  0.7650757  0.45476093 -0.8055507
Speed  -0.3432297  1.00000000 -0.1134416  0.02257931  0.1983412
Algae   0.7650757 -0.11344163  1.0000000  0.37706463 -0.8365705
NO3     0.4547609  0.02257931  0.3770646  1.00000000 -0.3751308
BOD    -0.8055507  0.19834122 -0.8365705 -0.37513077  1.0000000

> cor(mf$Length,mf)可以通过$指定显示某个变量的相关系数
     Length      Speed     Algae       NO3        BOD
[1,]      1 -0.3432297 0.7650757 0.4547609 -0.8055507

2.计算方差及协方差矩阵

> cov(count,speed)
[1] 123

> var(count,speed)
[1] 123

> cov(mf)
             Length        Speed       Algae         NO3        BOD
Length    9.4900000  -4.95000000   45.858333  0.70683333 -111.55667
Speed    -4.9500000  21.91666667  -10.333333  0.05333333   41.74167
Algae    45.8583333 -10.33333333  378.583333  3.70166667 -731.73333
NO3       0.7068333   0.05333333    3.701667  0.25456667   -8.50850
BOD    -111.5566667  41.74166667 -731.733333 -8.50850000 2020.87333

> cov2cor(cov(mf))
           Length       Speed      Algae         NO3        BOD
Length  1.0000000 -0.34322968  0.7650757  0.45476093 -0.8055507
Speed  -0.3432297  1.00000000 -0.1134416  0.02257931  0.1983412
Algae   0.7650757 -0.11344163  1.0000000  0.37706463 -0.8365705
NO3     0.4547609  0.02257931  0.3770646  1.00000000 -0.3751308
BOD    -0.8055507  0.19834122 -0.8365705 -0.37513077  1.0000000

3.相关系数的显著性检验

> cor.test(count,speed)

    Pearson‘s product-moment correlation

data:  count and speed
t = 2.5689, df = 6, p-value = 0.0424
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.03887166 0.94596455
sample estimates:
      cor
0.7237206

4.使用公式语法
> cor.test(~count+speed,data=fw3,subset = cover%in%c("open","closed"))

计算fw3数据框中cover分类变量的open和closed两个类别的相关系数检验。

============================================================

二、分类变量的关联性

分类变量间的关联性分析基本使用卡方检验,数据都为频数,卡方检验的命令及选项如下

技术分享

分类变量根据类别的多少,会分为几种情况:

1.两变量均为多分类
此时就是通常说的分析变量间的关联性,此时数据一般为数据框或矩阵结构的频数表,可直接使用chisq.test()命令进行处理,如:

> chisq.test(bird.df)
如果频数表中有频数为0,则会输出一个错误信息:Chi-squared approximation may be incorrect


2.两变量均为二分类

此时数据为2*2列联表,chisq.test()会默认使用耶茨连续性校正,可通过corrct=TRUE进行关闭,实际上,chisq.test()只会对2*2列联表使用耶茨校正。如果设定了使用蒙特卡洛方法,则不会再使用耶茨校正。

3.一个变量为二分类一个变量为多分类

这种情况下为卡方拟合优度检验,为保险起见,基本上都要设定rescale.p=TRUE,如果不指定P,则认为期望概率全部相等的情况。

> chisq.test(survey$new,p=survey$old,rescale.p = TRUE)

































































































以上是关于R语言之相关性分析的主要内容,如果未能解决你的问题,请参考以下文章

R - 相关性分析

R语言进行相关性分析

R语言—数据分析3

R语言相关性分析

r语言自相关acf是啥图

利用r语言相关性检验结果可能为0吗