相关性分析与酷炫图
今天就来说说R语言怎么进行相关性分析。
首先,安装两个R包,其中“corrplot”包就能画出好多酷炫的相关性矩阵图。“pheatmap”包是用来画热力图的。
我们调用R里自带的数据集,今天调用的这个是关于汽车道路测试的各项指标数据,名叫mtcars。这个数据集比较规整,数据均为数值型,有兴趣的小伙伴可以用它来做各种统计分析的练习。
dim的结果里,第一个数是行数,第二个数是列数,也就是这数据里有32种车,11个道路测试指标。
我们先算一下cov,这个函数计算的是列与列的协方差,值越大,说明变化趋势越一致。
这个图由于有一个变量的协方差过大(超过15000),因此,衬托的其他部分数值过小,大部分都是蓝色了。这不是个合理的热力图。
接下来,我们求一下列之间的相关性系数,这个系数越接近0,表示列与列之间越不相关。用pheatmap来展示热力图,颜色越接近红色,相关系数越大。
这个热力图就看起来比较“五彩斑斓”,其中方格的颜色越红,说明两列正相关系数越大。颜色越蓝,说明负相关系数越大。颜色较浅的部分就是相关系数较小,接近于0。
此外,pheatmap图还有个优势,那就是可以同时做层次聚类的树图。这使得它在生物信息领域大放异彩,可以直观的展示基因组数据之间的关系。从顶部与左侧的聚类树图中,我们还可以看出这11个指标大致可聚为2大类。这是一般的相关分析图办不到的。
接下来,我们用corrplot来展示一下相关性矩阵图。
corrplot(cor(x)) #暂不设置method,默认是圆圈
这个图大家可能在很多文献、公众号里都见过,千万别觉着它有多复杂!其实用corrplot一行命令就搞定了。
如果不想要圆圈,咱们还有很多种选择,比如饼图。
这个图看起来比圆圈图的信息更直观,用饼图面积大小+颜色深浅来表示相关系数大小。
想不想更直观一点?我们可以直接在图中加上相关性系数的数值。
这样的一张相关性分析图包含了颜色深浅+相关性系数大小,放到论文里那肯定是亮点啊。
也许有小伙伴对颜色搭配有进一步的要求,运用colorRampPalette这个功能就能轻松设置啦!
然后咱们再用这个设置后的颜色,来个挑战一点的,画相关性矩阵三角矩阵图。上三角是圆圈大小,下三角显示相关性系数,同时颜色上一一对应。
其中,颜色col(10)的意思是在设置的三种颜色范围内,取深浅不同的10个颜色,对应相关系数大小。
这样的相关性矩阵图,谁看了不点赞?基本上汇集了我们想要展示的各项特征。是不是比SPSS出图美多了?(实话实说,SPSS大牛别喷我)
这期关于R语言相关性酷炫图的绘制就介绍到这啦~各位还想看啥内容的数据分析,欢迎给我们留言,下期再见。