# Interpret cross random effect

I am new to mixed models and have some trouble interpreting my model output.

I am investigating realisations of the vowel in words such as NURSE. For this I measured Formant values (F1/F2). In this case I am interested in F2. Without going into too much detail, I coded three contexts <Er, Ir, Vr> and want to see how the speakers F2 values vary in each context. I created a model (below) with a cross random predictor (phoneme|individual). the F2 values were normalised (zscores).

lmer <- lmer(F2 ~ (phoneme|individual) + (1|word) + age + frequency + (1|zduration), data = nurse_female).

Linear mixed model fit by REML ['lmerMod']
Formula: F2 ~ (phoneme | individual) + age
Data: nurse_female

REML criterion at convergence: 686.3

Scaled residuals:
Min      1Q  Median      3Q     Max
-5.4834 -0.3934  0.0302  0.4440  3.3055

Random effects:
Groups     Name        Variance Std.Dev. Corr
individual (Intercept) 0.4461   0.6679
phonemeIr   0.8407   0.9169   -0.86
phonemeVr   1.9711   1.4040   -0.95  0.93
Residual               0.3388   0.5821
Number of obs: 334, groups:  individual, 23

Fixed effects:
Estimate Std. Error t value
(Intercept)  1.395335   0.263929   5.287
age         -0.016893   0.004959  -3.406

Correlation of Fixed Effects:
(Intr)
age -0.969
> plot(nurse_female_F2.lmer8)
> summary(nurse_female_F2.lmer8)
Linear mixed model fit by REML ['lmerMod']
Formula:
F2 ~ (phoneme | individual) + (1 | word) + age + frequency +
(1 | zduration)
Data: nurse_female

REML criterion at convergence: 654.4

Scaled residuals:
Min       1Q   Median       3Q      Max
-2.09203 -0.20332  0.03263  0.25273  1.37056

Random effects:
Groups     Name        Variance Std.Dev. Corr
zduration  (Intercept) 0.27779  0.5271
word       (Intercept) 0.04488  0.2118
individual (Intercept) 0.34181  0.5846
phonemeIr   0.54227  0.7364   -0.82
phonemeVr   1.52090  1.2332   -0.93  0.91
Residual               0.06326  0.2515
Number of obs: 334, groups:
zduration, 280; word, 116; individual, 23

Fixed effects:
Estimate Std. Error t value
(Intercept)         1.79167    0.32138   5.575
age                -0.01596    0.00508  -3.142
frequencylow       -0.37587    0.18560  -2.025
frequencymid       -1.18901    0.27738  -4.286
frequencyvery high -0.68365    0.26564  -2.574

Correlation of Fixed Effects:
(Intr) age    frqncyl frqncym
age         -0.811
frequencylw -0.531 -0.013
frequencymd -0.333 -0.006  0.589
frqncyvryhg -0.356  0.000  0.627   0.389


I checked model fit with a residual plot, checked that each effect is significant using anova tests. I also created a random effects plot for the crossed random effect.

My question is now, how to I interpret the variance? Is it right to say that for Vr all speakers vary in their F2 between 0 and 1.97? And would be correct to say speaker 50 realises a mean F2 value of about 1,75 but has a max and min F2 of ca -3 and -.5?

• First this is not crossed random effects. You have random intercepts for individuals and random slopes for phoneme. However you have not fitted fixed effects for phoneme which is probably a mistake. Normally you fit fixed effects and if you have reason to think they vary by participant you can add random slopes. Aug 15, 2020 at 16:01
• I've seen the three similar posts over the past day. Maybe some back and forth discussion would be helpful? If you'd like, you can contact me, information can be found through my profile?
– sjp
Aug 15, 2020 at 19:13

Robert is right, these are not crossed random effects, but I think I understand the data enough that I can answer the other parts of your question. If you are interested in how phoneme changes across the different contexts, you need to have it has a fixed effect.

Something like this:

fit <- lmer(F2 ~ (phoneme|individual) + (1|word) + phoneme + age + frequency + (1|zduration), data = nurse_female)


As for the last question You have plotted the different individuals for each phoneme. So the (Intercept) category corresponds to the phoneme . The model above will allow you to plot the difference between the different F2 values of the three phonemes taking into account the differences between participants and that participants may not all produce the phonemes with equal differences between the three levels. You can then plot the fixed effects to see the differences of the "average" participant. For example, the code below would plot all fixed effects using the effects package.

library(effects)
plot(allEffects(fit))

• Thank you so much! That already helped massively! Aug 16, 2020 at 9:52