[R-sig-ME] boneheaded (?) question about SS in anova (lmer vs lme)

Douglas Bates bates at stat.wisc.edu
Fri Aug 31 23:10:11 CEST 2007


On 8/27/07, Ben Bolker <bolker at zoo.ufl.edu> wrote:

>   I've been working through some basic nested analyses of variance
> just to try to understand the details, and where lme(r)-style analyses
> depart from classical F-ratio tests.

Thanks for the questions, Ben, and for the well-constructed example.

Before going into detail about how the analysis of variance table is
constructed for an lmer model, I thought that I would do a bit of
plotting of the data.  Some of the plots indicate that a linear mixed
model is probably not appropriate.  Consider

library(lattice)
print(dotplot(reorder(PATCH, ALGAE) ~ ALGAE,  urchins, ylab = "Patch"))

and the same plot for the TREAT variable (PDF files attached).

I would be much more inclined to use a generalized linear mixed model
with a Poisson conditional distribution than a normal conditional
distribution for these data.

>   I'm having trouble understanding the results of anova(lmer(...)) ,
> which don't match up in any way I can figure out with direct
> calculations or with the results of lme().
>
> Andrew and Underwood did a simple nested experiment on urchins
> and algal cover -- 4 treatments, 4 patches per treatment, 5 samples
> per patch.
>
> ## get data
> datafile <- "http://www.zoology.unimelb.edu.au/qkstats/chpt9/andrew.csv"
> urchins <- read.csv(file=datafile,
>                     colClasses=c(rep("factor",3),"numeric"))
>
> ## calculate SS/F statistic by hand
> attach(urchins)
> tmeans <- tapply(ALGAE,TREAT,mean)[c(1,4,3,2)]
> pmeans <- tapply(ALGAE,PATCH,mean)[c(1,9:16,2:8)]
> ss.treat <- 20*sum((tmeans-mean(ALGAE))^2)
> ss.patch <- 5*sum((rep(tmeans,each=4)-pmeans)^2)
> fratio = (ss.treat/3)/(ss.patch/12)
> c(ss.treat,ss.patch,fratio)
> ## results, rounded: 14429.14 21241.95     2.72
> detach(urchins)
>
> ## same model with lme
> library(nlme)
> lme1 = lme(ALGAE~TREAT,random=~1|PATCH,data=urchins,method="REML")
> anova(lme1)
> detach("package:nlme")
>
> ##             numDF denDF   F-value p-value
> ## (Intercept)     1    64 18.555081  0.0001
> ## TREAT           3    12  2.717102  0.0913
>
> F value agrees with hand calculation above
> (for what it's worth, line 2 of ?anova.lme
> states that result of applying anova.lme to
> a single lme object will include the sums of squares,
> which seems to be false)
>
>
> ## 3. lmer: all parameter estimates agree with
> ##    lme fit, but ANOVA table is very odd --
> ##    don't know where these SS numbers come from??
>
> library(lme4)
> anova(lmer(ALGAE~TREAT+(1|PATCH),data=urchins,method="REML"))
> detach("package:lme4")
>
> ## Analysis of Variance Table
> ##       Df  Sum Sq Mean Sq
> ## TREAT  3 2434.27  811.42
>
> why is treatment SS not the same as ss.treat?
> (ss.treat also matches the results of aov())
>
>   Hope I haven't done something boneheaded, nor included too much
> nor too little information.
>
>   thanks
>     Ben Bolker
>
> _______________________________________________
> R-sig-mixed-models at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Urchins1.pdf
Type: application/pdf
Size: 8948 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-sig-mixed-models/attachments/20070831/aef3e375/attachment.pdf>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Urchins2.pdf
Type: application/pdf
Size: 7926 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-sig-mixed-models/attachments/20070831/aef3e375/attachment-0001.pdf>


More information about the R-sig-mixed-models mailing list