说到相关分析,我们都知道是用来观察变量之间相关性的一种分析方法,而得出的结果很难用表格形象展示,这个时候我们的相关性图形就派上了用场,那么接下来为大家介绍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://cran.rproject.org/web/packages/corrplot/vignettes/corrplot-intro.html
欧易/鹿明生物易明学院更多课程正在更新中,请各位老师关注鹿明生物公众号,即可查询动态~~
猜你还想看
END |