前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >批量相关分析,听说你找好久了?

批量相关分析,听说你找好久了?

作者头像
用户6317549
发布2020-04-16 16:43:47
2.3K0
发布2020-04-16 16:43:47
举报
文章被收录于专栏:科研猫
相关性散点图是展

基本概念

相关关系:当一个或几个相互联系的变量取一定的数值时,与之相对应的另一变量的值虽然不确定,但它仍按某种规律一定的范围内变化。变量间的这种相互关系,称为具有不确定性的相关关系。

按程度分类

⑴完全相关:两个变量之间的关系,一个变量的数量变化由另一个变量的数量变化所惟一确定,即函数关系。

⑵不完全相关:两个变量之间的关系介于不相关和完全相关之间。

⑶不相关:如果两个变量彼此的数量变化互相独立,没有关系。

按方向分类

⑴正相关:两个变量的变化趋势相同,从散点图可以看出各点散布的位置是从左下角到右上角的区域,即一个变量的值由小变大时,另一个变量的值也由小变大。

⑵负相关:两个变量的变化趋势相反,从散点图可以看出各点散布的位置是从左上角到右下角的区域,即一个变量的值由小变大时,另一个变量的值由大变小。

  • 相关系数

相关系数是最早由统计学家卡尔·皮尔逊设计的统计指标,是研究变量之间线性相关程度的量,一般用字母 r 表示。由于研究对象的不同,相关系数有多种定义方式,较为常用的是皮尔逊相关系数。

相关表和相关图可反映两个变量之间的相互关系及其相关方向,但无法确切地表明两个变量之间相关的程度。相关系数是用以反映变量之间相关关系密切程度的统计指标。相关系数是按积差方法计算,同样以两变量与各自平均值的离差为基础,通过两个离差相乘来反映两变量之间相关程度;着重研究线性的单相关系数。

绘图实例解读

了解了原理,下面我们来看看相关性散点图。先来看看我们所用的测试数据:

这个数据非常简单,为了能够给大家演示批量的相关性分析,我们在这里制作了这样一个测试数据,首先因变量有6个,自变量1个,我们要做的就是分别计算这6个因变量和自变量的相关性。好了,看了数据,我们再来看看图,大家在文章中见到的比较高级的散点图一般长这样:

图上有什么呢?散点,趋势线,95%置信区间,相关系数,p值。好,接下来让我们自己来画一画!在这里我们用的是ggpubr包,这个是一个极力推荐的绘图包,希望大家能够收藏。

代码语言:javascript
复制
#首先加载包,准备好数据
library(ggpubr)
#读入数据
data<-read.csv("data.csv",header=T,row.names=1)
#画图,一句话就搞定
ggscatter(data,x="x",y="t3",
size=3, 
rug=T, 
add="reg.line",
conf.int=T,
conf.int.level=0.95,
cor.coef=T,
cor.method="pearson",
ggtheme=theme_pubr()
)
代码语言:javascript
复制
#再看看其他变量
ggscatter(data,x="x",y="t1",
size=3, 
rug=T, 
add="reg.line",
conf.int=T,
conf.int.level=0.95,
cor.coef=T,
cor.method="pearson",
ggtheme=theme_pubr()
)

发现上面的代码是如何工作的了吗?只要改下参数y的变量名就可以了(这里我们可以分别定义y为t1,t2,t3等),是不是很简单呢!但是这时候你可能要问了,要是我想进行批量的相关分析,而且把这么多个散点图拼在一起,比如文件中的六个变量。按照上面的方法,岂不是要做6张图,还得导出矢量图,然后用AI拼接在一起吗?这显然工作量就大了,而且,这似乎和用Graphpad也没啥区别嘛。怎么办呢?我们当然不能把大量的时间浪费在拼图(美图秀秀)上,那么这个问题让我来帮你解决吧!

代码语言:javascript
复制
library(cowplot)
colnames(data)
names = c("t1", "t2", "t3", "t4", "t5", "t6")

#创建plot列表
plist<-list()
#循环
for(i in names){
  p<-ggscatter(data,x="x",y=i,
               size=1, 
               rug=T, 
               add="reg.line",
               conf.int=T,
               conf.int.level=0.95,
               cor.coef=T,
               cor.method="pearson",
               ggtheme=theme_pubr()
  )
  plist[[i]]<-p
}

plot_grid(plotlist=plist,labels = LETTERS[1:length(names)])

在这里,我们用到了一个比较神奇的R包,叫做cowplot,它会帮我们自动拼图,自动排版,非常方便,直接提交一个图形的列表就可以了,是不是一下子就搞定了呢!

此外,在实际科研中大家可能还会有这样一个需求,比如我想要看下某一个基因在不同亚组(比如上面的t1,t2, t3)中表达是不是都是正相关的,那我该怎么画图呢?一种做法就是把数据分开,分别画几个图(t1, t2, t3), 就像上面的图形一样。不过,如果要比较不同的分组,绘制在不同的图形中,可能比较起来会不太方便。当然啦,大家也可以其他的方法啦,比如我可能会选择用这种表达方式:

是不是一目了然呢!赶快联系客服小姐姐获取代码吧!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科研猫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 按程度分类
  • 按方向分类
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档