作者:李誉辉
四川大学在读研究生
简介:
相关图是基于相关系数矩阵绘制的图。
通常是将1个变量映射到多个视觉元素,所以看起来很花哨。
如果是椭圆:
则椭圆的色相对应相关性的正负,
颜色深浅对应相关性绝对值大小,越深则绝对值越大。
椭圆的形状对应相关性绝对值大小,默认越扁,则相关性绝对值越大。
如果是圆,则圆的面积对应相关性大小,
如果是扇形,则扇形的弧度对应相关性大小。
相关系数:
自变量X和因变量Y的协方差/标准差的乘积。也可以反映两个变量变化时是同向还是反向,
如果同向变化就为正,反向变化就为负。
它消除了两个变量变化幅度的影响,而只是单纯反应两个变量每单位变化时的相似程度。
表达式:
cor(x, y = NULL, use = "everything", method = c("pearson", "kendall", "spearman"))
参数解释:
x 为数字型向量,矩阵或数据框,表示自变量
y 表示应变量,默认y=x
2个向量计算得到一个值,n个变量组成的数据框计算得到长度为n*n维度的矩阵。
绘制相关图主要涉及2个包:corrplot
, ggcorrplot
,后一个是ggplot2
的扩展包。
计算相关系数矩阵:
1height <- c(6, 5.92, 5.58, 5.83)
2wei <- c(20, 15, 7, 12)
3cor(height, exp(height))
4cor(height, wei)
5ncol(mtcars)
6dim(cor(mtcars)) #
7class(cor(mtcars))
8colnames(cor(mtcars))
9row.names(cor(mtcars))
10
11# 展示系数矩阵,保留3位小数,
12DT::datatable(round(cor(mtcars), 3),
13 options = list(pageLength = 11)) # 显示11行
1## [1] 0.9983074
2## [1] 0.9628811
3## [1] 11
4## [1] 11 11
5## [1] "matrix"
6## [1] "mpg" "cyl" "disp" "hp" "drat" "wt" "qsec" "vs" "am" "gear"
7## [11] "carb"
8## [1] "mpg" "cyl" "disp" "hp" "drat" "wt" "qsec" "vs" "am" "gear"
9## [11] "carb"
(原图可交互)
corrplot包绘图:
结果按行和按列排是一样的,说明,只要cor(x,y)
中,只要x=y
,按行排和按列排没有区别。
1library(corrplot)
2corrplot(cor(mtcars))
1library(ggplot2)
2library(ggcorrplot)
3
4ggcorrplot(cor(mtcars), method="circle")
1.1
语法与参数
语法:
1corrplot(corr,
2 method = c("circle", "square", "ellipse", "number", "shade", "color", "pie"),
3 type = c("full", "lower", "upper"), add = FALSE,
4 col = NULL, bg = "white", title = "", is.corr = TRUE,
5 diag = TRUE, outline = FALSE, mar = c(0,0,0,0),
6 addgrid.col = NULL, addCoef.col = NULL, addCoefasPercent = FALSE,
7 order = c("original", "AOE", "FPC", "hclust", &