两个变量之间的协方差就是(图)相关关系(组图)

本期内容速览:

相关性剖析方式选择Pearson相关&Spearman相关偏相关相关关系可视化第一部份:相关性剖析方式选择

相关剖析是研究两种或两种以上随机变量之间的关系的一种统计学方式,可以剖析变量间的关系情况以及关系强弱程度等,如臂展和体重之间的相关性。

对于不同类型的变量,需选择合适的相关性剖析方式,我们常用的相关性剖析方式及适用条件如下:

1.1Pearson相关系数

最常用,又称积差相关系数,适用于连续变量之间的相关性剖析;使用条件:变量都需符合正态分布

1.2Spearman秩相关系数

适宜富含有序分类变量或则全部是有序分类变量的相关性剖析;但其属于非参数方式,检验效能较Pearson系数低

1.3无序分类变量的相关性

最常用的为卡方检验,用于评价两个无序分类变量的相关性(检验两组数据是否具有统计学差别,因而剖析诱因之间的相关性)

第二部份:Pearson相关&Spearman相关

2.1相关系数估算

R中可估算多种相关系数,其中最常用的包括Pearson,Spearman和Kendall相关系数,最基础的,cor(x=,y=,use=,method=)可用于估算相关系数;cov(x=,y=,use=,method=)可用于估算协残差。

*相关系数:反映变量间相关关系的方向和程度,取值-1~1。

*协残差:在机率论和统计学中用于评判两个变量的总体偏差(假如两个变量的变化趋势一致,这么两个变量之间的协残差就是正值;假如两个变量的变化趋势相反,这么两个变量之间的协残差就是负值)。关于协残差,倘若深入学习和理解可参考该博客的讲解↓

“”

①两变量相关性剖析

cor(x=,y=,use=,method=)cov(x=,y=,use=,method=)

参数注释:

x:变量x

y:变量y

use:指定缺位数据的处理方法(all.obs–遇到缺位数据晨报错、everything–遇到缺位数据时相关系数设为missing、complete.obs–遇到缺位数据执行行删掉;默认”everything”)

method:指定相关系数类型(”pearson”,“spearman”,“Kendall”;默认”pearson”)

②相关性矩阵

cor(x=,use=,method=)cov(x=,use=,method=)

参数注释:

x:矩阵或数据框

use:指定缺位数据的处理方法(all.obs–遇到缺位数据晨报错、everything–遇到缺位数据时相关系数设为missing、complete.obs–遇到缺位数据执行行删掉;默认”everything”)

method:指定相关系数类型(”pearson”,“spearman”,“Kendall”;默认”pearson”)

2.2相关系数的明显性检验

探求变量之间的相关性,在估算出相关系数后还需进行明显性检验。常用的原假定H0为变量间不相关,即相关系数为0。

①两变量相关性剖析的明显性检验

cor.test(x,y,alternative=c(“two.sided”,”less”,”greater”),method=,conf.level=0.95)

参数注释:

x:变量x

y:变量y

alternative:指定一侧/单侧检验

method:指定相关系数类型(”pearson”,“spearman”,“Kendall”;默认”pearson”)

conf.level:设置检验水准

②相关性矩阵的明显性检验

library(psych)corr.test(x,method=)

参数注释:

x:矩阵或数据框

method:指定相关系数类型(”pearson”,“spearman”,“Kendall”;默认”pearson”)

2.3相关剖析实例演习

本文举例使用的数据为20个基因的抒发数据,可在公众号中发送“cor2”获取文件(“cor2.Rdata”)。原始数据大体情况如右图所示:

load(“cor.Rdata”)#文件详情见本文开头cor(mydata$GLT1D1,mydata$SCG5)#结果:[1]0.6640603cor.test(mydata$GLT1D1,mydata$SCG5)#结果:Pearson’sproduct-momentcorrelationdata:mydata$GLT1D1andmydata$SCG5t=15.962,df=323,p-valuecrcor(mydata)#结果款式如右图

第三部份:偏相关

好多时侯,要剖析研究的两个变量会遭到其他非研究变量的影响,此时须要控制那些非研究的诱因,进行偏相关剖析(例如,净高与体重、肺活量都相关,这么在研究体重与肺活量之间相关性时,应剔除净高变量的影响)。

*偏相关:在控制一个或多个变量的情况下,剖析另外两个变量的相关关系。

3.1偏相关系数的估算

进行偏相关剖析可使用ggm包的pcor(u,S)函数实现

library(ggm)pcor(u,S)

参数注释:

