探索数据关系,解读趋势变化——用R语言轻松进行相关性分析

学术   科学   2024-09-25 08:43   上海  

在进行数据分析时,相关性分析是一项重要的技术,可帮助我们理解数据之间的关系,揭示变量之间的联系。而R语言作为一款强大的统计分析工具,提供了丰富的函数和包,便捷地进行相关性分析。今天我们为大家介绍如何使用r语言进行相关性分析。


相关性分析的意义与应用场景

相关性分析用于评估两个或多个变量之间的关联,能通过定量指标描述变量之间的强弱、直接或间接联系。


相关系数

是对变量之间的相关程度的定量描述

u相关系数值介于-1~1之间

u越接近0相关性越低,越接近-11相关性越高

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)


推荐课程
课程《R语言入门与高通量测序数据实战处理》由上海唯那生物技术团队结合多年的项目分析实战经验,经过大量的用户需求调研,专注于高通量测序数据处理和绘图实战而综合开发的大型R语言课程。
 程特点:

(1)实用性强:课程精选的每个专题都是科研客户的热门需求;

(2)实战性强:每个专题,都有完整、专门的脚步和案例数据,在Windows系统、Mac系统、Linux系统,均可学习和操作;

(3)可移植性强:把案例数据替换成自己的实际项目数据,使用课程附带的脚本就可以运行获得结果;

(4)体系更系统:课程包含软件、软件包的各种安装方法,脚本的写作规则,数据统计方法和各类典型绘图方法,循序渐进,基本包括了处理高通量测序数据的主要分析模块,逻辑严谨且体系完善,更容易综合掌握R语言;

(5)上手更容易:课程既适合于零基础的入门学习者,也适合于具有一定基础的初级使用者,课程中结合着一个个的具体案例,拆解了R语言使用的各个重要知识点,并对结果做了解读分析,同时分享了很多经验,学习起来更友好,可以举一反三用于实践。

扫描下方二维码或根据链接获取课程

链接:https://college.mimazi.net/course/article-55.html

密码子实验室
我们一直坚持认为,让知识更有价值,让科学研究更简单,让实验室管理更智能化,让每一个热爱学习的人更有效率,是我们的使命。生物信息学实操、实验操作技能、科研绘图技巧、行业动态播报,这里只有干货。
 最新文章