欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞定!
对商业智能BI、大数据分析挖掘、机器学习,python,R等数据领域感兴趣的同学加微信:tstoutiao,邀请你进入数据爱好者交流群,数据爱好者们都在这儿
作者:李誉辉 四川大学在读研究生
简介:
相关图是基于相关系数矩阵绘制的图。
通常是将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),
13options = 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"
![3901436-6e160f3a87a59ffd](https://i-blog.csdnimg.cn/blog_migrate/d6c3ae86af23dee8f4f62dc027f3ff6b.webp?x-image-process=image/format,png)
(原图可交互)
corrplot包绘图:
结果按行和按列排是一样的,说明,只要cor(x,y)中,只要x=y,按行排和按列排没有区别。
1library(corrplot)
2corrplot(cor(mtcars))
![3901436-771f249313eca5b0](https://i-blog.csdnimg.cn/blog_migrate/a917deab3c319d7c67015277be8a1ea2.webp?x-image-process=image/format,png)
1library(ggplot2)
2library(ggcorrplot)
3
4ggcorrplot(cor(mtcars), method="circle")
![3901436-11182dfd6b0c122f](https://i-blog.csdnimg.cn/blog_migrate/20e7d82fffd25500d8d40096437385e7.webp?x-image-process=image/format,png)
1.corrplot包
1.1
语法与参数
语法:
1corrplot(corr,
2method = c("circle","square","ellipse","number","shade","color","pie"),
3type = c("full","lower","upper"), add =FALSE,
4col =NULL, bg ="white", title ="", is.corr =TRUE,
5diag =TRUE, outline =FALSE, mar = c(0,0,0,0),
6addgrid.col =NULL, addCoef.col =NULL, addCoefasPercent =FALSE,
7order = c("original","AOE","FPC","hclust","alphabet"),
8hclus