vegan - NMDS 为 ANOSIM 和 ADONIS 提供了相互矛盾的结果
问题描述
我正在测试捕捞区和禁捕区之间群落组成的差异,虽然 nmds 似乎表明两个级别有很大重叠,但 ANOSIM 和 ADONIS 表明存在显着差异。我是否做错了什么,或者我看不到这种显着差异的原因?
species
env=species[,1]
species=species[,-1]
species = species[,colSums(species) > 2]
nmds=metaMDS(species, distance="bray", k=3, type="n", trymax=100)
nmds
env$Protection=as.factor(env$Protection)
pointvec <- c(21, 21)
bgvec <- c("black","white")
with(env, levels(Protection))
plot(nmds,type="n",xaxt='n',xlab="",cex.lab=1.5,cex.axis=1.4,xlim=c(-1.5,1.5),ylim=c(-1.2,1))
axis(side=1)
with(env, points(nmds,pch=pointvec[Protection],cex=1,bg = bgvec[Protection],type="p" ,display="sites"))
ordiellipse(nmds, groups=env$Protection, kind = "se", conf = 0.95)
legend("topleft", "A", bty="n",cex=1.5,inset=-0.02,adj=1)
legend("bottomright", "Stress = 0.182", bty="n",cex=1.5)
with(env,legend("topright", legend = levels(Protection),inset=-0.007,cex=1.5,bty="n",pt.bg = bgvec,pch=pointvec))
spe.dist <- vegdist(species,method='bray')
spe.ano <- anosim(spe.dist, env$Protection)
summary(spe.ano)
#Call:
#anosim(x = spe.dist, grouping = env$Protection)
#Dissimilarity: bray
#ANOSIM statistic R: 0.04693
#Significance: 0.029
#Permutation: free
#Number of permutations: 999
#Upper quantiles of permutations (null model):
#90% 95% 97.5% 99%
#0.0290 0.0398 0.0487 0.0593
#Dissimilarity ranks between and within classes:
# 0% 25% 50% 75% 100% N
#Between 1 655.625 1193.50 1771.25 2317 1184
#fished 3 750.500 1360.00 1896.50 2317 666
#no-take 2 358.125 837.25 1525.00 2285 496
然后 permanova 给出了类似的结果
adonis(species~env$Protection,method='bray')
#Call:
#adonis(formula = species ~ env$Protection, method = "bray")
#Permutation: free
#Number of permutations: 999
#Terms added sequentially (first to last)
# Df SumsOfSqs MeanSqs F.Model R2 Pr(>F)
#env$Protection 1 0.9517 0.95174 2.8946 0.04141 0.002 **
#Residuals 67 22.0296 0.32880 0.95859
#Total 68 22.9813 1.00000
#---
#Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
解决方案
首先,NMDS 图形和您的测试不一致:测试是针对类质心的位置,但图表显示了观察的分布。ordiellipse(..., kind = "se", conf = 0.95)
会更符合测试。其次,测试(特别是adonis
- 我不会使用anosim
)基于解释为欧几里得的完整n维空间,而 NMDS 是非欧几里得差异的二维映射(尽管 NMDS 图本身是欧几里得)。可能是您的组在您未估计的第三维度上有所不同。
推荐阅读
- mysql - 在另一个查询中使用结果
- javascript - 像在织物 js 中一样在纸 js 中调整大小/缩放控件
- sql - 当'with'子句没有数据时,将'with'子句结果与表连接
- vue.js - 如果我不确定是否需要在其他地方使用它,是否应该将此代码转换为自己的组件?
- xml - Powershell 查找和替换跨两行的文本
- vuetify.js - 为什么我需要导入“VToolbarItems”?
- python - 如何在我的 view.py 中正确包含带有 .save() 的表单
- python - 如何用 tkinter 制作计时器?
- python - 如何更改 Windows 10 上的时区?
- python - 当 sharex=True 时 Pandas 子图丢失数据(错误?) - 添加数据