Aliases: anova.mlm
Keywords: regression models multivariate
### ** Examples require(graphics) utils::example(SSD) # Brings in the mlmfit and reacttime objects
SSD> # Lifted from Baron+Li: SSD> # "Notes on the use of R for psychology experiments and questionnaires" SSD> # Maxwell and Delaney, p. 497 SSD> reacttime <- matrix(c( SSD+ 420, 420, 480, 480, 600, 780, SSD+ 420, 480, 480, 360, 480, 600, SSD+ 480, 480, 540, 660, 780, 780, SSD+ 420, 540, 540, 480, 780, 900, SSD+ 540, 660, 540, 480, 660, 720, SSD+ 360, 420, 360, 360, 480, 540, SSD+ 480, 480, 600, 540, 720, 840, SSD+ 480, 600, 660, 540, 720, 900, SSD+ 540, 600, 540, 480, 720, 780, SSD+ 480, 420, 540, 540, 660, 780), SSD+ ncol = 6, byrow = TRUE, SSD+ dimnames = list(subj = 1:10, SSD+ cond = c("deg0NA", "deg4NA", "deg8NA", SSD+ "deg0NP", "deg4NP", "deg8NP"))) SSD> mlmfit <- lm(reacttime ~ 1) SSD> SSD(mlmfit) $SSD cond cond deg0NA deg4NA deg8NA deg0NP deg4NP deg8NP deg0NA 29160 30600 26640 23760 32400 25560 deg4NA 30600 66600 32400 7200 36000 30600 deg8NA 26640 32400 56160 41040 57600 69840 deg0NP 23760 7200 41040 70560 72000 63360 deg4NP 32400 36000 57600 72000 108000 100800 deg8NP 25560 30600 69840 63360 100800 122760 $call lm(formula = reacttime ~ 1) $df [1] 9 attr(,"class") [1] "SSD" SSD> estVar(mlmfit) cond cond deg0NA deg4NA deg8NA deg0NP deg4NP deg8NP deg0NA 3240 3400 2960 2640 3600 2840 deg4NA 3400 7400 3600 800 4000 3400 deg8NA 2960 3600 6240 4560 6400 7760 deg0NP 2640 800 4560 7840 8000 7040 deg4NP 3600 4000 6400 8000 12000 11200 deg8NP 2840 3400 7760 7040 11200 13640
mlmfit0 <- update(mlmfit, ~0) ### Traditional tests of intrasubj. contrasts ## Using MANOVA techniques on contrasts: anova(mlmfit, mlmfit0, X = ~1)
Analysis of Variance Table Model 1: reacttime ~ 1 Model 2: reacttime ~ 1 - 1 Contrasts orthogonal to ~1 Res.Df Df Gen.var. Pillai approx F num Df den Df Pr(>F) 1 9 1249.6 2 10 1 2013.2 0.9456 17.381 5 5 0.003534 ** --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Assuming sphericity anova(mlmfit, mlmfit0, X = ~1, test = "Spherical")
Analysis of Variance Table Model 1: reacttime ~ 1 Model 2: reacttime ~ 1 - 1 Contrasts orthogonal to ~1 Greenhouse-Geisser epsilon: 0.4855 Huynh-Feldt epsilon: 0.6778 Res.Df Df Gen.var. F num Df den Df Pr(>F) G-G Pr H-F Pr 1 9 1249.6 2 10 1 2013.2 38.028 5 45 4.4711e-15 2.532e-08 7.393e-11
### tests using intra-subject 3x2 design idata <- data.frame(deg = gl(3, 1, 6, labels = c(0, 4, 8)), noise = gl(2, 3, 6, labels = c("A", "P"))) anova(mlmfit, mlmfit0, X = ~ deg + noise, idata = idata, test = "Spherical")
Analysis of Variance Table Model 1: reacttime ~ 1 Model 2: reacttime ~ 1 - 1 Contrasts orthogonal to ~deg + noise Greenhouse-Geisser epsilon: 0.904 Huynh-Feldt epsilon: 1.118 Res.Df Df Gen.var. F num Df den Df Pr(>F) G-G Pr H-F Pr 1 9 316.58 2 10 1 996.34 45.31 2 18 9.4241e-08 3.4539e-07 9.4241e-08
anova(mlmfit, mlmfit0, M = ~ deg + noise, X = ~ noise, idata = idata, test = "Spherical" )
Analysis of Variance Table Model 1: reacttime ~ 1 Model 2: reacttime ~ 1 - 1 Contrasts orthogonal to ~noise Contrasts spanned by ~deg + noise Greenhouse-Geisser epsilon: 0.9616 Huynh-Feldt epsilon: 1.2176 Res.Df Df Gen.var. F num Df den Df Pr(>F) G-G Pr H-F Pr 1 9 1007.0 2 10 1 2703.2 40.719 2 18 2.0868e-07 3.4017e-07 2.0868e-07
anova(mlmfit, mlmfit0, M = ~ deg + noise, X = ~ deg, idata = idata, test = "Spherical" )
Analysis of Variance Table Model 1: reacttime ~ 1 Model 2: reacttime ~ 1 - 1 Contrasts orthogonal to ~deg Contrasts spanned by ~deg + noise Greenhouse-Geisser epsilon: 1 Huynh-Feldt epsilon: 1 Res.Df Df Gen.var. F num Df den Df Pr(>F) G-G Pr H-F Pr 1 9 1410 2 10 1 6030 33.766 1 9 0.00025597 0.00025597 0.00025597
f <- factor(rep(1:2, 5)) # bogus, just for illustration mlmfit2 <- update(mlmfit, ~f)
Error in eval(predvars, data, env): object 'f' not found
anova(mlmfit2, mlmfit, mlmfit0, X = ~1, test = "Spherical")
Error in anova(mlmfit2, mlmfit, mlmfit0, X = ~1, test = "Spherical"): object 'mlmfit2' not found
anova(mlmfit2, X = ~1, test = "Spherical")
Error in anova(mlmfit2, X = ~1, test = "Spherical"): object 'mlmfit2' not found
# one-model form, eqiv. to previous ### There seems to be a strong interaction in these data plot(colMeans(reacttime))