Tell me more ×
Cross Validated is a question and answer site for statisticians, data analysts, data miners and data visualization experts. It's 100% free, no registration required.

My experiment is a completely randomized block design. The objective is to find whether a variable is different between species $a$, $b$, $c$. The measurement was taken 2 times (June, July) in each year (2011, 2012). I was wondering whether repeated measures ANOVA is a correct method to use? If it is, would you please help me to write up the syntax for the ANOVA and post-hoc analysis?

My data are like the following:

dat <- read.table(text = "species block   year    time    variable
a   1   2011    June    1
a   2   2011    June    2
a   3   2011    June    3
b   1   2011    June    4
b   2   2011    June    5
b   3   2011    June    6
c   1   2011    June    7
c   2   2011    June    8
c   3   2011    June    9
a   1   2011    July    10
a   2   2011    July    11
a   3   2011    July    12
b   1   2011    July    13
b   2   2011    July    14
b   3   2011    July    15
c   1   2011    July    16
c   2   2011    July    17
c   3   2011    July    18
a   1   2012    June    19
a   2   2012    June    20
a   3   2012    June    21
b   1   2012    June    22
b   2   2012    June    23
b   3   2012    June    24
c   1   2012    June    25
c   2   2012    June    26
c   3   2012    June    27
a   1   2012    July    28
a   2   2012    July    29
a   3   2012    July    30
b   1   2012    July    31
b   2   2012    July    32
b   3   2012    July    33
c   1   2012    July    34
c   2   2012    July    35
c   3   2012    July    36", header=TRUE)
share|improve this question
When you say "variable is different" among species, what exactly do you mean? Different at one time? Different at any time? Different on average? Has a different growth rate? Has a different starting point? Or what? – Peter Flom Oct 21 '12 at 23:39

2 Answers

The short answer is yes, it is a repeated measures. There are many ways to do it in R. See this post for a list of some of the possibilities. I would use package nlme, assuming your data are normally distributed.

dat$block <- factor(dat$block)
dat$time = factor(paste(dat$time,dat$year,sep="."))
    dat$variable = rnorm(36)
library(nlme)
summary(lme(variable~species,data=dat,random=~1|block/time))

I combined year and time into a single "time" factor. If you don't do this you only have 2 levels of year and two of time, and things get a little whacky - hard to get variance estimates with only 2 replicates.

share|improve this answer
That is very helpful. What if I want to treat "year" as a fixed variable, only "time" and "block" as random variables? Can I use summary(lme(variable~species*year,data=dat,random=~1|block/time))? – didi Aug 23 '12 at 14:28
I also have trouble interpreting the results, especially the fixed effect of "speciesb" and "speciesc". I guess what I wanted to know is whether species a, b, c are different in terms of variable. – didi Aug 23 '12 at 16:42
@didi yes, that should work. The coefficients for the fixed effect of species represent the difference between species a and b, and species a and c (treatment contrasts). If you want the expected value of each species you can use the predict function. If you want post-hoc tests see this link – atiretoo Aug 23 '12 at 22:09

The atiretoo post is good, and the provided link is excellent. The r-base aov function estimates Type I anova, and SPSS defaults to Type II. It is important to be really clear which type of anova you want to ensure you get the right estimates.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.