# lmer three-way interaction with categorical variables shows both levels of a predictor

I am comparing (scaled) Hz values for two vowels (Vowel A, Vowel B) of the same speakers from two countries (Australia, England) in three situations (Sit1, Sit2, Sit3). I am investigating whether the speakers produce significantly different Hz values for the vowels, and whether there is variation depending on situation (within-subject) and home country (between-subject). I have used sum coding on my categorical variables.

The problem is, when I run the model, my summary shows strange interactions. My main effects and two-way interactions look perfectly normal, but in my three-way interaction I suddenly have Vowel A (i.e., the reference level) specified in interactions separately from Vowel B.

I am running pairwise comparisons using the emmeans package in order to interpret my interactions, but I'm worried that there is something wrong with my model that makes the reference level of VowelType show up as a separate interaction in the summary. When I run a largely identical model with the same predictors except for different vowels, this does not happen.

Any help would be appreciated.

mod <- lmer(DVscaled ~ voweltype + situation  + country +
voweltype:situation + voweltype:country +
voweltype:situation:country + (1 | speaker), data=datafile)

summary(mod)

Estimate   Std.E  df     t        p
(Intercept)            0.021668   0.03   209   1.411    0.3340
Sit2                   0.201966   0.05   602   7.285    <2e-16 ***
Sit3                  -0.290173   0.08   602   -12.889  <2e-16 ***
VowelB                 0.787753   0.08   602   44.632   <2e-16 ***
English                0.093690   0.09   602   4.732    5.15e-06 ***

Sit2:VowelB            0.339263   0.03   602   10.331   <2e-16 ***
Sit3:VowelB           -0.058265   0.03   602   -1.436   0.1309
VowelB:English        -0.159330   0.04   602   -9.201   <2e-16 ***

Sit2:VowelB:England    0.029816   0.04   602   0.871    0.4781
Sit3:VowelB:England    0.027348  0.04   602   0.894    0.4145
Sit2:VowelA:England   -0.070819   0.04   602   -2.011   0.0450 *
Sit3:VowelA:England    0.049872   0.04   602   1.069    0.3060



Your model seems strange - it misses the two-way interaction between situation and country, that is, situation:country. Why not specify your model like this:

lmer(DVscaled ~ voweltype * situation * country +
(1|speaker), data = datafile)


to make sure you are automatically capturing all two-way and three-way interactions? Alternatively, specify your model as you did but by including all two-way and three-way interactions.

• Thank you, that actually worked perfectly! I got the same results just without the odd lines that include the interaction with Vowel A specified. (The reason the model was specified this way was because I also had some more main main effects that were not included in interactions based on the model comparisons, but it seems that somehow the way I defined the model made the summary strange.) Dec 7 '20 at 16:30
• Great! I’m glad this worked. 💪 Dec 7 '20 at 17:02