第 11 章 其他有趣图形

11.1 相关矩阵

11.1.1 问题

你想要可视化多元变量间的相关性强度。

11.1.2 方案

假设所要分析的数据(如下):

# 设置伪随机数种子
set.seed(955)
# 生成符合正态分布的20个随机数
vvar <- 1:20 + rnorm(20, sd = 3)
wvar <- 1:20 + rnorm(20, sd = 5)
xvar <- 20:1 + rnorm(20, sd = 3)
yvar <- (1:20)/2 + rnorm(20, sd = 10)
zvar <- rnorm(20, sd = 6)

# 使用向量生成数据框(向量名为列名)
data <- data.frame(vvar, wvar, xvar, yvar, zvar)
head(data)
#>     vvar   wvar  xvar    yvar   zvar
#> 1 -4.252  5.122 16.02 -15.156 -4.087
#> 2  1.702 -1.323 15.84 -24.064  3.468
#> 3  4.323 -2.157 19.86   2.307 -3.045
#> 4  1.781  0.788 17.65   2.565  1.449
#> 5 11.537 -1.308 10.93   9.601  2.762
#> 6  6.672  2.014 15.24  -3.466  5.750

可视化上述数据:

# 导入以椭圆表征相关性强度的分析包
library(ellipse)
#> 
#> Attaching package: 'ellipse'
#> The following object is masked from 'package:car':
#> 
#>     ellipse
#> The following object is masked from 'package:graphics':
#> 
#>     pairs

# 生成相关矩阵表
ctab <- cor(data)
# 表中数据保留两位小数
round(ctab, 2)
#>       vvar  wvar  xvar  yvar  zvar
#> vvar  1.00  0.61 -0.85  0.75 -0.21
#> wvar  0.61  1.00 -0.81  0.54 -0.31
#> xvar -0.85 -0.81  1.00 -0.63  0.24
#> yvar  0.75  0.54 -0.63  1.00 -0.30
#> zvar -0.21 -0.31  0.24 -0.30  1.00

# 设置简化边幅并绘制相关性图
plotcorr(ctab, mar = c(0.1, 0.1, 0.1, 0.1))

# 使用颜色表征相关性强度
colorfun <- colorRamp(c("#CC0000", "white", "#3366CC"), 
  space = "Lab")
plotcorr(ctab, col = rgb(colorfun((ctab + 1)/2), maxColorValue = 255), 
  mar = c(0.1, 0.1, 0.1, 0.1))

11.1.2.1 提示

有关生成数值关联表的更多信息,查看回归和相关分析