排序分析(Ordination analysis)及R实现

在生态学、统计学和生物学等领域,排序分析是一种用于探索和展示数据结构的多元统计技术。这种分析方法通过将多维数据集中的样本或变量映射到低维空间,以便更容易理解和可视化数据之间的关系。排序分析常用于研究物种组成、生态系统结构等生态学和生物学问题。

一、常见的排序分析方法:

  1. 主成分分析(Principal Component Analysis,PCA): 用于降维和识别主要的数据变异方向。适用于线性关系强烈的数据集,例如生态学中的物种丰富度或环境变量。

  2. 对应分析(Correspondence Analysis,CA):主要用于分析两个分类变量之间的关系。常用于分析生态学中的物种和环境因素之间的关系。

  3. 多维尺度分析(Non-metric Multidimensional Scaling,NMDS):用于非线性关系较强或者不适用于欧几里得距离的数据。适用于生态学中的生境相似性分析等问题。

  4. 典型对应分析(Canonical Correspondence Analysis,CCA): 类似于对应分析,但着重于解释数据中的结构,并通过最大化可解释的变异来找到约束的对应。适用于物种和环境变量之间的关系分析。用于分析两个表格(例如,物种数据和环境数据)之间的关系,结合了对应分析和多元回归的特点。

  5. 因子分析(Factor Analysis):用于识别隐藏在观测数据背后的潜在变量(因子),通常用于探索数据的内在结构。

二、经典排序分析方法的R实现

加载数据。

library(microbiome)
library(phyloseq)
library(ggplot2)
data(dietswap)
pseq <- dietswap# Convert to compositional data
pseq.rel <- microbiome::transform(pseq, "compositional")# Pick core taxa with with the given prevalence and detection limits
pseq.core <- core(pseq.rel, detection = .1/100, prevalence = 90/100)# Use relative abundances for the core
pseq.core <- microbiome::transform(pseq.core, "compositional")

用给定的方法和差异度量对样本进行投影。 

# Ordinate the data
set.seed(4235421)
# proj <- get_ordination(pseq, "MDS", "bray")
ord <- ordinate(pseq, "MDS", "bray")
Multidimensional scaling (MDS / PCoA)
plot_ordination(pseq, ord, color = "nationality") +geom_point(size = 5)

Canonical correspondence analysis (CCA)

# With samples
pseq.cca <- ordinate(pseq, "CCA")
p <- plot_ordination(pseq, pseq.cca,type = "samples", color = "nationality")
p <- p + geom_point(size = 4)
print(p)# With taxa:
p <- plot_ordination(pseq, pseq.cca,type = "taxa", color = "Phylum")
p <- p + geom_point(size = 4)
print(p)

Split plot

plot_ordination(pseq, pseq.cca,type = "split", shape = "nationality", color = "Phylum", label = "nationality")

t-SNE

t-SNE是一种流行的新的排序方法。

library(vegan)
library(microbiome)
library(Rtsne) # Load package
set.seed(423542)method <- "tsne"
trans <- "hellinger"
distance <- "euclidean"# Distance matrix for samples
ps <- microbiome::transform(pseq, trans)# Calculate sample similarities
dm <- vegdist(otu_table(ps), distance)# Run TSNE
tsne_out <- Rtsne(dm, dims = 2) 
proj <- tsne_out$Y
rownames(proj) <- rownames(otu_table(ps))library(ggplot2)
p <- plot_landscape(proj, legend = T, size = 1) 
print(p)

适用条件取决于数据的性质和研究的目标。在选择排序分析方法时,需要考虑数据的线性性、分布情况、相关性和可能存在的潜在结构。选择适当的排序分析方法有助于更好地理解数据集中的模式和关系。

References:

Ordination analysis

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/235717.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Openstack Train安装】十二、Cinder安装

Cinder在块存储资源和计算服务&#xff08;Nova&#xff09;之间提供了一个抽象层。通过Cinder API&#xff0c;块存储可以被管理&#xff08;创建、销毁和分配等&#xff09;&#xff0c;而不需要知道提供存储的底层资源。 本文介绍Cinder安装步骤&#xff0c;Cinder需在控制节…

