r语言 相关性作图_R语言基础--简单相关性分析(1)

简单相关性分析(1)简介

1. 协方差和相关系数1.1 协方差

1.2 相关系数

2. 相关性分析

参考

简介

初次接触相关性分析,在摸索中前进,也顺便将笔记记录下来,未雨绸缪嘛!

简单来说,相关性分析就是衡量两个变量之间的依赖性强弱的一种统计学方法。相关系数可以用来描述定量变量之间的关系。相关系数的符号(±)表明关系的方向(正相关或负相关),其值的大小表示关系的强弱程度(完全不相关时为0,完全相关时为1)。

1. 协方差和相关系数

1.1 协方差

公式:

三种情况:

协方差的缺陷:

协方差不能反映斜率大小,只能反映斜率的正负。

协方差不能反映每一个观测靠近拟合线y=ax+b的程度。

协方差对数据更加敏感,示例如下:

1.2 相关系数

公式:

相关性绝对值为1和0的情况:

从图中可以明显看出,协方差和相关性之间的差异!

R语言中,cor()和cov()函数分别用来计算相关性系数和协方差。

2. 相关性分析

R可以计算多种相关系数,包括Pearson相关系数、Spearman相关系数、Kendall相关系数等,本次主要以Pearson相关系数进行探索,可视化以R基础函数为主。

2.1 产生多维正态随机矩阵,并转换为数据框

library(mvtnorm)

library(dplyr)

N

Sigma

means

dat

rmvnorm(N, mu, Sigma))

dat %

mutate(Z = as.character(rep(seq_along(means), each = N)))

names(dat)

knitr::kable(head(dat),align = "c")

X

Y

Z

12.725511

4.3195862

1

9.258908

1.9766176

1

13.177686

5.9841862

1

9.725297

0.5474356

1

8.842831

0.4525670

1

10.730692

2.1225672

1

2.2 X和Y的总体相关性分析和可视化

with(dat,cor(X,Y))

# [1] -0.7294138

par(mar = c(5,5,5,5))

with(dat,{

plot(X,Y,pch = 21,col = "black",bg = "gray")

lines(X,fitted(lm(Y ~ X)),lwd = 2,lty = 1,col = "red")

})

text(12,12,labels = paste("cor",round(with(dat,cor(X,Y)),digits = 2),sep = " = "))

2.2 X和Y在Z水平上的相关性分析和可视化

dat1 % group_by(Z) %>% summarise(cor = cor(X,Y))

dat1

# A tibble: 5 x 2

Z cor

1 1 0.738

2 2 0.772

3 3 0.743

4 4 0.847

5 5 0.783

tt

tt

par(mar = c(5,5,5,5))

with(dat,{

plot(X,Y,pch = 21,col = "black",bg = Z)

})

for(i in 1:5){

dat1 = dat[dat$Z==i,]

with(dat1,{

lines(X,fitted(lm(Y ~ X)),lwd = 2,lty = 1,col = Z)

text(13,14-i+1,labels = tt[i],col = dat1$Z)

})

可以看到,在对样本观测进行分组之后,数据呈现出的相关性和之前总体的X和Y相关性尽然不同。

cor.test()函数可以对相关性进行显著性检验。

with(dat,cor.test(X,Y))

#

Pearson's product-moment correlation

data: X and Y

t = -23.795, df = 498, p-value < 2.2e-16

alternative hypothesis: true correlation is not equal to 0

95 percent confidence interval:

-0.7679821 -0.6855744

sample estimates:

cor

-0.7294138

初次探索相关性分析,欢迎大家留言讨论!

##侵权请联系作者删除!

参考

[1]《R语言实战》

[2] StatQuest

你可能感兴趣的:(r语言,相关性作图)