Skip to content

PERMANOVA and adonis: trying to clear my confusion

3 messages · Pedro Neves, Steve Brewer

#
Hi all:

Despite having followed some of the threads on this list and having read 
many different sources I'm still not sure how to express (in terms of 
formula) my experimental design in adonis.

I'm trying to compare the composition of benthonic communities in 4 
different locations and 2 seasons.

My factors are as follows:

1 - Season (Fixed, 2 levels)

2 - Habitat type (Fixed, 2 levels)

3 - Location (Random, 2 levels, nested in Habitat)

Assuming that my species data is Spec_data and the factors data is 
Env_data, my formulation is:

adonis(Spec_data ~ Season * Habitat/Location, strata=Habitat, 
data=Env_data, method="bray")

Is this formulation correct, according to my experimental design?


Thanks in advance.

All the best:

Pedro
#
On 08/01/19 09:59, Pedro Neves wrote:
Hi again:

In trying to respond to my own question, I compared the results of the 
PERMANOVA obtained with R:vegan and using the original FORTRAN program 
from Marti Anderson and Primer 6+.

The results from R are different from the ones obtained with the other 
two programs and the difference on the degrees of freedom with R, 
clearly indicate that the formula is incorrect:


Results from R (using adonis2(formula = Spec_data ~ Season * 
Habitat/Location, data = Env_data, method = "bray", by = "terms", strata 
= Habitat):

 ?????????????????????? Df SumOfSqs????? R2?????? F Pr(>F)
------------------------------------------------------------------------------------------ 

Season ??????????????? 1?? 1.4465 0.07112? 50.360? 0.001 ***
Habitat???????????????? 1?? 5.9292 0.29150 206.425? 0.001 ***
Season:Habitat???????? 1?? 0.7575 0.03724? 26.373? 0.001 ***
Season:Habitat:Local?? 4?? 4.3942 0.21604? 38.246? 0.001 ***
Residual????????????? 272?? 7.8127 0.38410
Total???????????????? 279? 20.3401 1.00000
------------------------------------------------------------------------------------------- 



Results from PERMANOVA (original FORTRAN code):

 ?Source???????????? df??????? SS?????????? MS????????? F P(perm) P(MC)
 ?-----------------------------------------------------------------------------
 ? Se????????????????? 1???? 14029.6135?? 14029.6135??? 1.5637 0.2592? 
0.2358
 ? Ha????????????????? 1???? 56723.5220?? 56723.5220??? 4.2938 0.0002? 
0.0188
 ? Lo(Ha)????????????? 2???? 26421.0270?? 13210.5135?? 28.1272 0.0002? 
0.0002
 ? SexHa?????????????? 1????? 7504.5849??? 7504.5849??? 0.8364 0.3864? 
0.5542
 ? SexLo(Ha)?????????? 2???? 17944.4582??? 8972.2291?? 19.1032 0.0002? 
0.0002
 ? Residual????????? 272??? 127750.3725???? 469.6705
 ? Total???????????? 279??? 250373.5780
 ?-----------------------------------------------------------------------------

Results from PRIMER:

PERMANOVA table of results
 ??? ?? ??? ?????? ??? ????? ??? ??????? ??? ?????? ??? Unique
Source??? ?df??? ???? SS??? ??? MS??? Pseudo-F??? P(perm) ?perms??? ?P(MC)
------------------------------------------------------------------------------------------------------------------------
Se ?? ? 1??? ? 14465??? ?14465??? ? 1,8194??? ?0,3153??? ??? 51 0,2024
Ha??? ? 1??? ? 12752??? ?12752??? ?0,34679??? ?0,6594??? ???? 3 0,8376
Lo(Ha)??? ? 2??? ? 73540??? ?36770??? ? 128,01??? ?0,0002 4982??? 0,0002
SexHa??? ? 1??? ?8616,6??? 8616,6??? ? 1,0838??? ?0,3414 51??? 0,4186
SexLo(Ha)??? ? 2??? ? 15901??? 7950,4??? ? 27,679??? ?0,0002 4980??? 0,0002
Res??? 272??? ? 78127??? 287,23
Total??? 279??? 2,034E5
-------------------------------------------------------------------------------------------------------------------------- 


What am I missing in R formulation?

Thanks in advance:


Pedro
#
I?ve generated a function called ?centroidmatrix? that might be helpful to you. I think this could allow you to test the season and habitat and their interaction effects using the correct error term.

#' centroidmatrix
#' This function allows you to generate a matrix of centroids from a non-Euclidean distance matrix using the betadisper function in vegan.
#' @param factorname The name of a treatment factor file containing the treatment factors and other sources of variation and a grouping variable for calculation of centroids in the columns and observations in rows
#' @param speciesname The name of species file which has species in columns and observations in rows in the same order as in the factorname file and of the same length
#' @param groupvarname The name of the grouping variable in the factorname file for which centroids are calculated
#' @param distancetype The type of distance or dissimilarity matrix to be calculated from the species file using the vegdist function in vegan Default is "bray"
#' @export
#' @examples
#' centroidmatrix()

centroidmatrix <- function(factorname, speciesname, groupvarname, distancetype){
groupvar <- factor(groupvarname)
braydist <- vegdist(speciesname, method = distancetype)
betadisperout <- betadisper(braydist, groupvar, type = 'centroid')
braycent <- betadispout$centroids


return(braycent)


}

Stephen Brewer
jbrewer at olemiss.edu<mailto:jbrewer at olemiss.edu>
Professor
Department of Biology
PO Box 1848
 University of Mississippi
University, Mississippi 38677-1848
 Brewer web page - https://jstephenbrewer.wordpress.com
FAX - 662-915-5144 Phone - 662-202-5877
On Jan 8, 2019, at 7:49 AM, Pedro Neves <pedro.neves at oom.arditi.pt<mailto:pedro.neves at oom.arditi.pt>> wrote:

        
On 08/01/19 09:59, Pedro Neves wrote:
Assuming that my species data is Spec_data and the factors data is Env_data, my formulation is:

adonis(Spec_data ~ Season * Habitat/Location, strata=Habitat, data=Env_data, method="bray")

Is this formulation correct, according to my experimental design?

Hi again:

In trying to respond to my own question, I compared the results of the PERMANOVA obtained with R:vegan and using the original FORTRAN program from Marti Anderson and Primer 6+.

The results from R are different from the ones obtained with the other two programs and the difference on the degrees of freedom with R, clearly indicate that the formula is incorrect:


Results from R (using adonis2(formula = Spec_data ~ Season * Habitat/Location, data = Env_data, method = "bray", by = "terms", strata = Habitat):

                       Df SumOfSqs      R2       F Pr(>F)
------------------------------------------------------------------------------------------
Season                 1   1.4465 0.07112  50.360  0.001 ***
Habitat                 1   5.9292 0.29150 206.425  0.001 ***
Season:Habitat         1   0.7575 0.03724  26.373  0.001 ***
Season:Habitat:Local   4   4.3942 0.21604  38.246  0.001 ***
Residual              272   7.8127 0.38410
Total                 279  20.3401 1.00000
-------------------------------------------------------------------------------------------


Results from PERMANOVA (original FORTRAN code):

 Source             df        SS           MS          F P(perm) P(MC)
 -----------------------------------------------------------------------------
  Se                  1     14029.6135   14029.6135    1.5637 0.2592  0.2358
  Ha                  1     56723.5220   56723.5220    4.2938 0.0002  0.0188
  Lo(Ha)              2     26421.0270   13210.5135   28.1272 0.0002  0.0002
  SexHa               1      7504.5849    7504.5849    0.8364 0.3864  0.5542
  SexLo(Ha)           2     17944.4582    8972.2291   19.1032 0.0002  0.0002
  Residual          272    127750.3725     469.6705
  Total             279    250373.5780
 -----------------------------------------------------------------------------

Results from PRIMER:

PERMANOVA table of results
                                                       Unique
Source     df         SS        MS    Pseudo-F    P(perm)  perms     P(MC)
------------------------------------------------------------------------------------------------------------------------
Se      1      14465     14465      1,8194     0,3153        51 0,2024
Ha      1      12752     12752     0,34679     0,6594         3 0,8376
Lo(Ha)      2      73540     36770      128,01     0,0002 4982    0,0002
SexHa      1     8616,6    8616,6      1,0838     0,3414 51    0,4186
SexLo(Ha)      2      15901    7950,4      27,679     0,0002 4980    0,0002
Res    272      78127    287,23
Total    279    2,034E5
--------------------------------------------------------------------------------------------------------------------------

What am I missing in R formulation?

Thanks in advance:


Pedro

_______________________________________________
R-sig-ecology mailing list
R-sig-ecology at r-project.org<mailto:R-sig-ecology at r-project.org>
https://stat.ethz.ch/mailman/listinfo/r-sig-ecology