[R-sig-ME] marginality principle for mixed effects models
Steven McKinney
smckinney at bccrc.ca
Sat Apr 4 04:17:47 CEST 2009
Dear list,
I'm working on mapping all my old-school fixed effects linear
modeling teachings into the fabulous new(er) mixed effects world.
I've been looking at the "Oats" data used in the nlme library.
Here's a set of commands that build successively richer models,
and tests to evaluate differences due to variety.
library("nlme")
library("lme4")
plot(Oats, inner = TRUE)
print(om1 <- lmer(yield ~ nitro + (1 | Block), data = Oats))
print(om2 <- lmer(yield ~ nitro + Variety + (1 | Block), data = Oats))
print(om3 <- lmer(yield ~ nitro + (1 | Block/Variety), data = Oats))
print(om4 <- lmer(yield ~ nitro + Variety + (1 | Block/Variety), data = Oats))
anova(om4, om3) ## Does this violate the principle of marginality? (Testing main effect in presence of interaction?)
anova(om4, om2) ## Would this be the first test of variety?
anova(om4, om1) ## Would this not be the omnibus test for variety?
anova(om2, om1)
If I wanted to assess the effect of variety, it seems to me
the first test I'd want to look at is model om4 versus model om2.
This it seems to me would be in the spirit of testing an interaction
term with both main effects in the model in the old fixed effects
world.
An omnibus test of the importance of variety would seem to me
to be model om4 versus om1.
Testing om4 versus om3 seems to me to violate the marginality
principle (testing a main effect in the presence of an interaction
involving that main effect). Or is there something different in
the mixed effects world - does this marginality principle hold
for this scenario? The plots and all the other tests seem to
strongly suggest that there are important differences due to variety,
but this test suggests otherwise. This test does not seem
appropriate.
Any comments? Is this paradigm mapping reasonable?
> library("nlme")
> library("lme4")
> plot(Oats, inner = TRUE) # Lattice plot of data
> print(om1 <- lmer(yield ~ nitro + (1 | Block), data = Oats))
Linear mixed-effects model fit by REML
Formula: yield ~ nitro + (1 | Block)
Data: Oats
AIC BIC logLik MLdeviance REMLdeviance
610.7 617.5 -302.4 616.4 604.7
Random effects:
Groups Name Variance Std.Dev.
Block (Intercept) 243.34 15.599
Residual 254.99 15.968
number of obs: 72, groups: Block, 6
Fixed effects:
Estimate Std. Error t value
(Intercept) 81.872 7.104 11.524
nitro 73.667 8.416 8.753
Correlation of Fixed Effects:
(Intr)
nitro -0.355
> print(om2 <- lmer(yield ~ nitro + Variety + (1 | Block), data = Oats))
Linear mixed-effects model fit by REML
Formula: yield ~ nitro + Variety + (1 | Block)
Data: Oats
AIC BIC logLik MLdeviance REMLdeviance
601.6 613 -295.8 608.8 591.6
Random effects:
Groups Name Variance Std.Dev.
Block (Intercept) 245.03 15.653
Residual 234.73 15.321
number of obs: 72, groups: Block, 6
Fixed effects:
Estimate Std. Error t value
(Intercept) 81.872 7.069 11.582
nitro 73.667 8.075 9.123
Variety1 2.646 2.211 1.196
Variety2 -3.174 1.277 -2.486
Correlation of Fixed Effects:
(Intr) nitro Varty1
nitro -0.343
Variety1 0.000 0.000
Variety2 0.000 0.000 0.000
> print(om3 <- lmer(yield ~ nitro + (1 | Block/Variety), data = Oats))
Linear mixed-effects model fit by REML
Formula: yield ~ nitro + (1 | Block/Variety)
Data: Oats
AIC BIC logLik MLdeviance REMLdeviance
601 610.1 -296.5 604.3 593
Random effects:
Groups Name Variance Std.Dev.
Variety:Block (Intercept) 121.33 11.015
Block (Intercept) 210.28 14.501
Residual 165.51 12.865
number of obs: 72, groups: Variety:Block, 18; Block, 6
Fixed effects:
Estimate Std. Error t value
(Intercept) 81.872 6.944 11.79
nitro 73.667 6.781 10.86
Correlation of Fixed Effects:
(Intr)
nitro -0.293
> print(om4 <- lmer(yield ~ nitro + Variety + (1 | Block/Variety), data = Oats))
Linear mixed-effects model fit by REML
Formula: yield ~ nitro + Variety + (1 | Block/Variety)
Data: Oats
AIC BIC logLik MLdeviance REMLdeviance
594.5 608.1 -291.2 601.3 582.5
Random effects:
Groups Name Variance Std.Dev.
Variety:Block (Intercept) 108.94 10.437
Block (Intercept) 214.57 14.648
Residual 165.55 12.867
number of obs: 72, groups: Variety:Block, 18; Block, 6
Fixed effects:
Estimate Std. Error t value
(Intercept) 81.872 6.946 11.786
nitro 73.667 6.781 10.863
Variety1 2.646 3.539 0.748
Variety2 -3.174 2.043 -1.553
Correlation of Fixed Effects:
(Intr) nitro Varty1
nitro -0.293
Variety1 0.000 0.000
Variety2 0.000 0.000 0.000
>
> anova(om4, om3) ## Does this violate the principle of marginality? (Testing main effect in presence of interaction?)
Data: Oats
Models:
om3: yield ~ nitro + (1 | Block/Variety)
om4: yield ~ nitro + Variety + (1 | Block/Variety)
Df AIC BIC logLik Chisq Chi Df Pr(>Chisq)
om3 4 612.30 621.41 -302.15
om4 6 613.28 626.94 -300.64 3.0197 2 0.2209
> anova(om4, om2) ## Would this be the first test for effect of variety?
Data: Oats
Models:
om2: yield ~ nitro + Variety + (1 | Block)
om4: yield ~ nitro + Variety + (1 | Block/Variety)
Df AIC BIC logLik Chisq Chi Df Pr(>Chisq)
om2 5 618.85 630.23 -304.42
om4 6 613.28 626.94 -300.64 7.5629 1 0.005958 **
---
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
> anova(om4, om1) ## Would this not be the omnibus test for variety?
Data: Oats
Models:
om1: yield ~ nitro + (1 | Block)
om4: yield ~ nitro + Variety + (1 | Block/Variety)
Df AIC BIC logLik Chisq Chi Df Pr(>Chisq)
om1 3 622.40 629.23 -308.20
om4 6 613.28 626.94 -300.64 15.114 3 0.001722 **
---
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
> anova(om2, om1)
Data: Oats
Models:
om1: yield ~ nitro + (1 | Block)
om2: yield ~ nitro + Variety + (1 | Block)
Df AIC BIC logLik Chisq Chi Df Pr(>Chisq)
om1 3 622.40 629.23 -308.20
om2 5 618.85 630.23 -304.42 7.5512 2 0.02292 *
---
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
>
Steven McKinney, Ph.D.
Statistician
Molecular Oncology and Breast Cancer Program
British Columbia Cancer Research Centre
email: smckinney +at+ bccrc +dot+ ca
tel: 604-675-8000 x7561
BCCRC
Molecular Oncology
675 West 10th Ave, Floor 4
Vancouver B.C.
V5Z 1L3
Canada
More information about the R-sig-mixed-models
mailing list