R 计算变量之间的相关性

  • Post author:
  • Post category:其他


本文介绍相关性,以及如何在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 版权协议,转载请附上原文出处链接和本声明。