Hi Steve,

You mentioned that nested.npmanova won't test GrasslandPlot correctly for a 
split-plot design.  However, does adonis test GrasslandPlot correctly, since 
it's using the split-plot error term to test all effects?  

Here are the formulas again.....
adonis(community_dist ~ Grassland*Treatment + GrasslandPlot, strata = 
GrasslandPlot)
nested.npmanova(community_dist ~ Grassland + GrasslandPlot)

Thank you,
Erin





On Mar 10, 2013, at 8:17 AM, JOHN S BREWER wrote:

> Erin,
> 
> Please check the February 25 post I made called "Permanova with nested data." 
> It explains how to test whole plot and split plot effects correctly in 
> adonis. But to answer your question, even if you treat Grassland as a 
> fixed-plot effect (which seems perfectly reasonable), Grassland is a 
> whole-plot effect. Using the model formula given and strata, adonis uses the 
> split-plot error term (i.e., the residual error term) to test all effects. 
> That's wrong because Grassland needs to be tested with the whole-plot error 
> term. In the post I referred to, I describe how you can do a separate test 
> for the whole plot using the BiodiversityR package and the nested.npmanova 
> function. In this case, you would only include Grassland and GrasslandPlot as 
> terms in the model. It's just doing a two-way nested manova. The whole-plot 
> effect of Grassland will be tested correctly using the GrasslandPlot term. 
> GrasslandPlot will be tested with the residual error term, which will be 
> wrong, but you can !
 ignore that. I've tried it with my own data and it works. One cautionary note. 
See the posts by Jari Oksanen and others about the versions of BiodiversityR 
and R used. 
> 
> Hope this helps
> 
> Steve
> ________________________________________
> From: Erin Nuccio [enuc...@gmail.com]
> Sent: Saturday, March 09, 2013 9:09 PM
> To: JOHN S BREWER
> Cc: r-sig-ecology@r-project.org
> Subject: Re: [R-sig-eco] Adonis and Random Effects
> 
> 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" <enuc...@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@r-project.org
>>> https://stat.ethz.ch/mailman/listinfo/r-sig-ecology
>> 
>> 
> 

_______________________________________________
R-sig-ecology mailing list
R-sig-ecology@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-ecology

Reply via email to