u:输入一个数值向量在r中进行相关性分析,前两个数值为两个研究变量在数据框中对应的下标,其余数值为

S:所有变量的协残差矩阵

3.2偏相关系数的明显性检验

library(ggm)pcor.test(r,q,n)

参数注释:

r:由pcor(u,S)估算出的偏相关系数

q:控制的变量数

n:样本大小

3.3偏相关剖析实例演习

还使用cor2.Rdata数据为例:勾画相关矩阵图后发觉,GLT1D1与SCG5呈明显正相关,KCNC3、L1CAM与GLT1D1和SCG5都呈明显正相关。

此时,控制KCNC3、L1CAM两个变量,剖析GLT1D1和SCG5之间的互相关系,即估算其偏相关系数:

library(ggm)pcor(c(7,11,17,20),cov(mydata))pcor.test(pcor(c(7,11,17,20),cov(mydata)),2,325)

结果:

>pcor(c(7,11,17,20),cov(mydata))[1]0.5183269>pcor.test(pcor(c(7,11,17,20),cov(mydata)),2,325)$tval[1]10.85919$df[1]321$pvalue[1]1.321436e-23

从结果来看,GLT1D1和SCG5的偏相关系数为0.52,大于之前的0.66,这是因为控制了KCNC3、L1CAM两个变量的影响。

第四部份:相关关系可视化

4.1散点图

以GLT1D1和SCG5基因抒发数据为例,勾画散点图:

library(ggplot2)plotdatamydata[,c(“GLT1D1″,”SCG5”)]ggplot(plotdata,aes(GLT1D1,SCG5))+geom_point(size=2)+stat_smooth(method=lm,level=0.95)+#method=lm(线性),level=0.95(拟合线置信区间为95%)theme_classic()+theme(axis.title=element_text(size=15),axis.text=element_text(size=12))

关于散点图的勾画,更多勾画和美化方式可参考:

R-可视化基础(5)——散点图、折线图

4.2相关矩阵

还以“cor2.Rdata”文件的数据为例,勾画相关矩阵:

library(psych)library(corrplot)crcor(mydata)pcor.mtest(mydata,conf.level=.95)corrplot(cr,method=”color”,col=colorRampPalette(c(‘navy’,’white’,’firebrick3′))(200),addCoef.col=”black”,number.cex=0.8,###添加系数及字体tl.col=”black”,tl.srt=45,###下部标签的颜色和倾斜度p.mat=p$p,sig.level=0.05,insig=”blank”,###结合P值,显示具有统计学意义的关联点diag=T)###显示对角线上的相关系数

关于相关矩阵的更多可视化方式可参考:

R语言之相关性剖析

4.3相关可视化——棒棒糖图

研究多个变量与另一个变量的相关性时在r中进行相关性分析,可用棒棒糖图呈现相关性剖析结果,如剖析CSTF1、PARP4、SMO、ATF6、L1CAM、KCNC3与GLT1D1抒发相关性并绘图:

crcor(mydata)genec(“CSTF1″,”PARP4″,”SMO”,”ATF6″,”L1CAM”,”KCNC3″)plotdatadata.frame(gene,cor=cr[gene,”GLT1D1″])plotdata$correlationifelse(plotdata$cor>0,’positivecorrelation’,’negativecorrelation’)library(ggplot2)ggplot(plotdata,aes(x=cor,y=reorder(gene,cor)))+ylab(‘Gene’)+xlab(‘pearson-r’)+ggtitle(“ExpressioncorrelationwithGLT1D1”)+geom_segment(aes(yend=gene),xend=0,colour=’grey50′)+###勾画以数据点为端点的线段geom_point(size=3,aes(colour=correlation))+###此处我们将以正负相关(postivenegative)映射其颜色scale_colour_brewer(palette=’Set1′,limits=c(‘positivecorrelation’,’negativecorrelation’))+###颜色加深theme_bw()+theme(panel.grid.major.y=element_blank(),panel.grid.major.x=element_blank(),panel.grid.minor.x=element_blank(),plot.title=element_text(hjust=0.5))

相关性剖析棒棒糖图的详尽勾画方式可参考:

R语言之相关性剖析–棒棒糖图

小结

相关性剖析是一种重要且常用的统计学方式,理清各类相关性剖析的适用条件、掌握相关性剖析及绘图的实现方式尤为重要。相关关系的可视化方式还有许多,如遇见有趣的相关关系图形,欢迎与小编联系交流,共同学习!

© 版权声明
THE END
喜欢就支持一下吧
点赞187 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片