PERMANOVA组间的多变量差异与方差同质性ANOVA不相似

时间:2016-02-15 13:38:35

标签: r vegan multivariate-testing manova

我尝试理解PERMANOVA群组中的multivariate spread假设与univariate ANOVA中的方差同质性相似,为此我制作了R代码,但我没有找到这个结果,为什么?

我的代码:

library(vegan)

# Four similar populations:
spdf <- matrix(NA, 60, 4, dimnames =
               list(1:60, c("sp1", "sp2", "sp3", "sp4")))
spdf <- as.data.frame(spdf)
eff <- sort(rep(1:6, 10))
spdf$sp1 = eff + rnorm(60, 0, 0.25)
spdf$sp2 = eff + rnorm(60, 0, 0.25)
spdf$sp3 = eff + rnorm(60, 0, 0.25)
spdf$sp4 = eff + rnorm(60, 0, 0.25)

#3 Treatment 

treat <- gl(3, 20, labels = paste("t", 1:3, sep=""))

# distance matrix

envdist <- vegdist(spdf, method="euclidean")

# when computing  beta-dispersion in anova we have no group differences
# but in adonis is different

anova(betadisper(envdist, treat))
adonis(spdf~treat)

1 个答案:

答案 0 :(得分:5)

你似乎在这里混淆了很多东西。 PERMANOVA是一种多变量ANOVA,具有基于排列的测试。 PERMANOVA测试组质心之间的差异 - 换句话说,它比较了多变量均值。它确实假设方差的同质性。为了检查组之间在质心方面的差异是否由方差的差异引起,我们可能会使用在betadisper()adonis()betadisper()中实现的多变量分散方法。做不同的事情:

  • adonis()提供了像PERMANOVA,
  • 这样的分析
  • betadisper()分析了多变量传播。

我们可以得出的结论是,这两种方法正确地检测出均值的差异(adonis()显示了显着的treat效果)

> adonis(spdf~treat)

Call:
adonis(formula = spdf ~ treat) 

Permutation: free
Number of permutations: 999

Terms added sequentially (first to last)

          Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
treat      2    3.5326 1.76628  113.66 0.79952  0.001 ***
Residuals 57    0.8858 0.01554         0.20048           
Total     59    4.4184                 1.00000           
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

betadisper()正确(所有组具有相同的分散)都不能拒绝均相多变量分散的零假设

> anova(betadisper(envdist, treat))
Analysis of Variance Table

Response: Distances
          Df Sum Sq  Mean Sq F value Pr(>F)
Groups     2 0.1521 0.076041  1.1099 0.3366
Residuals 57 3.9050 0.068509

这完全符合您模拟数据的方式。