Introduction
ordination analysis(排序分析)是生態(tài)學(xué)和統(tǒng)計學(xué)領(lǐng)域中用于分析和解釋多變量數(shù)據(jù)的方法之一。這個方法通常被用于探索和可視化生態(tài)學(xué)或生物學(xué)數(shù)據(jù)中的模式,尤其是在物種組成和環(huán)境因素之間的關(guān)系方面。具體可以參考張金屯老師的《數(shù)量生態(tài)學(xué)》,里面講的非常詳細(xì),然后《數(shù)量生態(tài)學(xué)—R語言的應(yīng)用》一書中還提供了所有分析的R代碼,非常建議閱讀。
排序分析是一種多變量分析的方法,而降維分析是其中的一部分。排序分析的目標(biāo)是通過降維技術(shù)將高維數(shù)據(jù)轉(zhuǎn)化為更容易理解和解釋的低維形式,同時保留主要的數(shù)據(jù)結(jié)構(gòu)。常見的方法包括主成分分析(Principal Component Analysis,PCA)和對應(yīng)分析(Correspondence Analysis,CA)等,一般群落beta多樣性分析都會用到這些方法。
排序方法根據(jù)有無解釋變量可分為兩種:限制性排序和非限制性排序。
限制性排序(Constrained Ordination): 這種排序方法在降維的過程中考慮了響應(yīng)變量(通常是生態(tài)系統(tǒng)的響應(yīng),如物種組成)和解釋變量(通常是環(huán)境因素)。比如冗余分析(RDA,Redundancy Analysis)就是一種限制性排序方法。
非限制性排序(Unconstrained Ordination): 這種排序方法僅僅考慮響應(yīng)變量,而不考慮解釋變量。比如主成分分析(PCA)是一種典型的非限制性排序方法,因為它僅關(guān)注如何最大程度地解釋數(shù)據(jù)的總方差。
當(dāng)涉及到排序方法時,確實有很多不同的技術(shù),每種都有其獨特的優(yōu)點和應(yīng)用場景。以下簡要介紹常用一些方法(具體的原理和流程網(wǎng)上可以搜到非常多):
常用非限制性排序
PCA (Principal Component Analysis) 主成分分析:
通過尋找數(shù)據(jù)中的主要方差方向,將高維數(shù)據(jù)轉(zhuǎn)換為低維數(shù)據(jù)。主成分是原始變量的線性組合。
主成分分析(Principal Component Analysis, PCA)是一種常用的降維技術(shù),用于分析數(shù)據(jù)集中的主要變化方向。其基本原理是通過線性變換將原始數(shù)據(jù)投影到一組新的坐標(biāo)軸上,使得數(shù)據(jù)在這些新坐標(biāo)軸上的方差最大。這些新的坐標(biāo)軸被稱為主成分。
以下是主成分分析的基本流程:
數(shù)據(jù)標(biāo)準(zhǔn)化: 如果原始數(shù)據(jù)的不同變量有不同的度量單位或變異范圍,首先需要對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化,以消除這些差異。通常,數(shù)據(jù)會被減去均值并除以標(biāo)準(zhǔn)差。
協(xié)方差矩陣計算: 對標(biāo)準(zhǔn)化后的數(shù)據(jù)計算協(xié)方差矩陣。協(xié)方差矩陣描述了不同變量之間的線性關(guān)系。
特征值分解: 對協(xié)方差矩陣進(jìn)行特征值分解。特征值分解產(chǎn)生了一組特征值和相應(yīng)的特征向量。特征值表示方差的大小,而特征向量表示對應(yīng)于這些方差的方向。
選擇主成分: 特征值表示主成分的重要性,通常按照特征值的大小排序。選擇最大的k個特征值及其對應(yīng)的特征向量,其中k是希望保留的主成分的數(shù)量。
構(gòu)建投影矩陣: 將選定的特征向量構(gòu)成一個投影矩陣。將原始數(shù)據(jù)乘以這個投影矩陣,即可將數(shù)據(jù)投影到新的主成分空間中。
主成分得分: 計算每個樣本在新的主成分空間中的坐標(biāo),這些坐標(biāo)被稱為主成分得分。
PCoA (Principal Coordinates Analysis) 主坐標(biāo)分析:
與PCA類似,但在距離矩陣的特征分解中使用,主坐標(biāo)分析(Principal Coordinate Analysis, PCoA),也稱為軸比例分析(Metric Multidimensional Scaling, MDS),是一種用于分析樣本之間相似性或距離的多變量統(tǒng)計技術(shù)。與主成分分析(PCA)類似,PCoA旨在減少數(shù)據(jù)的維度,但它更專注于樣本之間的距離或相似性而不是變量之間的協(xié)方差。
以下是主坐標(biāo)分析的基本流程:
距離矩陣計算: 首先,計算樣本之間的距離矩陣。這個距離可以是歐氏距離、曼哈頓距離、相關(guān)系數(shù)等,具體根據(jù)數(shù)據(jù)類型和研究問題而定,可支持的距離算法還有很多,參見
?vegan::vegdist(): “manhattan”, “euclidean”, “canberra”, “clark”, “bray”, “kulczynski”, “jaccard”, “gower”, “altGower”, “morisita”, “horn”, “mountford”, “raup”, “binomial”, “chao”, “cao”, “mahalanobis”, “chisq”, “chord”, “hellinger”, “aitchison”等。。中心化矩陣: 對距離矩陣進(jìn)行中心化處理,將每個元素減去對應(yīng)行和列的均值。
特征值分解: 對中心化的距離矩陣進(jìn)行特征值分解。這產(chǎn)生了一組特征值和相應(yīng)的特征向量。
選擇主坐標(biāo): 選擇前k個特征值及其對應(yīng)的特征向量,其中k是希望保留的坐標(biāo)的數(shù)量。
構(gòu)建坐標(biāo)矩陣: 將選定的特征向量構(gòu)成一個坐標(biāo)矩陣。每個樣本在這些坐標(biāo)上的投影就構(gòu)成了主坐標(biāo)。
主坐標(biāo)分析圖: 將樣本在主坐標(biāo)上的投影繪制成圖表,這就是主坐標(biāo)分析圖。這個圖表展示了樣本之間的相對位置,反映了它們在多維空間中的相似性或差異。
主坐標(biāo)分析通常用于分析生態(tài)學(xué)數(shù)據(jù)或其他具有樣本相似性結(jié)構(gòu)的數(shù)據(jù)。通過降低維度,它使得研究者更容易理解和可視化樣本之間的關(guān)系。
CA (Correspondence Analysis) 對應(yīng)分析:
用于分析兩個或多個分類變量之間的關(guān)系,通常用于探索物種和環(huán)境因子之間的關(guān)聯(lián)。
對應(yīng)分析(Correspondence Analysis,簡稱CA)是一種用于分析兩個分類變量之間關(guān)系的多元統(tǒng)計技術(shù)。它可以用于研究分類表格(Contingency Tables),特別是在生態(tài)學(xué)、社會學(xué)、市場調(diào)查等領(lǐng)域。
以下是對應(yīng)分析的基本流程原理:
建立列聯(lián)表: 首先,構(gòu)建一個列聯(lián)表,其中包含兩個或更多的分類變量的頻數(shù)或百分比。
計算期望頻數(shù): 對于每個單元格,計算在獨立性假設(shè)下的期望頻數(shù)。獨立性假設(shè)是指假設(shè)兩個變量之間沒有關(guān)聯(lián)。
計算標(biāo)準(zhǔn)化殘差: 對每個單元格的實際頻數(shù)和期望頻數(shù)進(jìn)行比較,計算標(biāo)準(zhǔn)化殘差。殘差表示實際觀察到的頻數(shù)與期望頻數(shù)之間的差異,標(biāo)準(zhǔn)化殘差則考慮了這種差異相對于整體表格的變異性。
奇異值分解: 對標(biāo)準(zhǔn)化殘差矩陣進(jìn)行奇異值分解。奇異值分解是一種矩陣分解方法,將一個矩陣分解成三個矩陣的乘積。
選擇主維度: 根據(jù)奇異值的大小選擇主維度。這些主維度是原始變量的線性組合,通常是用于解釋數(shù)據(jù)中大部分變異的維度。
計算坐標(biāo): 計算每個變量和每個水平與垂直刻度上的坐標(biāo),這些坐標(biāo)用于可視化數(shù)據(jù)。
繪制對應(yīng)圖: 使用計算得到的坐標(biāo)信息,繪制對應(yīng)圖。對應(yīng)圖有助于理解變量之間的關(guān)系以及在數(shù)據(jù)中的結(jié)構(gòu)。
總的來說,對應(yīng)分析通過將多維數(shù)據(jù)映射到低維空間,提供了一個直觀的方式來可視化和解釋分類數(shù)據(jù)中的關(guān)聯(lián)關(guān)系。
DCA (Detrended Correspondence Analysis) 去趨勢對應(yīng)分析:
CA的一種變體,DCA的目標(biāo)是消除或減少由于群落數(shù)據(jù)中的趨勢而導(dǎo)致的主坐標(biāo)軸的拉伸。
以下是去趨勢對應(yīng)分析的基本流程原理:
數(shù)據(jù)標(biāo)準(zhǔn)化: 首先,對群落數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化,以確保各種生境的貢獻(xiàn)相等。這通常包括對物種豐富度進(jìn)行對數(shù)或平方根轉(zhuǎn)換。
進(jìn)行初始對應(yīng)分析: 對標(biāo)準(zhǔn)化后的數(shù)據(jù)進(jìn)行初始對應(yīng)分析,計算初始的主坐標(biāo)軸。
去除趨勢: 通過擬合一條曲線(通常是第二主坐標(biāo)軸)來去除數(shù)據(jù)中的趨勢。這可以通過回歸分析等方法來完成。
重新計算坐標(biāo): 在去除趨勢后,重新計算主坐標(biāo)軸。
繪制DCA圖: 使用去趨勢后的坐標(biāo)信息,繪制DCA圖。DCA圖通常是一個雙軸圖,顯示了樣點或物種在主坐標(biāo)軸上的分布。
解釋結(jié)果: 根據(jù)DCA圖的形狀和方向,解釋物種和樣點之間的關(guān)系。這有助于理解群落數(shù)據(jù)的結(jié)構(gòu),而不受主坐標(biāo)軸的人為拉伸的影響。
DCA的優(yōu)勢在于它可以更好地處理生態(tài)學(xué)數(shù)據(jù)中常見的非線性趨勢。通過去除趨勢,DCA提供了更為真實和可解釋的關(guān)于生態(tài)群落結(jié)構(gòu)的信息。
NMDS (Non-Metric Multidimensional Scaling) 非度量多維縮放:
通過樣本間的距離矩陣來構(gòu)建降維空間,以保持樣本之間的相對距離。同樣可使用各種距離算法。
以下是非度量多維縮放的基本流程原理:
計算相異性矩陣: 首先,根據(jù)數(shù)據(jù)集中的樣本或物種的相異性(比如,物種組成的差異)計算相異性矩陣。這可以使用各種相異性或距離指標(biāo),如Bray-Curtis距離、Jaccard相異性等。
初始化配置: 隨機(jī)或基于一些啟發(fā)式算法初始化樣本或物種在多維空間中的位置。
迭代尋找最佳位置: 通過迭代,調(diào)整樣本或物種在多維空間中的位置,使得它們在相異性空間中的相對位置更好地匹配相異性矩陣。這通常通過最小化實際相異性矩陣和在多維空間中的擬合相異性矩陣之間的差異來實現(xiàn)。
停止準(zhǔn)則: 根據(jù)一些停止準(zhǔn)則,比如迭代次數(shù)、梯度大小等,確定算法何時停止。
輸出結(jié)果: 最終的結(jié)果是樣本或物種在低維空間中的坐標(biāo)。
繪制NMDS圖: 使用NMDS生成的坐標(biāo),可以繪制NMDS圖,展示樣本或物種在低維空間中的位置。
NMDS的優(yōu)勢在于它能夠在保留樣本或物種間的相異性的同時,將高維數(shù)據(jù)映射到低維空間。這有助于可視化數(shù)據(jù)中的結(jié)構(gòu),并且對于那些不能滿足線性假設(shè)的數(shù)據(jù)而言是一種有用的技術(shù)。
t-SNE (t-distributed Stochastic Neighbor Embedding) t-分布隨機(jī)鄰域嵌入:
主要用于保留樣本之間的局部相似性,常用于高維數(shù)據(jù)的可視化。
以下是t-SNE的基本流程原理:
相似性矩陣: 對于給定的高維數(shù)據(jù)集,首先計算樣本之間的相似性,通常使用高斯分布來表示樣本之間的相似性。這會生成一個相似性矩陣。
學(xué)習(xí)相似性: 在低維空間中,使用t-分布來表示樣本之間的相似性。t-SNE嘗試保持樣本對之間的相似性,使得在高維空間中相似的樣本在低維空間中仍然保持相似。
梯度下降: 使用梯度下降等優(yōu)化算法,嘗試最小化高維空間中的相似性矩陣與低維空間中的相似性分布之間的差異。這個過程會調(diào)整低維空間中的樣本位置,以更好地反映它們在高維空間中的相似性。
調(diào)整參數(shù): t-SNE有一些參數(shù),比如困惑度(perplexity),用于調(diào)整算法的行為。困惑度控制了在生成高維空間中的相似性分布時每個樣本可以考慮多少個鄰近樣本。
迭代: t-SNE是一個迭代過程,通過多次迭代來優(yōu)化低維表示,直到滿足停止準(zhǔn)則。
輸出結(jié)果: 最終的結(jié)果是樣本在低維空間中的坐標(biāo)。
t-SNE廣泛用于數(shù)據(jù)可視化,尤其是在深度學(xué)習(xí)中,以及在發(fā)現(xiàn)高維數(shù)據(jù)的結(jié)構(gòu)和簇時。然而,對于大型數(shù)據(jù)集,計算成本可能較高。
UMAP (Uniform Manifold Approximation and Projection) 統(tǒng)一流形逼近和投影:
與t-SNE類似,用于高維數(shù)據(jù)的降維和可視化,但在某些情況下可能比t-SNE更快、更保持全局結(jié)構(gòu)。
統(tǒng)一流形逼近和投影是一種用于學(xué)習(xí)高維數(shù)據(jù)的低維表示的方法。這一方法旨在找到一個低維流形,可以保持?jǐn)?shù)據(jù)的局部結(jié)構(gòu)。以下是它的基本原理:
數(shù)據(jù)表示: 假設(shè)我們有一個高維數(shù)據(jù)集,可以用
表示,其中
是樣本數(shù),
是特征數(shù)。
流形假設(shè): 統(tǒng)一流形假設(shè)認(rèn)為高維數(shù)據(jù)集
實際上是嵌入在一個低維流形中的,該流形在高維空間中扭曲和彎曲。
局部保持: 統(tǒng)一流形逼近和投影的目標(biāo)是找到一個低維表示
,其中
是目標(biāo)低維度,以便在這個低維表示中,原始數(shù)據(jù)的局部結(jié)構(gòu)得以保持。
-
數(shù)學(xué)形式: 通常,這可以通過最小化兩個項的和來實現(xiàn):
-
重構(gòu)誤差項: 衡量在低維空間中的表示
如何能夠準(zhǔn)確地重構(gòu)原始數(shù)據(jù)
。
-
流形保持項: 衡量
中的點是如何在原始數(shù)據(jù)空間中保持局部結(jié)構(gòu)的。
-
重構(gòu)誤差項: 衡量在低維空間中的表示
優(yōu)化問題: 統(tǒng)一流形逼近和投影可以被建模為一個優(yōu)化問題,通過調(diào)整
來最小化重構(gòu)誤差和流形保持項。
這種方法的目標(biāo)是在低維空間中找到一個緊湊的表示,以便原始數(shù)據(jù)集的結(jié)構(gòu)得以保持。在實際應(yīng)用中,這對于高維數(shù)據(jù)的可視化和特征學(xué)習(xí)非常有用。常見的統(tǒng)一流形逼近和投影的方法包括 t-SNE(t-Distributed Stochastic Neighbor Embedding)和UMAP(Uniform Manifold Approximation and Projection)。
分組變量排序
LDA (Linear Discriminant Analysis) 線性判別分析:
用于降低數(shù)據(jù)維度,同時最大化不同類別之間的差異,通常用于分類問題。
其基本思想是將數(shù)據(jù)投影到一個低維空間中,以便在這個低維空間中更容易區(qū)分不同類別的數(shù)據(jù)點。
下面是LDA的基本流程和原理:
計算類內(nèi)散度矩陣和類間散度矩陣: 對于給定的數(shù)據(jù)集,首先計算每個類別內(nèi)部的散度矩陣(表示類別內(nèi)部數(shù)據(jù)點的分散程度)和整個數(shù)據(jù)集的類間散度矩陣(表示不同類別之間數(shù)據(jù)點的分散程度)。
計算特征向量和特征值: 對于矩陣的逆矩陣乘以類內(nèi)散度矩陣,然后計算這個結(jié)果的特征向量和特征值。通常,選擇最大的特征值對應(yīng)的特征向量。
選擇投影方向: 將特征向量按照對應(yīng)的特征值大小排序,選擇前k個特征向量構(gòu)成投影矩陣,其中k是新的特征空間的維度。
投影: 將原始數(shù)據(jù)集乘以投影矩陣,得到新的、低維的數(shù)據(jù)集。
LDA的目標(biāo)是通過最大化類間散度和最小化類內(nèi)散度,從而在降維的同時保留類別信息。由于其考慮了類別信息,因此LDA通常在分類問題中效果很好。
總體而言,LDA是一種監(jiān)督學(xué)習(xí)的降維技術(shù),與PCA(主成分分析)等無監(jiān)督學(xué)習(xí)的降維方法有所不同。PCA關(guān)注的是數(shù)據(jù)整體的方差,而LDA關(guān)注的是不同類別之間的差異。
PLSDA (Partial Least Squares Discriminant Analysis) 偏最小二乘判別分析:
用于處理分類問題,特別是在多變量數(shù)據(jù)中,它將變量分解為與響應(yīng)變量相關(guān)的成分。
偏最小二乘判別分析(Partial Least Squares Discriminant Analysis, PLS-DA)是一種用于處理多變量數(shù)據(jù)、進(jìn)行降維和分類的方法,特別適用于高度相關(guān)的解釋變量和存在分類問題的情境。
以下是PLS-DA的基本流程和原理:
選擇類別: 確定數(shù)據(jù)集中的類別信息。
數(shù)據(jù)標(biāo)準(zhǔn)化: 對輸入數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化,以確保不同變量的尺度相同。
初始化: 初始化權(quán)重和載荷,這些是通過對類別信息建模而優(yōu)化的參數(shù)。
交替優(yōu)化: 通過交替地最小化預(yù)測誤差來優(yōu)化權(quán)重和載荷。
計算成分: 基于最優(yōu)權(quán)重和載荷,計算新的成分。這些成分是原始變量的線性組合,被用于構(gòu)建新的特征。
重復(fù)步驟: 重復(fù)上述步驟,直到達(dá)到預(yù)定的成分?jǐn)?shù)量或滿足某個停止準(zhǔn)則。
分類: 使用獲得的成分進(jìn)行分類。在PLS-DA中,通常采用閾值將樣本分配給不同的類別。
PLS-DA與普通的PLS回歸方法相似,但其主要目標(biāo)是區(qū)分類別而不是建立回歸模型。在數(shù)據(jù)有潛在結(jié)構(gòu)、且類別信息存在的情況下,PLS-DA通常比傳統(tǒng)的判別分析方法表現(xiàn)更好。
常用限制性排序
限制性排序方法在生態(tài)學(xué)和其他領(lǐng)域中經(jīng)常用于研究響應(yīng)變量和解釋變量之間的關(guān)系。
RDA (Redundancy Analysis) 冗余分析:
- 簡介: RDA 是一種用于解釋響應(yīng)變量的多變量技術(shù),通過最大化解釋響應(yīng)變量的方差來找到解釋變量中的線性組合。
- 應(yīng)用: 通常用于生態(tài)學(xué)中研究物種豐富度、組成或其他響應(yīng)變量與環(huán)境因子之間的關(guān)系。
以下是冗余分析的基本流程和原理:
數(shù)據(jù)收集: 收集包括響應(yīng)變量(依賴變量)和預(yù)測變量(自變量)的多變量數(shù)據(jù)。
數(shù)據(jù)標(biāo)準(zhǔn)化: 對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化,以確保不同變量的尺度相同。
構(gòu)建模型: RDA基于線性模型,試圖找到一個線性關(guān)系,最大程度地解釋響應(yīng)變量的方差。
分解方差: 將響應(yīng)變量的方差分解為與預(yù)測變量直接相關(guān)的部分和不相關(guān)的部分。冗余分析的關(guān)鍵是找到與預(yù)測變量相關(guān)的冗余分量。
排序和解釋: 對于冗余分量,可以進(jìn)行排序以了解哪些預(yù)測變量對解釋響應(yīng)變量的變異最為重要。
檢驗顯著性: 使用統(tǒng)計檢驗來確定模型的顯著性。這包括檢驗?zāi)P驼w的顯著性以及每個預(yù)測變量對模型的個別貢獻(xiàn)。
冗余分析的主要優(yōu)勢在于它可以處理多個響應(yīng)變量和多個預(yù)測變量,同時考慮它們之間的相關(guān)性。這使得它在解釋生態(tài)系統(tǒng)中多變量關(guān)系方面非常有用。
db-RDA (distance-based Redundancy Analysis) 基于距離冗余分析:
- 簡介: db-RDA 是一種基于距離矩陣的 RDA 方法,適用于非線性和非對稱關(guān)系。
- 應(yīng)用: 適用于樣本間的非線性相似性關(guān)系,比如在物種組成數(shù)據(jù)中。
基于距離的冗余分析(Distance-based Redundancy Analysis, dbRDA)是冗余分析(RDA)的一種擴(kuò)展形式,主要應(yīng)用于處理非歐幾里得的生態(tài)數(shù)據(jù)。在傳統(tǒng)的RDA中,數(shù)據(jù)通常被假設(shè)為多元正態(tài)分布,但這在處理生態(tài)學(xué)數(shù)據(jù)時可能不合適,特別是在存在非對稱性、離群值或多重共線性等情況下。
以下是基于距離的冗余分析的基本流程和原理:
距離矩陣的計算: 首先,需要計算響應(yīng)變量和預(yù)測變量之間的距離矩陣,以代替?zhèn)鹘y(tǒng)RDA中使用的協(xié)方差矩陣。這通常涉及到計算 Bray-Curtis 距離、Euclidean 距離或其他適用于非歐幾里得空間的距離。
模型構(gòu)建: 類似于傳統(tǒng)的RDA,基于距離的冗余分析也是通過構(gòu)建一個線性模型來描述響應(yīng)變量和預(yù)測變量之間的關(guān)系。這個模型的目標(biāo)是最大化解釋響應(yīng)變量的方差。
模型解釋: 解釋模型的冗余分量,理解每個預(yù)測變量對響應(yīng)變量的貢獻(xiàn)。這涉及到排序和解釋冗余分量的過程。
檢驗顯著性: 對模型整體和每個預(yù)測變量的顯著性進(jìn)行統(tǒng)計檢驗。
基于距離的冗余分析的優(yōu)勢在于它能夠處理生態(tài)學(xué)數(shù)據(jù)的非正態(tài)性和異方差性,同時不需要假設(shè)線性關(guān)系。這使得它更具靈活性,適用于更廣泛的生態(tài)學(xué)和環(huán)境數(shù)據(jù)。
CCA (Canonical Correspondence Analysis) 典型對應(yīng)分析:
- 簡介: CCA 是對應(yīng)分析 (CA) 的擴(kuò)展,以解釋響應(yīng)變量的變異性。
- 應(yīng)用: 常用于研究生態(tài)學(xué)中物種豐富度和環(huán)境因子之間的關(guān)系。
典型對應(yīng)分析(Canonical Correspondence Analysis, CCA)是一種用于分析兩個表之間關(guān)系的多變量統(tǒng)計技術(shù)。它將兩個數(shù)據(jù)表之間的行和列之間的關(guān)系通過最大化它們之間的典型相關(guān)性來建模。這個方法通常應(yīng)用于生態(tài)學(xué)和環(huán)境科學(xué),用于研究環(huán)境因素(如溫度、濕度等)與物種分布之間的關(guān)系。
以下是典型對應(yīng)分析的基本流程和原理:
數(shù)據(jù)準(zhǔn)備: 收集兩個表的數(shù)據(jù),一個表包含環(huán)境變量(如溫度、濕度等),另一個表包含生物群落數(shù)據(jù)(物種的存在與否、豐度等)。
計算典型變量: 使用環(huán)境變量和生物群落數(shù)據(jù)來計算典型變量。這通常涉及到將數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化和轉(zhuǎn)換。
典型對應(yīng)分析模型: 構(gòu)建一個模型,通過最大化環(huán)境變量和生物群落數(shù)據(jù)之間的典型相關(guān)性。這個模型可視為一個對生態(tài)系統(tǒng)中生物群落和環(huán)境變量之間關(guān)系的描述。
解釋結(jié)果: 解釋模型的典型相關(guān)系數(shù),了解環(huán)境因子如何與生物群落結(jié)構(gòu)相關(guān)。通常,通過查看典型變量的負(fù)載ings(loadings)來解釋環(huán)境和生物群落之間的關(guān)系。
顯著性檢驗: 對模型整體和每個典型軸的顯著性進(jìn)行檢驗。
典型對應(yīng)分析的主要目標(biāo)是幫助解釋生態(tài)系統(tǒng)中環(huán)境因素和生物群落之間的關(guān)系。它通常用于揭示環(huán)境梯度如何影響生物多樣性和生態(tài)系統(tǒng)結(jié)構(gòu)。
分析與繪圖
vegan包是生態(tài)群落研究中最常用的包之一,里面包含了大部分的分析函數(shù)。
pctax包提供了快速完成各種排序分析及可視化(bi-plot,tri-plot)的函數(shù):b_analyse用于常用非限制性排序和分組響應(yīng)變量排序,myRDA, myCAP, myCCA用于常用限制性排序。
#安裝pctax包
if(!requireNamespace("pctax"))remotes::install_github("Asa12138/pctax")
library(pctax)
#查看幫助
?pctax::b_analyse
b_analyse的參數(shù)也非常簡單:
otutab:
an otutab data.frame, samples are columns, taxs are rows. 這是我們要輸入的高維響應(yīng)變量數(shù)據(jù)。norm:
should normalized or not? (hellinger) 是否進(jìn)行標(biāo)準(zhǔn)化,我們一般做物種豐度數(shù)據(jù)時會使用hellinger進(jìn)行轉(zhuǎn)化。method:
one of “pca”, “pcoa”, “ca”, “dca”, “nmds”, “plsda”, “tsne”, “umap”, “l(fā)da”, “all”,選擇以下方法的一種或幾種,選”all”就全部跑完。group:
if use lda or plsda, give a group vector,如果用分組響應(yīng)變量排序,那就輸入分組變量,注意和輸入的otutab的列對應(yīng)。dist:
if use pcoa or nmds, your can choose a dist method (default: euclidean),如果用的是基于距離的pcoa和nmds,那就可以選擇距離計算方法。
比如我們做一個PCA試試,產(chǎn)生的b_res包含4個內(nèi)容:1是兩個軸的解釋度,2是每個樣本的位置,2是每個變量的位置,4是每個變量的貢獻(xiàn)度(不是所有方法都能計算貢獻(xiàn)度)。
data(otutab,package = "pcutils")
head(otutab)
## NS1 NS2 NS3 NS4 NS5 NS6 WS1 WS2 WS3 WS4
## s__un_f__Thermomonosporaceae 1092 1920 810 1354 1064 1070 1252 1597 1330 941
## s__Pelomonas_puraquae 1962 1234 2362 2236 2903 1829 644 495 1230 1284
## s__Rhizobacter_bergeniae 588 458 889 901 1226 853 604 470 1070 1028
## s__Flavobacterium_terrae 244 234 1810 673 1445 491 318 1926 1493 995
## s__un_g__Rhizobacter 1432 412 533 759 1289 506 503 590 445 620
## WS5 WS6 CS1 CS2 CS3 CS4 CS5 CS6
## s__un_f__Thermomonosporaceae 1233 1011 2313 2518 1709 1975 1431 1527
## s__Pelomonas_puraquae 953 635 1305 1516 844 1128 1483 1174
## s__Rhizobacter_bergeniae 846 670 1029 1802 1002 1200 1194 762
## s__Flavobacterium_terrae 577 359 1080 1218 754 423 1032 1412
## s__un_g__Rhizobacter 657 429 1132 1447 550 583 1105 903
## [ reached 'max' / getOption("max.print") -- omitted 1 rows ]
b_analyse(otutab,method = "pca")->b_res
要對結(jié)果進(jìn)行可視化也非常簡單,直接plot就行。這里給所有的樣本映射了一個分組值,metadata是包含樣本分組設(shè)計和各種環(huán)境因素的表格,“Group”是metadata的一列:
plot(b_res,Group = "Group",metadata = metadata)
## $PCA

