当你学习了 RDA、PCA 和 PCoA 这三种常见排序方法后,脑子里是不是也冒出过类似的疑问:

PCA、PCoA、RDA 不都能画图吗?是不是可以互相替代?

RDA 图上也有样本点,那我还需要 PCoA 干什么?

...

这些看似“都在画点图”的方法,其实背后的原理、假设和适用场景大不相同。如果不搞清楚,就可能用错方法、画错图,甚至在结果解读上南辕北辙。


01 PCA:变量出发,寻找主要变异方向

PCA(主成分分析)关注的是样本在变量空间中的最大方差方向,分析的是变量之间的协方差结构,它强调正负方向。

举个例子:你有 10 个水样本,每个样本测了 5 种金属(铅、汞、铬、镉、锌)的浓度。你想知道哪些样本之间在“污染物组成”上差异最大,这时候就可以使用 PCA。

在 PCA 中,如果两个样本点在某条主成分轴(PC1、PC2 等)上方向相反,

那么它们在这个主成分所代表的变量组合上,存在“相反的趋势”或“对立的特征”。

适用场景:多个连续性变量之间的结构探索;没有主次之分的变量(不区分因变量、自变量)


02 PCoA:距离出发,还原相似性结构

PCoA是基于距离矩阵进行降维的排序方法。它的目标是:在保留样本之间原始距离关系的前提下,将样本映射到一个低维空间中进行展示。

举个例子:你采集了多个土壤样本,记录了每个样本中出现的真菌种类(是/否,0/1),这个时候可以利用Jaccard系数这个指标算出距离,再用 PCoA 展现样本之间的相似性或差异性。

数据类型可以是:二元数据(0/1,表示物种是否出现);丰度数据(连续型),非常灵活。

适用场景:样本之间差异更关注“距离感”而不是变量结构;适用于各种类型的数据,尤其是群落数据、稀疏数据(很多0);同样不区分因变量、自变量,属于“自由排序”


03 RDA:模型出发,解释结构背后的驱动因子

RDA是一个受约束的排序方法,它的本质是将多个因变量(如物种数据)在多个解释变量(如环境因子)构建的回归模型上做PCA,关注的是“解释变量是否能解释群落结构的差异”。

举个例子:你采集了 15 个浮游生物样本,同时记录了每个样本点的水温、盐度、pH 等环境数据。现在你不仅想知道样本之间群落结构是否不同,更重要的是——你想知道,“是不是温度或盐度影响了这些差异?”

这时,RDA 就可以帮你回答这个问题:它会把样本在被解释变量(如温度、盐度)张成的空间中排序,从而可视化这些因子的解释方向与作用强度。

适用场景:你同时有环境变量(解释变量)和群落结构(响应变量);想研究“哪些环境因子可能驱动了样本间的差异”;想对解释变量进行显著性检验,量化它们对群落结构的贡献。


04 总结与个人习惯

PCA 看重“方向”、PCoA 注重“距离”、而 RDA 的关键则在于“解释变量和响应变量”的对应关系。

PCA 是探索型的、PCoA 是结构还原型的,而 RDA 则是解释型的排序方法。 理解这三者背后的出发点不同,才能在实际应用中真正做到“方法对题、图对解”。

在实际分析中, 我更喜欢:用PCoA来确定样本之间的关系,PCoA 对“样本之间的距离感”还原得更加直观清晰;用PCA来探索“自由”的变量之间的关系;用RDA来探索“有因果关系”的变量之间的关系。


TomatoSCI科研数据分析平台,欢迎大家来访!

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

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

相关文章

MySQL (二):范式设计

