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
PERMANOVA and adonis: trying to clear my confusion
3 messages · Pedro Neves, Steve Brewer
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
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