方差分解分析變量篩選與顯著性計(jì)算
引言
VPA中的方差分解是分析影響內(nèi)生變量的結(jié)構(gòu)沖擊的貢獻(xiàn)度。
原理是自變量變化會(huì)對(duì)因變量產(chǎn)生貢獻(xiàn),利用方差分解分析VPA(Variance Partitioning Analysis)可以計(jì)算各自變量的貢獻(xiàn)程度。
在地球環(huán)境科學(xué)的實(shí)際應(yīng)用中,可以基于VPA結(jié)果得出不同類型的環(huán)境因素(如何氣候、土壤性質(zhì)以及植物)對(duì)生物群落組成(如植被豐度,微生物群落)的解釋程度。
在 R 中進(jìn)行方差分解同樣離不開vegan包,主要依賴兩個(gè)功能:
- 變量篩選
ordistep - 方差分解
varpart
變量篩選
在進(jìn)行任何多變量的分析,必須考慮變量之間存在的相關(guān)性。除了主成分分析,可以用RDA分析
冗余分析(redundancy analysis,RDA)是一種回歸分析結(jié)合主成分分析的排序方法,也是多響應(yīng)變量(multiresponse)回歸分析的拓展。從概念上講,RDA是響應(yīng)變量矩陣與解釋變量之間多元多重線性回歸的擬合值矩陣的PCA分析。
代碼如下:
library(vegan)
library(tidyverse)
data(mite)
data(mite.env)
data(mite.pcnm)
rda_full <- rda(mite~., data = cbind(mite.pcnm, mite.env))
rda_null <- rda(mite~1, data = cbind(mite.pcnm, mite.env))
rda_back <- ordistep(rda_full, direction = 'backward',trace = 0)
# forward selection
rda_frwd <- ordistep(rda_null, formula(rda_full), direction = 'forward',trace = 0)
# bothward selection
rda_both <- ordistep(rda_null, formula(rda_full), direction = 'both',trace = 0)
關(guān)于ordistep的說明文檔可以見R的參考文檔:https://rdrr.io/rforge/vegan/man/ordistep.html
約束排序方法 ( cca, rda, capscale) 的自動(dòng)逐步模型構(gòu)建。該函數(shù)ordistep是仿照的step,可以使用排列測試進(jìn)行前向、后向和逐步模型選擇。對(duì)于由或創(chuàng)建的排序?qū)ο螅瘮?shù)ordiR2step僅對(duì)調(diào)整后的 R2和 P 值執(zhí)行正向模型選擇。
總體上,根據(jù)一系列“黑盒”操作,選擇出主要的變量。
結(jié)果如圖,根據(jù)rda_both結(jié)果:

在mite.env因素中選擇了WatrCont因子,在mite.pcnm因素中選擇了V2和V6因子
方差分解
在進(jìn)行VPA時(shí),首先就要對(duì)這些環(huán)境因子進(jìn)行一個(gè)分類,然后在約束其它類環(huán)境因子的情況下,對(duì)某一類環(huán)境因子進(jìn)行排序分析,這種分析也成為偏分析,即partialRDA。
在對(duì)每一類環(huán)境因子均進(jìn)行偏分析之后,即可計(jì)算出每一個(gè)環(huán)境因子單獨(dú)以及不同環(huán)境因子相互作用分別對(duì)生物群落變化的貢獻(xiàn)。
兩類的情況
首先是兩類的情況,書接上文,把環(huán)境因子分為mite.env和mite.pcnm兩類,即環(huán)境因子和空間相鄰因子
df_env <- mite.env %>% select(WatrCont)
df_pcnm <- mite.pcnm %>% select(V2, V6)
# Perform variation partitioning analysis, the first variable is the community matrix
# the second and third variables are climate variable set and soil property variable set
vpt <- varpart(mite, df_env, df_pcnm)
格式是varpart(因變量,第一類因子,第二類因子)
結(jié)果如圖:

a為X1也就是環(huán)境因素單獨(dú)對(duì)群落變化的貢獻(xiàn)。
b為X2也就是空間相鄰因素對(duì)群落變化的貢獻(xiàn)。
c為X1和X2的相互作用對(duì)群落變化的貢獻(xiàn),這里是0
d為X1和X2無法解釋的群落變化。
接下來繪韋恩圖
plot(vpt, bg = 2:5, Xnames = c('env', 'pcnm'))

環(huán)境因素解釋了20%
顯著性計(jì)算
接下來計(jì)算顯著性
formula_env <- formula(mite ~ WatrCont + Condition(V2) + Condition(V6))
formula_pcnm <- formula(mite ~ Condition(WatrCont) + V2 + V6)
anova(rda(formula_env, data = cbind(mite.pcnm, mite.env)))
anova(rda(formula_pcnm, data = cbind(mite.pcnm, mite.env)))

單獨(dú)計(jì)算環(huán)境因素和空間相鄰因素的顯著性,結(jié)果環(huán)境因素非常顯著(p < 0.01),空間相鄰因素比較顯著 (p < 0.05)
多類的情況
mod <- varpart(mite, ~ SubsDens + WatrCont, ~ Substrate + Shrub + Topo,
mite.pcnm, data=mite.env, transfo="hel")
plot(mod, bg=2:4, Xnames = c('SubsDens + WatrCont', 'Substrate + Shrub + Topo', 'pcnm'))

本文由mdnice多平臺(tái)發(fā)布