说到相关分析,我们都知道是用来观察变量之间相关性的一种分析方法,而得出的结果很难用表格形象展示,这个时候我们的相关性图形就派上了用场,那么接下来为大家介绍R语言情景下用mtcars数据集和corrplot包绘制相关性图形的方法:
mtcars数据展示
mtcars数据说明:数据的第一列为各种汽车型号,后续数据为汽车的多个性能参数。
在相关性计算函数cor()中有三种算法来计算相关性,其中:
Pearson相关系数:适用于连续型变量,且变量服从正态分布的情况,为参数性的相关系数。
Spearman等级相关系数:适用于连续型及分类型变量,为非参数性的相关系数。
Kendall秩相关系数:适用于定序变量或不满足正态分布假设的等间隔数据。
小鹿本次采用pearson算法来计算相关系数
corr<-cor(mtcars,method="pearson")
相关性范围为[-1,+1],绝对值越大,表示相关性越强;相关系数的正负体现相关的方向,负值代表两变量呈负相关,正值代表变量间正相关。
相关性展示
参数的相关性结果有了,接下来就是用图形展示相关性的时候了:
首先是包的安装和载入:
install.packages("corrplot")
library("corrplot")
绘制相关性图:
corrplot(corr)
可以看到图形沿左上到右下的位置对称,各变量自身相关性为1,但相关系数并没有直接展示,接下来需要对上图做调整。
图像调整:
corrplot(corr,type="upper", #保留右上部分图形
addCoef.col="black",#添加相关系数,颜色为黑色
diag=F)#去掉自身相关
现在图形就比较符合我们的审美了,并且可以清楚的看到正相关在0.8以上的变量有:
cyl与disp、cyl与hp、disp与wt,即:气缸数量(cyl)和马力(hp)与排量(disp)正相关,并且排量(disp)越大的汽车越重(wt),这些信息都和我们的认知相符。
图形优化
方形调整:
col <- colorRampPalette(c("#BB4444", "#EE9988", "#FFFFFF", "#77AADD", "#4477AA"))
corrplot(corr,
method="color",#调整为正方形
col=col(200), #颜色调整
type="upper", #保留右上部分
order="hclust", #层次聚类
addCoef.col = "black", #添加相关系数
tl.col="black", tl.srt=45, #修改字体
diag=FALSE #去除自身相关)
现在小伙伴们还能从图上发现哪些信息呢?是否表示相关性的颜色跟我们常用有些不一样?
更多参数试用
我们的图形现在是用蓝色表示正相关,红色表示负相关,而通常情况下我们是习惯用红色表示正值、蓝色表示负值,大家能猜到怎么对参数做修改嘛?
col <- colorRampPalette(c("#4477AA", "#77AADD", "#FFFFFF", "#EE9988", "#BB4444"))
corrplot(corr,
method="color",#调整为正方形
col=col(200), #颜色调整
type="upper", #保留右上部分
order="hclust", #层次聚类
addCoef.col = "black", #添加相关系数
tl.col="black", tl.srt=45, #修改字体
diag=FALSE #去除自身相关)
运用R语言这样就可以做到了,聪明的你也想到了吗?
还可以将图形换成饼图呢?我们来试试把图中的正方形换成饼图:
corrplot(corr,
method="pie",#我们只更换method方法就可以实现
col=col(200),
type="upper",
order="hclust",
addCoef.col = "black",
tl.col="black", tl.srt=45,
diag=FALSE)
更多的优化参数和图例,大家可以到corrplot的介绍界面查看哦
转自:鹿明生物
- 本文固定链接: https://maimengkong.com/image/1076.html
- 转载请注明: : 萌小白 2022年6月30日 于 卖萌控的博客 发表
- 百度已收录