Skip to main content
 首页 » 编程设计

R语言计算变量之间的相关性

2022年07月19日127mate10pro

本文介绍相关性,以及如何在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) 
 

在这里插入图片描述


本文参考链接:https://blog.csdn.net/neweastsun/article/details/122285222
阅读延展