如果你在為理解RDA、PCA 和 PCoA而煩惱,不妨來看看丨TomatoSCI分析日記

當你學習了 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;會導致沖突。 ? 推薦對應關系 為了保證…