Computes score-based confidence intervals and hypothesis tests
for variance and covariance parameters of random effects in linear mixed
models fitted with 'lme4'. The intervals invert a profile score
statistic on the variance-covariance scale, with nuisance parameters
estimated on an extended parameter set. The intervals have near-nominal
coverage uniformly in the parameter, including near the boundary of the
parameter space, where Wald and likelihood ratio intervals can be
unreliable. The methods are described in Shedden
and Ekvall (2026)
Score-based confidence intervals and hypothesis tests for variances and covariances of random effects in linear mixed models fitted with lme4.
reconf computes confidence intervals and score tests for the variances
and covariances of random effects in linear mixed models. The intervals
invert a profile score statistic on the variance-covariance scale, with
nuisance parameters estimated on an extended parameter set. The intervals have
near-nominal coverage, even near the boundary of the parameter space where
Wald and likelihood ratio intervals can be unreliable; see the references.

The figure shows the estimated coverage of 95% intervals for a
random-intercept variance, with 30 groups of 5 observations and 2000
replicates at each of eleven values of the variance. Across those values,
the coverage was between 0.941 and 0.960 for the score intervals, between
0.914 and 0.998 for Wald intervals, and between 0.937 and 0.978 for profile
likelihood intervals; the Monte Carlo standard errors are at most 0.0063.
The simulation is coverage_simulation.R in the
scripts folder of the
repository.
On the FEV1 model of the vignette, vc_ci() computed the four intervals in
0.7 s and confint(fit, method = "profile") in 28 s, in one run on a
laptop.
install.packages("reconf")
# Development version
remotes::install_github("koekvall/reconf")
library(lme4)
library(reconf)
# Fit a linear mixed model
fit <- lmer(Reaction ~ Days + (Days | Subject), data = sleepstudy)
# 95% score-based CIs for all covariance parameters, residual variance included
vc_ci(fit)
# CI for selected parameters, by name or index
vc_ci(fit, parm = "var_(Intercept)|Subject")
# Score test that the random slope variance (index 3) is zero
vc_test(fit, parm = 3)
# Score test that all random-effect covariance parameters are zero
vc_test(fit)
# Build the model once to reuse its precomputation across calls
m <- vc_model(fit)
vc_ci(m, parm = 3)
# Log-likelihood, score, and information at any covariance parameters
ll <- vc_loglik(fit)
ll(c(600, 10, 35, 650))
The parameter ordering follows as.data.frame(VarCorr(fit), order = "lower.tri"), with the residual variance last.
varcomp (formerly
lmmvar) implements the method of
Zhang, Ekvall, and Molstad (2025) for a model with one variance component
and an error term, with the proportion of variability (heritability) as the
parameter of interest. reconf instead treats
the variances and covariances themselves as the parameters of interest and
covers all covariance parameters in models fitted with lme4.