Title: segRDA: An R package for performing piecewise redundancy analysis
Link: https://besjournals.onlinelibrary.wiley.com/doi/abs/10.1111/2041-210X.13300?af=R
First published: 17 September 2019
Journal: Methods in Ecology and Evolution
IF: 7.099
First and corresponding author: Danilo Cândido Vieira
Department: Centro de Estudos do Mar -Universidade Federal do Paraná, Brazil.
冗余分析(Redundancy analysis)被广泛应用于物种与环境的关联。该分析假设响应变量在整个梯度上具有相同的连续的线性趋势,但通常真实情况并非如此。为了克服这一问题,提出了分段冗余分析(piecewise redundancy analysis,pwRDA)。
pwRDA允许将响应和解释变量之间的关系分解为多个部分。群落之间的断点由split-moving-window(SMW)来评估。SMW是一种简单而强大的方法,广泛用于检测有序数据集中的不连续点。
pwRDA和SMW分析都在segRDA包中进行。
SMW的结果为沿着梯度分布的群落断点的数量和位置提供了估计。在急剧变化的群落中,pwRDA模型比传统的RDA模型具有更大的信息量。但是在平稳过渡的群落中,pwRDA与传统的RDA没有区别。
SMW和pwRDA的结合使用使我们能够沿着环境梯度确定生态群落之间的断点和过渡区。当物种-生境关系可能因群落而异时,这种方法特别有用。
segRDA分三步:数据排序;SMW分析;pwRDA分析。
SMW:在数据序列的开头设置一个偶数大小的窗口,把窗口里的序列平均分成两半;计算每一半群落的中心;计算两半之间群落的不相似性;窗口沿着数据滑动一个位置;再重复上面的步骤直到序列末尾。不相似性的峰值代表着群落断点的位置。
窗口大小的选择影响SMW分析的结果:小窗口产生许多表示小尺度变化的峰,而大窗口减少了峰的数量,平滑了小尺度变化。通过将不同窗口大小的差异平均在一起,可以降低尺度效应。在本研究中,使用mean Z-score数(标准化的差异值)来检测群落断点。推荐Z值高于1.85的为显著的Z。
segRDA的三步
结果
Sim1,2,3是三套模拟数据,nema是真实数据。Rfull是一般的RDA,Rpw是分段RDA。可以看到Rpw都要高于Rfull。
segRDA已经提交到了CRAN。
https://CRAN.Rproject.org/package=segRDA
segRDA
代码语言:javascript复制install.packages("segRDA")
library(segRDA)
?segRDA
#1. 数据排序
#OrdData,Ordinates both community and explanatory matrices based>#OrdData(x, y, axis = 1, method = NA, ...)
#x:环境因子
#y:群落数据
#axis:RDA哪一轴用于排序。默认第一轴
#method:数据标准化方法
data(sim1)
#这种标准化可以减少双零效应
sim1.o<-OrdData(x=sim1$envi, y=sim1$comm, method="hellinger")
#2. SMW,Split moving window analysis
#SMW(yo, ws, dist = "bray", rand = c("shift", "plot"), n.rand = 99)
#yo:排序过的群落数据
#ws:窗口大小
#dist:不相似性矩阵的方法,默认bray
#rand:随机化类型。shift:限制性的随机化。同一物种的数据随机移动;plot:非限制性的随机化。每个样本随机定位
#n.rand:随机化次数
#单一窗口
ws20<-SMW(yo=sim1.o$yo,ws=20)
SMW analysis (1/1); w =20
|======================================================================| 100%
plot(ws20)
代码语言:javascript复制#多个窗口pool
pool<-SMW(yo=sim1.o$yo,ws=c(20,30,40))
SMW analysis (1/3); w =20
|======================================================================| 100%
SMW analysis (2/3); w =30
|======================================================================| 100%
SMW analysis (3/3); w =40
|======================================================================| 100%
plot(pool,w.effect=TRUE)
代码语言:javascript复制#3.Piecewise redundancy analysis (pwRDA)
#pwRDA(x.ord, y.ord, BPs, n.rand = 99)
#x.ord:排序过的环境因子
#y.ord:排序过的群落
#BPs:上步得到的断点
sim1.pw<-pwRDA(sim1.o$xo,sim1.o$yo, BPs=bp(extract(ws20)))
Selected index: 'dp'
1 window size(s) available in 'smw': 20
Window size selected: 20
Number of breakpoints detected: 1
Breakpoint positions: 53
|======================================================================| 100%
pwRDA analysis
------------------------
** Summary statistics **
------------------------
Statistic P.value
FULL 0.6446825 0.0010000000
PW 0.8122139 0.0003522161
F 2.9643153 0.0110488383
------------------------
END