Skip to content

Formatting inconsistency in estimate_grouplevel() with a categorical predictor #605

@jmgirard

Description

@jmgirard

When extracting random effects from an lmer model using estimate_grouplevel(), the formatting of factor levels in the Parameter column is inconsistent. The first instance of a factor's random slope gets cleaned up nicely (e.g., treatment [1]), but all subsequent rows for that same parameter revert to the raw lme4 naming convention (e.g., treatment1).

library(lme4)
#> Loading required package: Matrix
library(easystats)
#> # Attaching packages: easystats 0.7.5
#> ✔ bayestestR  0.17.0   ✔ correlation 0.8.8 
#> ✔ datawizard  1.3.0    ✔ effectsize  1.0.1 
#> ✔ insight     1.4.6    ✔ modelbased  0.14.0
#> ✔ performance 0.16.0   ✔ parameters  0.28.3
#> ✔ report      0.6.3    ✔ see         0.13.0

# Prepare built-in data with a 0/1 categorical predictor
dat <- sleepstudy |> 
  dplyr::mutate(treatment = factor(ifelse(Days > 4, "1", "0")))

# Fit a model with a random slope for the factor
fit <- lmer(Reaction ~ treatment + (1 + treatment | Subject), data = dat)

# Extract random effects
# Notice Subject 308 gets "treatment [1]" while 309+ get "treatment1"
estimate_grouplevel(fit, type = "random")
#> Group   | Level | Parameter     | Coefficient |    SE |           95% CI
#> ------------------------------------------------------------------------
#> Subject | 308   | (Intercept)   |       21.70 | 10.38 | [  1.36,  42.04]
#> Subject | 308   | treatment [1] |       42.41 | 14.18 | [ 14.61,  70.20]
#> Subject | 309   | (Intercept)   |      -55.24 | 10.38 | [-75.58, -34.90]
#> Subject | 309   | treatment1    |      -44.64 | 14.18 | [-72.44, -16.85]
#> Subject | 310   | (Intercept)   |      -45.89 | 10.38 | [-66.23, -25.55]
#> Subject | 310   | treatment1    |      -33.27 | 14.18 | [-61.06,  -5.48]
#> Subject | 330   | (Intercept)   |       11.64 | 10.38 | [ -8.70,  31.98]
#> Subject | 330   | treatment1    |      -19.84 | 14.18 | [-47.64,   7.95]
#> Subject | 331   | (Intercept)   |       16.66 | 10.38 | [ -3.68,  37.00]
#> Subject | 331   | treatment1    |      -18.86 | 14.18 | [-46.66,   8.93]
#> Subject | 332   | (Intercept)   |        4.69 | 10.38 | [-15.65,  25.03]
#> Subject | 332   | treatment1    |        7.72 | 14.18 | [-20.08,  35.51]
#> Subject | 333   | (Intercept)   |       13.59 | 10.38 | [ -6.75,  33.93]
#> Subject | 333   | treatment1    |        4.51 | 14.18 | [-23.28,  32.31]
#> Subject | 334   | (Intercept)   |       -4.43 | 10.38 | [-24.77,  15.91]
#> Subject | 334   | treatment1    |        4.34 | 14.18 | [-23.45,  32.14]
#> Subject | 335   | (Intercept)   |      -22.23 | 10.38 | [-42.57,  -1.89]
#> Subject | 335   | treatment1    |      -51.99 | 14.18 | [-79.78, -24.19]
#> Subject | 337   | (Intercept)   |       49.50 | 10.38 | [ 29.16,  69.84]
#> Subject | 337   | treatment1    |       45.91 | 14.18 | [ 18.11,  73.70]
#> Subject | 349   | (Intercept)   |      -20.23 | 10.38 | [-40.58,   0.11]
#> Subject | 349   | treatment1    |        1.49 | 14.18 | [-26.30,  29.29]
#> Subject | 350   | (Intercept)   |       -1.37 | 10.38 | [-21.72,  18.97]
#> Subject | 350   | treatment1    |       38.02 | 14.18 | [ 10.22,  65.81]
#> Subject | 351   | (Intercept)   |       -1.65 | 10.38 | [-21.99,  18.69]
#> Subject | 351   | treatment1    |      -14.84 | 14.18 | [-42.63,  12.96]
#> Subject | 352   | (Intercept)   |       28.95 | 10.38 | [  8.61,  49.29]
#> Subject | 352   | treatment1    |       12.62 | 14.18 | [-15.17,  40.42]
#> Subject | 369   | (Intercept)   |        5.29 | 10.38 | [-15.05,  25.63]
#> Subject | 369   | treatment1    |        3.26 | 14.18 | [-24.53,  31.06]
#> Subject | 370   | (Intercept)   |      -15.14 | 10.38 | [-35.48,   5.20]
#> Subject | 370   | treatment1    |       24.26 | 14.18 | [ -3.53,  52.06]
#> Subject | 371   | (Intercept)   |        0.73 | 10.38 | [-19.61,  21.07]
#> Subject | 371   | treatment1    |       -9.96 | 14.18 | [-37.75,  17.84]
#> Subject | 372   | (Intercept)   |       13.44 | 10.38 | [ -6.90,  33.78]
#> Subject | 372   | treatment1    |        8.86 | 14.18 | [-18.94,  36.65]

Created on 2026-03-01 with reprex v2.1.1

Expected Behavior

The Parameter column should apply the factor [level] formatting consistently across all grouping levels rather than just the first one.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Bug 🐛Something isn't workingConsistency 🍏 🍎Expected output across functions or API design could be more similar

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions