I want to compare the following two linear models:
model 1: y = mean + A + B model 2: y = mean + A + A*B
Is model 2 equivalent to y = mean + A + B + A*B? Can I use anova(model1, model2)
in R to compare the two nested models?
If not, how can I compare them in R?
Best Answer
In R, if you want to test the interaction then you want
m1 <- lm(y ~ A + B, data = foo) m2 <- lm(y ~ A * B, data = foo)
then
anova(m1, m2)
will give an F test for the interaction.
Note that m2
could be written longhand as
m2 <- lm(y ~ A + B + A:B, data = foo)
wherein the nesting become clear as A:B
is the interaction term and its coefficient would be = 0 in m1
. Note the intercept/constant term is implied in these model formulae.
Note that in
m2 <- lm(y ~ A + A*B)
the first A
is redundant as A*B
expands to A + B + A:B
. R is clever enough to work out you don't want the following model A + A + B + A:B
and only includes A
once.
In R, A
and B
would be factors containing a recording of the label or type of each observation. If by your notation you have 3 levels/types in A
and 4 in B
, then A
and B
would be factor vectors with length(levels(A))
and length(levels(B))
equal to 3 and 4 respectively. R will create the design matrix for the model from the symbolic representation you provided via the formula. To see what R is doing, you can do head(model.matrix(~ A + A*B, data = foo))
to see the first 6 rows of the design matrix. This is coded using treatment contrasts but others are available. See ?contr.sum
for details on the various contrast types built into R.
Similar Posts:
- Solved – Compare linear models with and without an interaction effect
- Solved – Compare linear models with and without an interaction effect
- Solved – Repeated measures ANOVA vs. factorial ANOVA with subject factor: understanding “error strata” and Error() term in aov
- Solved – 3-way repeated mesures ANOVA
- Solved – Main effects of 2-way ANOVA – same as 1-way ANOVA on each main effect