[R] R - lme
S Ellison
S.Ellison at lgc.co.uk
Tue Nov 13 17:56:31 CET 2007
Divaker,
Thanks for the data.
For me,
> summary(aov(Purity~Supplier/Batch, process))
gives exactly the same results for mean squares as
> aov(Purity~Supplier+Error(Supplier/Batch), process)
except that the latter gives no p-values (because Supplier appears as
both error term and fixed effect, there isn't anything left to test
supplier against)
For compactness, I'll use the mean squares in
summary(aov(Purity~Supplier/Batch,data=process))
Df Sum Sq Mean Sq F value Pr(>F)
Supplier 2 15.056 7.528 2.8526 0.07736 .
Supplier:Batch 9 69.917 7.769 2.9439 0.01667 *
Residuals 24 63.333 2.639
The component of variance for batch is
(7.769-2.639)/3 = 1.71(1.307 as SD)
and for supplier, the between-supplier component of variance comes out
negative because it's 7.53-7.77 etc... and if you were testing the
supplier as a fixed effect, testing against the batch MS would imply
that supplier is not a significant effect.
For a mixed-effects model, I normally expected lme's syntax to be
lme(Purity~Supplier, random=~1|Batch, data=P),
but in this case this does not treat the batch as nested, because the
same batch levels appear in all Suppliers. I get the classical result
from
> process$BS<-factor(process$Supplier:process$Batch)
> lme(Purity~Supplier, random=~1|BS, data=process)
Linear mixed-effects model fit by REML
Data: P
Log-restricted-likelihood: -71.42198
Fixed: Purity ~ Supplier
(Intercept) SupplierT2 SupplierT3
-0.4166667 0.7500000 1.5833333
Random effects:
Formula: ~1 | BS
(Intercept) Residual
StdDev: 1.307622 1.624466
Which returns the expected 1.307 between-batch SD.
Lesson, subject to correction from the gods of lme: lme's random
effects are not treated as nested within fixed effects groups unless the
level identifiers for the random effects are unique to the fixed effects
group they are in.
And I obviously need to read Pinheiro and Bates again, or I'd have
known that without thinking about it.
Steve E
More information about the R-help
mailing list