在 MySQL 数据库设计中,范式设计是构建高效、稳定数据库的关键环节。合理的范式设计能够减少数据冗余、消除操作异常,让数据组织更加规范和谐。然而,过度追求范式也可能带来多表联合查询效率降低的问题。本文将深入讲解第一范式(1…

什么是财务共享中心?一文讲清财务共享建设方案

目录 一、财务共享中心是什么 1.标准化流程 2.集中化处理 3.智能化系统 4.专业化分工 二、财务共享中心的四大模块 1. 共享系统 2. 共享流程 3. 共享组织 4. 共享数据 三、为什么很多财务共享中心做不下去? 1.只搬人,不换流程 2.系统买了&a…

001 双指针

双指针 双指针(Two Pointers) 双指针(Two Pointers) 对撞指针(Opposite Direction Two Pointers): 对撞指针从两端向中间移动,一个指针从最左端开始,另一个最右端开始&a…

【unitrix】 4.7 库数字取反(not.rs)

一、源码 这段代码是用Rust语言实现的一个库,主要功能是对数字进行位取反操作(按位NOT运算)。 /*库数字取反* 编制人: $ource* 修改版次:0版完成版* 本版次创建时间: 2025年6月25日* 最后修改时间: 无* 待完善问题:无*/ use cor…

在ASP.NET Core WebApi中使用日志系统(Serilog)

一.引言 日志是构建健壮 Web API 的重要组成部分,能够帮助我们追踪请求、诊断问题、记录关键事件。在 .Net 中,日志系统由内置的 Microsoft.Extensions.Logging 抽象提供统一接口,并支持多种第三方日志框架(如 Serilog、NLog 等&…

(链表:哈希表 + 双向链表)146.LRU 缓存

题目 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。该算法赋予每个页面一个访问字段,用来记…

Go Web开发框架实践:模板渲染与静态资源服务

Gin 不仅适合构建 API 服务,也支持 HTML 模板渲染和静态资源托管,使其可以胜任中小型网站开发任务。 一、模板渲染基础 1. 加载模板文件 使用 LoadHTMLGlob 或 LoadHTMLFiles 方法加载模板: r : gin.Default() r.LoadHTMLGlob("templ…

缓存与加速技术实践-Kafka消息队列

目录 #1.1消息队列 1.1.1什么是消息队列 1.1.2消息队列的特征 1.1.3为什么需要消息队列 #2.1ksfka基础与入门 2.1.1kafka基本概念 2.1.2kafka相关术语 2.1.3kafka拓扑架构 #3.1zookeeper概述介绍 3.1.1zookeeper应用举例 3.1.2zookeeper的工作原理是什么? 3.1.3z…

鸿蒙前后端部署教程

第一步:部署Java后端 打开IDEA编辑器 第二步:用DevEco Studio运行鸿蒙端项目 然后按WinR键调出Win的命令行,输入ipconfig 打开后端IDEA可以查看数据库情况,如下图

Python 常用定时任务框架介绍及代码举例

文章目录 Python 常用定时任务框架简介🧩 一、轻量级方案(适合简单任务)1. **schedule库** ⚙️ 二、中级方案(平衡功能与复杂度)2. **APScheduler**3. **Celery Celery Beat** 🚀 三、异步专用方案&#…

使用redis服务的redisson架构实现分布式锁

加锁 /*** 尝试为指定的许可证 ID 获取分布式锁。如果锁已被占用,则立即抛出业务异常。** param licenseId 需要加锁的许可证 ID(即锁名称)* return true 表示成功获取锁,但请注意:* 锁实际持有时间为 30 秒…

HTML表格元素

HTML表格元素深度解析与实战应用 一、表格基本结构与语义化 1. 基础表格元素详解 <table> 容器元素 核心作用&#xff1a;定义表格容器重要属性&#xff1a; border&#xff1a;已废弃&#xff0c;应使用CSS设置边框aria-label/aria-labelledby&#xff1a;为屏幕阅读…

如何使用 Dockerfile 创建自定义镜像

使用 Dockerfile 创建自定义镜像的过程非常清晰&#xff0c;通常包括定义基础镜像、安装依赖、复制代码、设置环境变量和启动命令等步骤。下面详细讲解从零创建自定义镜像的完整流程。 一、什么是 Dockerfile&#xff1f; Dockerfile 是一个文本文件&#xff0c;定义了如何构建…

设置AWS EC2默认使用加密磁盘

问题 EC2磁盘需要使用默认加密。这里需要设置一下默认加密。 EC2

【树的概念及其堆的实现】

树的概念及其堆的实现 1.树的概念2.树的相关概念3.二叉树的概念4. 满二叉树和完全二叉树5.二叉树的存储结构6.二叉树顺序结构的实现的7.堆的结构及其实现 1.树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系…

鸿蒙系统(HarmonyOS)经典红色风格登录页布局

预览 简介 基于鸿蒙系统&#xff08;HarmonyOS&#xff09;开发的现代化登录界面&#xff0c;采用了科技感十足的红色主题设计。该界面结合了流畅的动画效果、精心设计的视觉元素和人性化的交互体验&#xff0c;为用户提供了一个安全、美观且易用的登录入口。 &#x1f3a8; …

C++虚函数多态

class C{ public:void x1(){};void x2(){};};C c; cout << sizeof(c) <<"\n";1字节 class D{ public:void x1(){};void x2(){};virtual void x3(){};//void *vptr看不见的虚函数表指针 }; D d; cout << sizeof(d) <<"\n";8字节类A…

新编辑器编写指南--给自己的备忘

欢迎使用Markdown编辑器 你好&#xff01; 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章&#xff0c;了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持&#x…

目标检测neck算法之MPCA和FSA的源码实现

目标检测neck算法之MPCA和FSA的源码实现 使用BIBM2024 Spatial-Frequency Dual Domain Attention Network For Medical Image Segmentation的Frequency-Spatial Attention和Multi-scale Progressive Channel Attention改进neck. 接下来&#xff0c;我将讲解它的源码操作的实现…

MyBatis-Plus的3.5.7和PageHelper的那个版本对应

MyBatis-Plus的3.5.7和PageHelper的那个版本对应 根据你的知识库中提到的信息&#xff1a; MyBatis-Plus 3.5.7 使用的是 JSqlParser 4.6 版本。PageHelper 若使用了不同版本的 JSqlParser&#xff08;如 4.7&#xff09;&#xff0c;会导致冲突。 ✅ 推荐对应关系 为了保证…