Solved – Interpreting random effects in mixed effects models

lme4-nlmemixed modelpanel data

In interpreting the random effects from a mixed effects model, are they interpreted as been on the same scale as the outcome variable? I have noticed that when I change the scale of my outcome variable that the values of the random effects also change.

For instance, in using the sleepstudy example data I can construct a LMM using the raw scores of Reaction and one in which Reaction has been transformed into a z-score.

sleepstudy$zReaction <- scale(sleepstudy$Reaction, center = TRUE, scale = TRUE) #z scores

fm1 <- lmer(Reaction ~ Days + (Days|Subject), sleepstudy); summary(fm1)
Linear mixed model fit by REML ['lmerMod']
Formula: Reaction ~ Days + (Days | Subject)
   Data: sleepstudy

REML criterion at convergence: 1743.6

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.9536 -0.4634  0.0231  0.4634  5.1793 

Random effects:
 Groups   Name        Variance Std.Dev. Corr
 Subject  (Intercept) 612.09   24.740       
          Days         35.07    5.922   0.07
 Residual             654.94   25.592       
Number of obs: 180, groups:  Subject, 18

Fixed effects:
            Estimate Std. Error t value
(Intercept)  251.405      6.825   36.84
Days          10.467      1.546    6.77

Correlation of Fixed Effects:
     (Intr)
Days -0.138

fm2 <- lmer(zReaction ~ Days + (Days|Subject), sleepstudy); summary(fm2)
Linear mixed model fit by REML ['lmerMod']
Formula: zReaction ~ Days + (Days | Subject)
   Data: sleepstudy

REML criterion at convergence: 308.5

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.9536 -0.4634  0.0231  0.4634  5.1793 

Random effects:
 Groups   Name        Variance Std.Dev. Corr
 Subject  (Intercept) 0.19291  0.4392       
          Days        0.01105  0.1051   0.07
 Residual             0.20642  0.4543       
Number of obs: 180, groups:  Subject, 18

Fixed effects:
            Estimate Std. Error t value
(Intercept) -0.83621    0.12116  -6.902
Days         0.18582    0.02744   6.771

Correlation of Fixed Effects:
     (Intr)
Days -0.138

As we can see, for the model using the Raw scores the variance associated with Days is 35.07, but for the Z scores it is 0.011. So then, 35.07 (or 0.011) is the amount of variability in the slope across subjects, does this mean on average an individuals true rate of change differs from the population mean by 35.07?

Thanks

**EDIT

I was aware that un-scaling the output from fm2 would return the same results as fm1, which @l'ombradel'atzavara very nicely demonstrated. One of the reasons to look at the random effects in a model is determine if there is any additional variability that could be explained by the inclusion of additional predictors. If the random effect is '0' there is very little variation to explain and as such no reason to include the additional predictors. As such if we look at the random effects from the unscaled (35.07) and scaled data (0.01), we see that our interpretation of the results can change. We can use a hypothesis test to determine if a our random effect is significantly different from 0, but this still raises the question how different from 0 is the absolute value from 0, ie 35 is much greater then 0.01.

Best Answer

There are several aspects to your question, and I am not sure I truly understand it fully. With this big caveat in mind, let me try and shed some light into some of the issues that seem to be a concern in your question.

First off, the difference between scaled and not scaled data is self-evident if you look into what's happening within the function, following its conceptual (albeit sometimes not computational) built-in steps. Let's first center and scale (in other words scale(..., scale=TRUE, center=TRUE)) the data "manually", which simply entails subtracting the mean of Reaction from every reaction time in the data cloud and then divide by the standard deviation of Reaction:

    SD <- sd(sleepstudy$Reaction)
    M <- mean(sleepstudy$Reaction)
    scaled <- scale(sleepstudy$Reaction, center = TRUE, scale = TRUE)

And compare to your scaled data using the R function: identical(sleepstudy$zReaction, scaled) [1] TRUE.

So presumably, we can recover the intercepts of fm1 if we just un-scale the results - i.e. we multiply the coefficients by the standard deviation, and then add the mean:

all.equal(coef(fm2)$Subject[,1]*SD + M, coef(fm1)$Subject[,1]) [1] TRUE

I hope this clarifies the issue with the scaling of the data.

As for the second part regarding the 35.07 variance in the slopes across subjects, we are trying to sort out the spread in the slope values across individuals, which we assume are normally distributed. This is difficult to reconcile with the end of your question, but I hope it helps.