2016-02-15 1 views
1

J'essaie de comprendre un PERMANOVA assumtption qui est multivariate spread entre les groupes est similaire à la variance homogénéité univariate ANOVA, pour cela, je fais un code R et je ne trouve pas ce résultat , Pourquoi?à plusieurs variables PERMANOVA répartis entre les groupes ne ressemble pas à l'homogénéité variance ANOVA

Mon code:

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) 
+2

Les centroïdes ('eff') diffèrent par' traiter' et 'adonis' le trouve. –

+0

Merci beaucoup Jari Oksanen. – Leprechault

Répondre

3

Vous semblez être source de confusion beaucoup de choses ici. PERMANOVA est une ANOVA multivariée avec test basé sur la permutation. PERMANOVA teste les différences entre les centroïdes de groupe --- en d'autres termes, il compare les moyennes multivariées. Il suppose l'homogénéité des variances. Pour vérifier que toute différence entre les groupes en termes de centroïdes n'est pas induite par des différences dans les écarts, on peut utiliser la méthode de dispersion à plusieurs variables mises en œuvre dans betadisper() R. adonis() et betadisper() font des choses très différentes:

  • adonis() donne une analyse comme PERMANOVA,
  • betadisper() donne une analyse de la propagation multivariée.

Ce que nous pouvons conclure est donc que les deux méthodes détectent correctement une différence dans les moyens (adonis() montre un effet treat significatif)

> 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 

et correctement betadisper() (tous vos groupes avaient la même dispersion) ne parvient pas à rejeter l'hypothèse nulle des dispersions multivariées homogènes

> 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 

Tout est en accord avec la façon dont vous simulez d les données.

+0

Gavin Simpson merci pour le cours. Aide-moi tellement, meilleurs voeux, – Leprechault