R语言做相关性分析

时间:2021-06-27 17:04:12

衡量随机变量相关性的方法主要有三种:pearson相关系数,spearman相关系数,kendall相关系数:

1.       pearson相关系数,亦即皮尔逊相关系数

pearson相关系数用来衡量两个随机变量之间的相关性

R语言中求两个随机变量pearson相关系数的函数:

1//赋予a,b向量值

2a<-c(1,2,3)

3b<-c(11,12,14)

4

5//计算pearson相关系数

6cor.test(a,b,method="pearson")

结果

Pearson's product-moment correlation

data:  a and b

t = 5.1962, df = 1, p-value = 0.121

alternative hypothesis: true correlation is not equal to 0

sample estimates:

cor

0.9819805

总结

P=0.121, cor=0.9819805

2.       spearman相关系数,亦即秩相关系数

spearman和kendall都是等级相关系数,亦即其值与两个相关变量的具体值无关,而仅仅与其值之间的大小关系有关。

spearman相关系数,亦即秩相关系数,根据随机变量的等级而不是其原始值衡量相关性的一种方法。

spearman相关系数的计算可以由计算pearson系数的方法,只需要把原随机变量中的原始数据替换成其在随机变量中的等级顺序即可:

(1,10,100,101)替换成(1,2,3,4)

(21,10,15,13)替换成(4,1,3,2)

然后求替换后的两个随机变量的pearson相关系数即可.

R语言中求两个随机变量的spearman相关系数的函数:

1 //赋予a,b向量值
2 a<-c(1,10,100,101)
3 b<-c(21,10,15,13)
4
 5 //计算spearman相关系数
6 cor.test(a,b,method="spearman")
7 rho=-0.4
8
 9 //用替换后的向量的pearson相关系数进行验证
10 e<-c(1,2,3,4)
11 f<-c(4,1,3,2)
12 cor.test(e,f,method="pearson")
13 cor=-0.4

结果

Spearman's rank correlation rho

data:  a and b

S = 14, p-value = 0.75

alternative hypothesis: true rho is not equal to 0

sample estimates:

rho

-0.4

总结 p=0.75,rho=0.4

3.       kendall相关系数,亦即和谐系数

kendall相关系数又称作和谐系数,也是一种等级相关系数

对于X,Y的两对观察值Xi,Yi和Xj,Yj,如果Xi并且Xj或者Xi>Yi并且Xj>Yj,则称这两对观察值是和谐的,否则就是不和谐的.

R语言中计算kendall相关系数的函数:

1 //赋予a,b向量值
2 a<-c(1,2,3)
3 b<-c(1,3,2)
4
5 //计算kendall相关系数
6 cor.test(a,b,method="kendall")
7 tau=0.3333333333
结果

Kendall's rank correlation tau

data:  a and b

T = 2, p-value = 1

alternative hypothesis: true tau is not equal to 0

sample estimates:

tau

0.3333333

总结:p=1,tau=0.3333333

来源:http://blog.sina.com.cn/s/blog_5d188bc40102vuvj.html