[R-sig-eco] Adonis and Random Effects

Erin Nuccio enuccio at gmail.com
Sun Mar 10 04:09:03 CET 2013


Hi Steve and R list,

I was hoping you could clarify something you mentioned in previous post.

A quick recap...  I have a split-plot design where I determined the microbial communities at 3 grasslands (see post script for design).  I am trying quantify the how much of my community can be explained by Treatment or Grassland effect.  After talking with a statistician, it seems like treating Grassland as a Fixed effect would be reasonable (because I have such a small number of grasslands).

You mentioned that if I treat Grassland as a Fixed effect, and use the following formula, the Grassland effect would not be tested correctly:

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

Why is this?  Is there any way to remedy this?  

Thanks for your feedback,
Erin


Experimental design:
4 split plots * 2 Treatments * 3 Grasslands = 24 observations
Treatment: 2 levels (each within 1 split plot)
Grassland: 3 levels
GrasslandPlot: 12 levels (4 split plots nested in 3 Grasslands)





On Feb 4, 2013, at 6:22 AM, Steve Brewer wrote:

> 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.
>> 
>> Thanks for your help,
>> Erin
>> 
>> 
>> 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