在进行数据分析时,相关性分析是一项重要的技术,可帮助我们理解数据之间的关系,揭示变量之间的联系。而R语言作为一款强大的统计分析工具,提供了丰富的函数和包,便捷地进行相关性分析。今天我们为大家介绍如何使用r语言进行相关性分析。
相关性分析的意义与应用场景
相关性分析用于评估两个或多个变量之间的关联,能通过定量指标描述变量之间的强弱、直接或间接联系。
相关系数
是对变量之间的相关程度的定量描述
u相关系数值介于-1~1之间
u越接近0相关性越低,越接近-1或1相关性越高
u正负号表明相关方向,正号为正相关、负号为负相关
常见相关系数
系数 | 数据类型 | 假设前提 | 鲁棒性 |
Pearson | 适用于连续变量,要求数据呈现线性关系 | 数据呈正态分布,要求线性相关性假设 | 对异常值敏感,受极端值影响较大 |
Kendall | 适用于顺序数据,不要求数据呈现线性关系 | 无需假设数据分布,适用于非线性相关性 | 对异常值不敏感,稳健性较好 |
Spearman | 适用于顺序数据和连续变量,不要求数据呈现线性关系 | 无需假设数据分布,适用于非线性相关性 | 对异常值不敏感,稳健性较好 |
相关性分析应用场景
组内相关性分析,如评估多个样本/基因/功能通路间的相关性
组间相关性分析,如物种与功能基因,代谢通路的关联,环境因子与基因表达的关联等
示例数据:
otu丰度表(otu_filtered.csv)
功能通路丰度表(fun.csv)
# 使用R语言进行相关性分析
# 清空环境变量
rm(list = ls())
# 设置工作目录
setwd("D:/r_class/test_data/4.cor_analysis")
# 进行相关性分析
# 安装和加载R包
# install.packages("psych")
library(psych)
# 1、组内相关性分析
# 以otu丰度矩阵为例,比较样本间的相关性
# 读取本地数据
# 读取otu丰度矩阵
otu <- read.csv("otu_filtered.csv",header = T,
row.names = 1,check.names = F)
head(otu)
# 正态分布检验,确定选择哪种相关性分析方法(满足正态分布使用Pearson相关系数,不满足正态分布使用Spearman相关系数)
# shapiro.test()函数:检测3~5000个数值向量是否符合正态分布
# 如果 p 值小于 0.05,则有足够的证据表明样本数据分布不满足正态分布
shapiro.test(otu$S1)
# 执行相关性分析
# 函数帮助信息查看
?corr.test
# 样本间的相关性
# method参数可选: "spearman" , "kendall", "pearson"
# adjust 参数可选:"holm", "hochberg", "hommel", "bonferroni", "BH", "BY", "fdr", "none"
cor_sample <- corr.test(otu,
method = "spearman" , # 相关性分析方法
adjust= "fdr" # 多重检验校正方法
)
# 提取相关性、p值
# 提取相关性矩阵
cmt <- cor_sample$r
# 提取丰度矩阵
pmt <- cor_sample$p
# 绘制热图展示样本间的相关性
# installed.packages("pheatmap")
library(pheatmap)
pheatmap(cmt)
# 2、组间相关性分析
# 以otu丰度矩阵和功能注释矩阵为例,比较otu与功能间的相关性
# 读取本地数据
# 读取otu丰度矩阵
otu <- read.csv("otu_filtered.csv",header = T,
row.names = 1,check.names = F)
head(otu)
# 读取功能注释结果
fun <- read.csv("fun.csv",header = T,
row.names = 1,check.names = F)
head(fun)
# 行列转换,每行代表一个样本,每列代表一个otu或功能
otu_t <- t(otu)
fun_t <- t(fun)
# 执行组间相关性分析
cor <- corr.test(otu_t, fun_t,
method = "pearson" , # 相关性分析方法
adjust= "fdr" # 多重检验校正方法
)
# 提取相关性、p值
cmt1 <-cor$r
pmt1 <- cor$p
# 绘制热图展示otu与功能间的相关性
pheatmap(cmt1,angle_col = 45)
(1)实用性强:课程精选的每个专题都是科研客户的热门需求;
(2)实战性强:每个专题,都有完整、专门的脚步和案例数据,在Windows系统、Mac系统、Linux系统,均可学习和操作;
(3)可移植性强:把案例数据替换成自己的实际项目数据,使用课程附带的脚本就可以运行获得结果;
(4)体系更系统:课程包含软件、软件包的各种安装方法,脚本的写作规则,数据统计方法和各类典型绘图方法,循序渐进,基本包括了处理高通量测序数据的主要分析模块,逻辑严谨且体系完善,更容易综合掌握R语言;
(5)上手更容易:课程既适合于零基础的入门学习者,也适合于具有一定基础的初级使用者,课程中结合着一个个的具体案例,拆解了R语言使用的各个重要知识点,并对结果做了解读分析,同时分享了很多经验,学习起来更友好,可以举一反三用于实践。
扫描下方二维码或根据链接获取课程
链接:https://college.mimazi.net/course/article-55.html