[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