load("cor.Rdata") # 文件详情见本文开头cor(mydata$GLT1D1,mydata$SCG5) # 结果:[1] 0.6640603
cor.test(mydata$GLT1D1,mydata$SCG5)#结果:Pearson'sproduct-momentcorrelationdata:mydata$GLT1D1andmydata$SCG5t=15.962,df=323,p-value<2.2e-16alternative hypothesis:truecorrelationisnotequalto095 percent confidence interval:0.59850690.7207800sample estimates:cor0.6640603
cr<- cor(mydata) # 结果样式如下图
很多时候,要分析研究的两个变量会受到其他非研究变量的影响,此时需要控制这些非研究的因素,进行偏相关分析(比如,身高与体重、肺活量都相关,那么在研究体重与肺活量之间相关性时,应剔除身高变量的影响)。
*偏相关:在控制一个或多个变量的情况下,分析另外两个变量的相关关系。
3.1 偏相关系数的计算
进行偏相关分析可使用ggm包的pcor(u, S)函数实现
library(ggm) pcor(u, S)
参数注释:
u:输入一个数值向量,前两个数值为两个研究变量在数据框中对应的下标,其余数值为
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) plotdata <-mydata[,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) cr <- cor(mydata) p <- cor.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 相关可视化——棒棒糖图
研究多个变量与另一个变量的相关性时,可用棒棒糖图呈现相关性分析结果,如分析CSTF1、PARP4、SMO、ATF6、L1CAM、KCNC3与GLT1D1表达相关性并绘图:
cr<- cor(mydata) gene <- c("CSTF1","PARP4","SMO","ATF6","L1CAM","KCNC3") plotdata <- data.frame(gene,cor=cr[gene,"GLT1D1"]) plotdata$correlation<- ifelse(plotdata$cor> 0,'positive correlation','negative correlation') library(ggplot2) ggplot(plotdata,aes(x=cor,y=reorder(gene,cor)))+ ylab('Gene')+ xlab('pearson-r')+ ggtitle("Expression correlation with GLT1D1")+ geom_segment(aes(yend=gene),xend=0,colour='grey50')+ ###绘制以数据点为端点的线段geom_point(size=3,aes(colour=correlation))+ ###此处我们将以正负相关(postive negative)映射其颜色scale_colour_brewer(palette = 'Set1',limits=c('positive correlation','negative correlation'))+ ###颜色加深 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语言之相关性分析–棒棒糖图
相关性分析是一种重要且常用的统计学方法,理清各种相关性分析的适用条件、掌握相关性分析及绘图的实现方法尤为重要。相关关系的可视化方法还有许多,如遇到有趣的相关关系图形,欢迎与小编联系交流,共同学习!
本文原创作者:韬声依旧,请支持原创!
感谢大家耐心看完,自己的文章都写的很细,代码都在原文中,希望大家都可以自己做一做,请关注后私信回复“数据链接”获取所有数据和本人收集的学习资料。如果对您有用请先收藏,再点赞转发。
也欢迎大家的意见和建议。
如果你是一个大学本科生或研究生,如果你正在因为你的统计作业、数据分析、论文、报告、考试等发愁,如果你在使用SPSS,R,Python,Mplus, Excel中遇到任何问题,都可以联系我。因为我可以给您提供好的,详细和耐心的数据分析服务。
如果你对Z检验,t检验,方差分析,多元方差分析,回归,卡方检验,相关,多水平模型,结构方程模型,中介调节,量表信效度等等统计技巧有任何问题,请私信我,获取详细和耐心的指导。
If you are a student and you are worried about you statistical #Assignments, #Data #Analysis, #Thesis, #reports, #composing, #Quizzes, Exams.. And if you are facing problem in #SPSS, #R-Programming, #Excel, Mplus, then contact me. Because I could provide you the best services for your Data Analysis.
Are you confused with statistical Techniques like z-test, t-test, ANOVA, MANOVA, Regression, Logistic Regression, Chi-Square, Correlation, Association, SEM, multilevel model, mediation and moderation etc. for your Data Analysis…??
Then Contact Me. I will solve your Problem…
加油吧,打工人!