r语言相关性分析_R语言 | 相关性分析与酷炫图(代码+讲解)

大家好,我是菜鸟君。最近在B站后台和QQ群被小伙伴们催到崩溃。感谢各位的鞭笞,不是,充满爱意的提醒。今天就来说说R语言怎么进行相关性分析。

首先,安装两个R包,其中“corrplot”包就能画出好多酷炫的相关性矩阵图。“pheatmap”包是用来画热力图的。

install.packages("corrplot")install.packages("pheatmap")library("pheatmap")library("corrplot")

我们调用R里自带的数据集,今天调用的这个是关于汽车道路测试的各项指标数据,名叫mtcars。这个数据集比较规整,数据均为数值型,有兴趣的小伙伴可以用它来做各种统计分析的练习。

x = mtcars  #将数据集命名为xsummary(x) #查看数据分布情况dim(x) #查看行列数

1a0cb33cbc7c700912d1b1ad1f743ca4.png

dim的结果里,第一个数是行数,第二个数是列数,也就是这数据里有32种车,11个道路测试指标。

我们先算一下cov,这个函数计算的是列与列的协方差,值越大,说明变化趋势越一致。

cov(x)pheatmap::pheatmap(cov(x)) #热力图

6e7c447f408ad49f32f364a7626649a5.png

这个图由于有一个变量的协方差过大(超过15000),因此,衬托的其他部分数值过小,大部分都是蓝色了。这不是个合理的热力图。

接下来,我们求一下列之间的相关性系数,这个系数越接近0,表示列与列之间越不相关。用pheatmap来展示热力图,颜色越接近红色,相关系数越大。

cor(x)pheatmap::pheatmap(cor(x))  #热力图

7fdf42693ed161ff25517dd3a93bb66c.png

这个热力图就看起来比较“五彩斑斓”,其中方格的颜色越红,说明两列正相关系数越大。颜色越蓝,说明负相关系数越大。颜色较浅的部分就是相关系数较小,接近于0。

此外,pheatmap图还有个优势,那就是可以同时做层次聚类的树图。这使得它在生物信息领域大放异彩,可以直观的展示基因组数据之间的关系。从顶部与左侧的聚类树图中,我们还可以看出这11个指标大致可聚为2大类。这是一般的相关分析图办不到的。

接下来,我们用corrplot来展示一下相关性矩阵图。

corrplot(cor(x)) #暂不设置method,默认是圆圈

52d9387dc3af5699da3a43e7176d8910.png

这个图大家可能在很多文献、公众号里都见过,千万别觉着它有多复杂!其实用corrplot一行命令就搞定了。

如果不想要圆圈,咱们还有很多种选择,比如饼图。

corrplot(cor(x),method="pie") #饼图

beb5d44fed5c336034328d303c154ca3.png

这个图看起来比圆圈图的信息更直观,用饼图面积大小+颜色深浅来表示相关系数大小。

想不想更直观一点?我们可以直接在图中加上相关性系数的数值。

corrplot(cor(x),method="color",addCoef.col="grey") #用颜色显示,显示相关系数

00090a754a69b9e05aeb66f237e9c573.png

这样的一张相关性分析图包含了颜色深浅+相关性系数大小,放到论文里那肯定是亮点啊。

也许有小伙伴对颜色搭配有进一步的要求,运用colorRampPalette这个功能就能轻松设置啦!

#设置颜色,我选的海军蓝+白色+砖红col=colorRampPalette(c("navy", "white", "firebrick3")) 

至于具体咋选颜色、R里哪些配色方案好看,咱们改天专门说说。

然后咱们再用这个设置后的颜色,来个挑战一点的,画相关性矩阵三角矩阵图。上三角是圆圈大小,下三角显示相关性系数,同时颜色上一一对应。

其中,颜色col(10)的意思是在设置的三种颜色范围内,取深浅不同的10个颜色,对应相关系数大小。

#上面画个三角矩阵corrplot(cor(x),type="upper",col=col(10),tl.pos="d") #tl.pos="d"不显示各列名字#下面补充系数corrplot(cor(x),add=TRUE, type="lower", method="number",diag=FALSE,tl.pos="n", cl.pos="n",col=col(10))

0ed9c9dfebd7d316a5c9b3f5d1a6e842.png

这样的相关性矩阵图,谁看了不点赞?基本上汇集了我们想要展示的各项特征。是不是比SPSS出图美多了?(实话实说,SPSS大牛别喷我)

这期关于R语言相关性酷炫图的绘制就介绍到这啦~各位还想看啥内容的数据分析,欢迎给我们留言,有啥问题欢迎到QQ群互动交流,一起进步!

下期再见,嗷。

记得点一下“在看

QQ群:83837564

B站UP主:谁说菜鸟不会数据分析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值