[R] lmer applied to a wellknown (?) example

Henrik Parn henrik.parn at bio.ntnu.no
Wed Aug 30 19:02:07 CEST 2006


Dear all,

During my pre-R era I tried (yes, tried) to understand mixed models by 
working through the 'rat example' in Sokal and Rohlfs Biometry (2000) 
3ed p 288-292. The same example was later used by Crawley (2002) in his 
Statistical Computing p 363-373 and I have seen the same data being used 
elsewhere in the litterature.

Because this example is so thoroughly described, I thought it would be 
very interesting to analyse it also using lmer and to see how the 
different approaches and outputs differs - from the more or less manual 
old-school (?) approach in Sokal, aov in Crawley, and to mixed models by 
lmer.

In the example, three treatments (Treatment) with two rats (Rat) each 
(i.e six unique rats in total). Three liver preparations (Liver) are 
taken from each rat (i.e 18 unique liver preparations), and two glycogen 
readings (Glycogen) are taken from each liver preparation (36 readings).

We want to test if treatments has affected the glycogen levels. The 
readings are nested in preparation and the preparations nested in rats.

The data can be found here (or on p. 289 in Sokal):
http://www.bio.ic.ac.uk/research/mjcraw/statcomp/data/rats.txt
//
I was hoping to use the rat example as some kind of reference on my way 
to understand mixed models and using lmer. However, first I wish someone 
could check my suggested models!

My suggestions:

attach(rats)
rats$Glycogen <- as.numeric(Glycogen)
rats$Treatment <- as.factor(Treatment)
rats$Rat <- as.factor(Rat)
rats$Liver <- as.factor(Liver)
str(rats)

model1 <- lmer(Glycogen ~ Treatment + (1|Liver) + (1|Rat), data=rats)
summary(model1)

Was that it?

I also tried to make the 'liver-in-rat' nesting explicit  (as suggested 
in 'Examples from...')
 
model2 <- lmer(Glycogen ~ Treatment + (1|Rat:Liver) + (1|Rat), data=rats)
summary(model2)

but then the random effects differs from model1.

Does the non-unique coding of rats and preparations in the original data 
set mess things up? Do I need to recode the ids to unique levels...

rats$rat2 <- as.factor(rep(1:6, each=6))
rats$liver2 <- as.factor(rep(1:18, each=2))
str(rats)

...and then:

model3 <- lmer(Glycogen ~ Treatment + (1|liver2) + (1|rat2), data=rats)
# or maybe
model3 <- lmer(Glycogen ~ Treatment + (1|rat2:liver2) + (1|rat2), data=rats)
 

Can anyone help me to get this right! Thanks in advance!

P.S.
Thanks to all contributors to lme/lmer topic on the list (yes, I have 
searched for 'lmer nested'...) and also the examples provided by John 
Fox' 'Linear mixed models, Appendix to An R and S-PLUS companion...' and 
Douglas Bates' 'Examples from Multilevel Software...' and R-news 5/1. 
Very helpful, but as usually I bet I missed something...Sorry.

Regards,

Henrik 

-- 
************************
Henrik Pärn
Department of Biology
NTNU
7491 Trondheim
Norway

+47 735 96282 (office)
+47 909 89 255 (mobile)
+47 735 96100 (fax)



More information about the R-help mailing list