首页 > 代码库 > R语言之相关性分析

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 = http://www.mamicode.com/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=http://www.mamicode.com/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语言之相关性分析