在R中,我们如何对变量间的相关强度进行可视化?
假设我们有如下所示数据集:
- set.seed(955)
- 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.252354 5.1219288 16.02193 -15.156368 -4.086904
- #> 2 1.702318 -1.3234340 15.83817 -24.063902 3.468423
- #> 3 4.323054 -2.1570874 19.85517 2.306770 -3.044931
- #> 4 1.780628 0.7880138 17.65079 2.564663 1.449081
- #> 5 11.537348 -1.3075994 10.93386 9.600835 2.761963
- #> 6 6.672130 2.0135190 15.24350 -3.465695 5.749642
接下来我们来绘制能直观反映相关程度的图像:
- library(ellipse)
-
- # 构建相关系数表
- 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))


雷达卡






京公网安备 11010802022788号







