第 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 提示
有关生成数值关联表的更多信息,查看回归和相关分析。