苹果TF签名全称TestFlight签名,需要怎么做才可以上架呢?

如果你正在开发一个iOS应用并准备进行内测&#xff0c;TestFlight是苹果提供的一个免费的解决方案&#xff0c;它使开发者可以邀请用户参加应用的测试。以下是一步步的指南&#xff0c;教你如何利用TestFlight进行内测以便于应用后续可以顺利上架App Store。 1: 准备工作 在测…

怎么一键批量转换PDF/图片为Excel、Word,从而提高工作效率?

在处理大量PDF、图片文件时&#xff0c;我们往往需要将这些文件转换成Word或Excel格式以方便编辑和统计分析。此时&#xff0c;金鸣表格文字识别大师这款工具可以发挥巨大作用。下面&#xff0c;我们就来探讨如何使用它进行批量转换&#xff0c;以实现高效处理。 一、准备工作…

初识elasticsearch

文章目录 一、前言二、了解ES2.1 elasticsearch的作用2.2 ELK技术栈2.3 elasticsearch和lucene2.4 为什么不是其他搜索技术2.5 总结 三、倒排索引3.1 正向索引3.2 倒排索引3.3 正向和倒排 四、es的一些概念4.1 文档和字段4.2 索引和映射4.3 mysql和elasticsearch 一、前言 前一…

StartRocks 连接 Paimon外部表

版本 StartRocksPaimon3.2.00.5 sr 环境准备 CREATE external CATALOG paimon_hdfs PROPERTIES ("type" "paimon",paimon.catalog.type filesystem,"paimon.catalog.warehouse" "hdfs://hadoop03:9000/paimon/test" );mysql> …

高效率:使用DBeaver连接spark-sql

提高运行效率一般采取底层使用spark引擎替换成hive引擎的方式提高效率&#xff0c;但替换引擎配置较为复杂考虑到兼容版本且容易出错&#xff0c;所以本篇将介绍使用DBeaver直接连接spark-sql快速操作hive数据库。 在spark目录下运行以下命令&#xff0c;创建一个SparkThirdSe…

链表高频面试题

1. 两个链表第一个公共子节点 LeetCode160 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; listA [4,1,8,4,5], listB [5…

Windows系列:windows server 2016 下域环境的搭建(完整版)

windows server 2016 下域环境的搭建&#xff08;完整版&#xff09; windows server 2016 下域环境的搭建在搭建之前简单介绍一下基础知识&#xff1a;一、环境介绍 &#xff1a;1.这里用拓扑图进行展示&#xff1a;2.所有环境配置如下 二、搭建主域&#xff1a;一. 创建主域1…

91基于matlab的以GUI实现指纹的识别和匹配百分比

基于matlab的以GUI实现指纹的识别和匹配百分比,中间有对指纹的二值化&#xff0c;M连接&#xff0c;特征提取等处理功能。数据可更换自己的&#xff0c;程序已调通&#xff0c;可直接运行。 91M连接 特征提取 (xiaohongshu.com)

Android 架构实战MVI进阶

MVI架构的原理和流程 MVI架构是一种基于响应式编程的架构模式&#xff0c;它将应用程序分为四个核心组件&#xff1a;模型&#xff08;Model&#xff09;、视图&#xff08;View&#xff09;、意图&#xff08;Intent&#xff09;和状态&#xff08;State&#xff09;。 原理&…

Course1-Week3-分类问题

Course1-Week3-分类问题 文章目录 Course1-Week3-分类问题1. 逻辑回归1.1 线性回归不适用于分类问题1.2 逻辑回归模型1.3 决策边界 2. 逻辑回归的代价函数3. 实现梯度下降4. 过拟合与正则化4.1 线性回归和逻辑回归中的过拟合4.2 解决过拟合的三种方法4.3 正则化4.4 用于线性回归…

【JAVA面向对象编程】--- 探索子类如何继承父类

&#x1f308;个人主页: Aileen_0v0&#x1f525;学习专栏: Java学习系列专栏 &#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 目录 继承 继承的普通成员方法调用 及 普通成员变量修改 构造方法的调用 子类构造方法 继承 package Inherit;class Animal …