How to get coefficients and their confidence intervals in mixed effects models?

lme4, mixed-models, r, random-effects

Solution

I'm going to add a bit here. If `m` is a fitted `(g)lmer` model (most of these work for `lme` too):

- `fixef(m)` is the canonical way to extract coefficients from mixed models (this convention began with `nlme` and has carried over to `lme4`)

- you can get the full coefficient table with `coef(summary(m))`; if you have loaded `lmerTest` before fitting the model, or convert the model after fitting (and then loading `lmerTest`) via `coef(summary(as(m,"lmerModLmerTest")))`, then the coefficient table will include p-values. (The coefficient table is a matrix; you can extract the columns via e.g. `ctab[,"Estimate"]`, `ctab[,"Pr(>|t|)"]`, or convert the matrix to a data frame and use `$`-indexing.)

- As stated above you can get likelihood profile confidence intervals via `confint(m)`; these may be computationally intensive. If you use `confint(m, method="Wald")` you'll get the standard +/- 1.96SE confidence intervals. (`lme` uses `intervals(m)` instead of `confint()`.)

If you prefer to use `broom.mixed`:

- `tidy(m,effects="fixed")` gives you a table with estimates, standard errors, etc.

- `tidy(as(m,"merModLmerTest"), effects="fixed")` (or fitting with `lmerTest` in the first place) includes p-values

- adding `conf.int=TRUE` gives (Wald) CIs

- adding `conf.method="profile"` (along with `conf.int=TRUE`) gives likelihood profile CIs

You can also get confidence intervals by parametric bootstrap (`method="boot"`), which is considerably slower but more accurate in some circumstances.

Problem

In `lm` and `glm` models, I use functions `coef` and `confint` to achieve the goal: ``` m = lm(resp ~ 0 + var1 + var1:var2) # var1 categorical, var2 continuous coef(m) confint(m) ``` Now I added random effect to the model - used mixed effects models using `lmer` function from lme4 package. But then, functions `coef` and `confint` do not work any more for me! ``` > mix1 = lmer(resp ~ 0 + var1 + var1:var2 + (1|var3)) # var1, var3 categorical, var2 continuous > coef(mix1) Error in coef(mix1) : unable to align random and fixed effects > confint(mix1) Error: $ operator not defined for this S4 class ``` I tried to google and use docs but with no result. Please point me in the right direction. EDIT: I was also thinking whether this question fits more to https://stats.stackexchange.com/ but I consider it more technical than statistical, so I concluded it fits best here (SO)... what do you think?

Original source

Related problems