什么是VPA
全称变量分区分析(VPA),中文成为分布式分解分析,指定的环境因素用于确定社区结构变化的解释比例。
我们使用CCA/RDA的排序分析方法可以得到所有参与分析的环境因子对群落变化的解释比例。
那么在进行VPA时,首先就要对这些环境因子进行一个分类,然后在约束其它类环境因子的情况下,对某一类环境因子进行排序分析,这种分析也成为偏分析,即partial CCA/RDA。
在对每一类环境因子均进行偏分析之后,即可计算出每一个环境因子单独以及不同环境因子相互作用分别对生物群落变化的贡献。
分析实战
这里使用R语言vegan包的varpart函数进行VPA分析,之后使用plot函数对结果进行可视化。
VPA是确定不同类型环境因子对群落变化的解释,那么首先就要对环境因子进行一个分类,这个类怎么分呢?
简单的说就是你自己想怎么分就怎么分,根据你研究的实际情况自己确定怎么分类。
两种环境因子分类
当分析的环境因子只有两类时,可以将两类环境因子放在不同的数据框中进行分析。
首先我们导入示例数据。
data(mite)
data)
data)
这里mite为群落丰度数据表格,行为样本,列为物种;mi和mi分别为两个环境因子的数据表格,同样行为样本,列为环境因子。
mod <- varpart(mite, mi, mi, transfo="hel")
mod
进行VPA的时候,第一个数据框为群落数据,之后两个数据框分别代表两类环境因子,transfo时对数据进行转换,hel为hellinger转换,可以避免分析的“弓形效应”。
在结果中我们看Individual fractions部分即可。
a为X1也就是命令中第二个数据框单独对群落变化的贡献。
c为X2也就是命令中第三个数据框单独对群落变化的贡献。
b为X1和X2的相互作用对群落变化的贡献。
d为X1和X2无法解释的群落变化。
使用plot函数对结果进行可视化。
plot(mod, bg = c("hotpink","skyblue"))
三种及以上的分类
对与将环境因子分为3类或4类的情况,可以将环境因子放在同一个数据框中,之后使用formula的形式指定不同的分类因子。
mod <- varpart(mite, ~ SubsDens + WatrCont, ~ Substrate + Shrub + Topo,
mi, data=mi, transfo="hel")
可以看到3种分类的结果就相对复杂一些,a-h的含义需要根据Partition table中的对应情况确定一下,这个我就不从头捋一遍了,感兴趣的朋友可以自行画个交集和并集的图分解一下。
为什么不捋一遍结果呢,是因为可视化之后解释的比例就直接给出了