本文介绍相关性,以及如何在R中计算多个变量之间的相关性。
相关性
相关性是统计学中术语,它使用协方差法来衡量向量之间的相关性程度。
数学上公式为:
- x 表示数据向量x
- y 表示数据向量y
- x 拔 表示x的均值
- y 拔 表示y的均值
R 中使用cor函数计算相关性。语法如下:
cor(x, y, method)
x 和 y 表示数据向量,method 指定计算相关性的方法,默认为
pearson
。
皮尔逊相关系数是量化两个变量之间的相关性,即两个变量的线性关系,其值在-1到1之间:
- -1 表示两个变量完全负相关
- 0 表示两个变量没有相关性
- 1 表示两个变量完全正相关
示例:
首先定义数据框,然后我们判断各个变量的相关性:
# library(pacman)
# p_load(devtools)
# p_load(DBI)
library(dplyr)
df <- tibble(a = c(2, 3, 3, 5, 6, 9, 14, 15, 19, 21, 22, 23),
b = c(23, 24, 24, 23, 17, 28, 38, 34, 35, 39, 41, 43),
c = c(13, 14, 14, 14, 15, 17, 18, 19, 22, 20, 24, 26),
d = c(6, 6, 7, 8, 8, 8, 7, 6, 5, 3, 3, 2))
## 计算a , b 之间的相关性
cor(df$a, df$b)
# [1] 0.9279869
## 计算多个变量之间的相关性
# cor(df[,-1])
cor(df[,c(2,3,4)])
# b c d
# b 1.0000000 0.8942139 -0.7917973
# c 0.8942139 1.0000000 -0.8063549
# d -0.7917973 -0.8063549 1.0000000
cor(df)
# a b c d
# a 1.0000000 0.9279869 0.9604329 -0.7915488
# b 0.9279869 1.0000000 0.8942139 -0.7917973
# c 0.9604329 0.8942139 1.0000000 -0.8063549
# d -0.7915488 -0.7917973 -0.8063549 1.0000000
## 仅数值列计算相关性
# cor(df[,unlist(lapply(df, is.numeric))])
cor(df[, sapply(df, is.numeric)])
# a b c d
# a 1.0000000 0.9279869 0.9604329 -0.7915488
# b 0.9279869 1.0000000 0.8942139 -0.7917973
# c 0.9604329 0.8942139 1.0000000 -0.8063549
# d -0.7915488 -0.7917973 -0.8063549 1.0000000
相关性可视化
下面的代码展示了如何创建成对变量的相关性可视化图,让你快速浏览每对变量之间的关系:
#load psych package
library(psych)
#create pairs plot
pairs.panels(df)
版权声明:本文为neweastsun原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。