[R-sig-eco] Adonis and Random Effects

Steve Brewer jbrewer at olemiss.edu
Mon Feb 4 15:22:08 CET 2013


Erin,

There have been a lot of similar queries (e.g., repeated measures, nested
permanova). Jari can correct me if I am wrong, but as far as I know, no
one has developed a way to define multiple error terms in adonis.


You can use adonis, however, to get the split-plot effects. If you want to
make a grassland a random effect, use the following statement

adonis(formula = community_distance_matrix ~ Treatment + Grassland +
GrasslandPlot, strata = GrasslandPlot)


The treatment effect will be correct because the residual error term
(which is equivalent to treatment x GrasslandPlot interaction nested
within Grassland) is the correct error term. The Grassland effect,
however, will not be tested correctly because it is using the residual
error term when it should be using GrasslandPLot as the error term. You
can determine what the F stat for Grassland should be, however, using the
Ms Grassland and MS GrasslandPlot from the anova table to construct the F
test. You just won't get a p-value for the test.

If you want to treat Grassland as a fixed effect, the model is similar but
defines the interaction

adonis(formula = community_distance_matrix ~ Treatment*Grassland +
GrasslandPlot, strata = GrasslandPlot)


In this case, the treatment x grassland interaction will be tested
correctly, as will the treatment effect, but not the Grassland effect.

Unfortunately, you cannot just take averages of abundances across the
treatment and control in each plot and then do a separate analysis of
Grassland and GrasslandPLot (unless you're using Euclidean distances). I
suspect you're not using Euclidean distances.

Hope this helps some.

Good luck,
Steve


J. Stephen Brewer 
Professor 
Department of Biology
PO Box 1848
 University of Mississippi
University, Mississippi 38677-1848
 Brewer web page - http://home.olemiss.edu/~jbrewer/
FAX - 662-915-5144
Phone - 662-915-1077




On 2/4/13 1:14 AM, "Erin Nuccio" <enuccio at gmail.com> wrote:

>Hello List,
>
>Is adonis capable of modeling random effects?  I'm analyzing the impact
>of a treatment on the microbial community in a split-plot design (2
>treatments per plot, 4 plots per grassland, 3 grasslands total). I would
>like to quantify how much of the variance is due to the Treatment versus
>the Grassland.  It seems like Grassland should be a random effect, since
>there are thousands of grasslands, and I'm only looking at 3.
>
>I have tried to use the notation that works with lme4, and it's not
>working for me (see below for formula and error messages).  If adonis
>can't do random effects, are there any alternatives?  Or, considering my
>goal, are there any other programs I should look into?  Any suggestions
>would be highly appreciated!
>
>Thanks for your help,
>Erin
>
>
>
>Here's what I think I should run:
>adonis(formula = community_distance_matrix ~ Treatment + (1|Grassland) +
>(1|GrasslandPlot), strata = GrasslandPlot)
>
>Here are my factors:
>'data.frame':	24 obs. of  4 variables:
> $ Treatment    : Factor w/ 2 levels "T1","T2": 1 1 1 1 1 2 2 2 1 1 ...
> $ Grassland    : Factor w/ 3 levels "G1","G2","G3": 3 3 1 1 1 2 2 1 2 2
>...
> $ Plot         : Factor w/ 4 levels "P1","P2","P3","P4": 1 2 2 3 4 1 3 2
>1 2 ...
> $ GrasslandPlot: Factor w/ 12 levels "G1:P1","G1:P2","G1:P3"..: 9 10 2 3
>4 5 7 2 5 6 ...
>
>And here's the error message:
>Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) :
>  contrasts can be applied only to factors with 2 or more levels
>In addition: Warning messages:
>1: In Ops.factor(1, Grassland) : | not meaningful for factors
>2: In Ops.factor(1, GrasslandPlot) : | not meaningful for factors
>
>_______________________________________________
>R-sig-ecology mailing list
>R-sig-ecology at r-project.org
>https://stat.ethz.ch/mailman/listinfo/r-sig-ecology



More information about the R-sig-ecology mailing list