为了可视化两变量或者多个变量之间的相关关系,我们可以绘制相关图,
再做相关图的基础上再介绍一种用来查看数据分布的skimr包
此包在查看数据的结尾可以显示直方图,可以更加简洁的看到数据的分布
> skim(data)
-- Data Summary ------------------------
Values
Name data
Number of rows 418
Number of columns 7
_______________________
Column type frequency:
numeric 7
________________________
Group variables None
-- Variable type: numeric ---------------------------------------
# A tibble: 7 x 11
skim_variable n_missing complete_rate mean sd p0 p25
* <chr> <int> <dbl> <dbl> <dbl> <dbl> <dbl>
1 SQ1 0 1 2.12 1.21 0 1
2 SQ2 0 1 1.58 1.37 0 0
3 SQ3 0 1 1.82 1.27 0 1
4 SQ4 0 1 1.50 1.21 0 1
5 SQ5 0 1 1.41 1.28 0 0
6 SQ6 0 1 1.81 1.39 0 1
7 Aggregata 0 1 10.2 6.36 0 6
p50 p75 p100 hist
* <dbl> <dbl> <dbl> <chr>
1 2 3 4 ▂▃▇▃▃
2 2 2 4 ▇▅▇▃▃
3 2 3 4 ▅▆▇▃▃
4 1 2 4 ▆▇▇▃▂
5 1 2 4 ▇▆▆▂▂
6 2 3 4 ▇▆▇▅▅
7 10 14 24 ▆▇▇▃▃
接下来我们正式开始绘制相关系数图
开始之前要下载corrplot包
绘制相关图使用的corrplot包
以下为代码
library(corrplot)
library(skimr)#此包主要用来查看数据分布
library(readr)
data<-read.csv(file.choose())
skim(data)
## 可视化相关系数
data_cor <- cor(data)
corrplot.mixed(data_cor,tl.col="black",tl.pos = "d",number.cex = 0.8)
data<-data.matrix(data) #将数据进行矩阵变换
M<-cor(data) #计算相关系数
par(ask=TRUE,cex=0.8)
# ask=TRUE表示后边的图形在这个设定的面板上进行,cex=0.8表示数值大小为0.8倍
plot1<-corrplot(M,method="number",col="black",tl.col = "black")
#仅计算相关系数的数值,不添加颜色信息
col1<-colorRampPalette(c("#7F0000","red","#FF7F00","yellow",
"white","cyan","#007FFF","blue",
"#00007F"))
#设定基础颜色(具体符合意思在参考资料)
corrplot(M,method="color",col=col1(20),cl.length=21,order="AOE",
addCoef.col ="grey")
参数解释:method可以有7种,circle(圆)、sequare(正方形)、ellipse(椭圆)、number(数字)、shade(阴影)、color(颜色)、pie(扇形) ,col=col(20)表示不同颜色的差别量,数字越大越容易区别不同相关性数值之间的差别,cl.length=21表示图例上标尺的密度为21, order="AOE"按照特征向量的夹角顺序排列(AOE:angular order of the eigenvectors,具体内容超出本文范围,不在讨论之列,addCoef.col="grey"表示图上相关性数字的颜色为灰色)
corrplot(M,method="color",col=col1(20),cl.length=21,order="AOE",
addCoef.col="grey",cl.pos="n") #cl.pos="n"表示没有颜色标签
corrplot(M,method="color",col=col1(20),cl.length=21,order="AOE",
addCoef.col="grey",cl.pos="n",tl.pos="n") #tl.pos="n" 表示没有文本标签
col2<-colorRampPalette(c("#67001F","#B2182B", "#D6604D",
"#F4A582", "#FDDBC7", "#FFFFFF",
"#D1E5F0", "#92C5DE", "#4393C3",
"#2166AC", "#053061"))
corrplot(M,method="color",col=col2(20),cl.length=21,order="AOE",
addCoef.col="grey",tl.col = "black",tl.cex = 1)
col3 <- colorRampPalette(c("red", "white", "blue"))
corrplot(M,method="color",col=col3(20),cl.length=21,order="AOE",
addCoef.col="grey",,tl.col = "black",tl.cex = 1)
col4 <- colorRampPalette(c("#7F0000","red","#FF7F00","yellow",
"#7FFF7F", "cyan", "#007FFF",
"blue","#00007F"))
corrplot(M,method="color",cl.length=10,order="AOE",col=col4(20),
addCoef.col="grey",tl.col = "black",tl.cex = 1,cl.lim = c(0,1),cl.ratio = 0.1)#cl.lim表示颜色标签的范围
在这里使用colorRampPalette()函数调制基础色彩的时候,括号中放置颜色的顺序,默认为相关性从低到高的顺序,也就是说相关性越高的版块使用的颜色越靠后。所以在调制颜色时,根据自己的喜好排列颜色的顺序。
以上就是今天的内容!!!