對于這種分組的顯著性(怎么說明三組的群落組成存在顯著差異?),具體有adonis/mrpp/anosim/mantel等方法(可參考https://blog.csdn.net/qq_42830713/article/details/129073120),一般用vegan包的adonis2函數(shù)(又叫PERMANOVA,Permutational Multivariate Analysis of Variance Using Distance Matrices)來檢驗。
pctax::permanova函數(shù)也整合了幾種方法,可以獲得對應(yīng)的R方和p值,然后標(biāo)在PCA圖上。注意這幾種方法都是基于距離的,建議檢驗方法和降維方法使用的距離保持一致
pctax::permanova(otutab,metadata["Group"],method = "adonis")
## group r2 p_value sig
## 1 Group 0.1832 0.001 TRUE
pctax::permanova(otutab,metadata["Group"],method = "mrpp")
## group r p_value sig
## 1 Group 0.0375 0.002 TRUE
pctax::permanova(otutab,metadata["Group"],method = "anosim")
## group r p_value sig
## 1 Group 0.3947 0.001 TRUE
也可以將連續(xù)變量映射到顏色上:
plot(b_res,Group = "env1",metadata = metadata)
## $PCA

繪圖有很多可以靈活調(diào)節(jié)的參數(shù):
?pctax:::plot.b_res
mode 是繪圖風(fēng)格,1~3都是我常用的:
plot(b_res,Group = "Group",metadata = metadata,mode = 2)
plot(b_res,Group = "Group",metadata = metadata,mode = 3)

把bi設(shè)為true的話,會畫出一部分貢獻(xiàn)度最高的變量:
plot(b_res,Group = "Group",metadata = metadata,bi = T,Topn = 10)
## $PCA

margin 可以畫出點的分布密度圖或箱形圖:
plot(b_res,Group = "Group",metadata = metadata,margin = T,mode = 3)
## $PCA

plot(b_res,Group = "Group",metadata = metadata,margin = T,box = F)
## $PCA

限制性排序則需要輸入響應(yīng)變量數(shù)據(jù)和我們要研究的環(huán)境數(shù)據(jù):
以RDA分析為例:
data(otutab,package = "pcutils")
env=metadata[,6:10]
#RDA
myRDA(otutab,env)->phy.rda
##
## Call:
## vegan::decorana(veg = dat.h)
##
## Detrended correspondence analysis with 26 segments.
## Rescaling of axes with 4 iterations.
## Total inertia (scaled Chi-square): 0.3207
##
## DCA1 DCA2 DCA3 DCA4
## Eigenvalues 0.03127 0.02265 0.01916 0.01729
## Additive Eigenvalues 0.03127 0.02265 0.01917 0.01727
## Decorana values 0.03150 0.02146 0.01701 0.01035
## Axis lengths 0.74268 0.74498 0.57253 0.52361
##
## DCA analysis, select the sorting analysis model according to the first value of the Axis lengths row
## Axis Lengths >4.0-CCA (based on unimodal model, canonical correspondence analysis);
## If it is between 3.0-4.0 - both RDA/CCA;
## If less than 3.0-RDA (based on linear model, redundancy analysis)
## [1] "===============Initial Model================"
## [1] "Initial cca, vif>20 indicates serious collinearity:"
## env4 env5 env6 lat long
## 2.671744 3.148860 1.161378 1.417139 1.120735
## Initial Model R-square: 0.05504835
## [1] "=============Statistics==========="
## 0.3329753 Constrained indicates the degree to which environmental factors explain differences in community structure
## 0.6670247 unconstrained means that the environmental factors cannot explain the part of the community structure
RDA_plot(phy.rda,"Group",metadata)

對于這里每一個環(huán)境因素的檢驗,我們?nèi)匀豢梢允褂胊donis,或者envfit,bioenv等檢驗方式:
adonis_res=pctax::permanova(otutab,env,method = "adonis")
plot(adonis_res)

envfit_res=pctax::envfitt(phy.rda,env)
plot(envfit_res,mode=1)

限制性排序比較復(fù)雜,如果輸入的環(huán)境因素較多具有共線性,還應(yīng)該對得到的結(jié)果使用ordistep進(jìn)行forward,backward,both等方式的篩選,得到最合適的模型。