confint.merMod: Compute Confidence Intervals for Parameters of a [ng]lmer Fit

confint.merModR Documentation

Compute Confidence Intervals for Parameters of a [ng]lmer Fit


Compute confidence intervals on the parameters of a *lmer() model fit (of class"merMod").


## S3 method for class 'merMod'
confint(object, parm, level = 0.95,
	method = c("profile", "Wald", "boot"), zeta,
	nsim = 500,
        boot.type = c("perc","basic","norm"),
        FUN = NULL, quiet = FALSE,
	oldNames = TRUE, ...)
## S3 method for class 'thpr'
confint(object, parm, level = 0.95,
        zeta, non.mono.tol=1e-2,



a fitted [ng]lmer model or profile


parameters for which intervals are sought. Specified by an integer vector of positions, character vector of parameter names, or (unless doing parametric bootstrapping with a user-specified bootstrap function) "theta_" or "beta_" to specify variance-covariance or fixed effects parameters only: see the which parameter of profile.


confidence level < 1, typically above 0.90.


a character string determining the method for computing the confidence intervals.


(for method = "profile" only:) likelihood cutoff (if not specified, as by default, computed from level).


number of simulations for parametric bootstrap intervals.


bootstrap function; if NULL, an internal function that returns the fixed-effect parameters as well as the random-effect parameters on the standard deviation/correlation scale will be used. See bootMer for details.


bootstrap confidence interval type, as described in (Methods ‘stud’ and ‘bca’ are unavailable because they require additional components to be calculated.)


(logical) suppress messages about computationally intensive profiling?


(logical) use old-style names for variance-covariance parameters, e.g. ".sig01", rather than newer (more informative) names such as "sd_(Intercept)|Subject"? (See signames argument to profile).


tolerance for detecting a non-monotonic profile and warning/falling back to linear interpolation


additional parameters to be passed to profile.merMod or bootMer, respectively.


Depending on the method specified, confint() computes confidence intervals by


computing a likelihood profile and finding the appropriate cutoffs based on the likelihood ratio test;


approximating the confidence intervals (of fixed-effect parameters only; all variance-covariance parameters CIs will be returned as NA) based on the estimated local curvature of the likelihood surface;


performing parametric bootstrapping with confidence intervals computed from the bootstrap distribution according to boot.type (see bootMer,


a numeric table (matrix with column and row names) of confidence intervals; the confidence intervals are computed on the standard deviation scale.


The default method "profile" amounts to

    confint(profile(object, which=parm, signames=oldNames, ...),
            level, zeta)

where the profile method profile.merMod does almost all the computations. Therefore it is typically advisable to store the profile(.) result, say in pp, and then use confint(pp, level=*) e.g., for different levels.


if (interactive() || lme4_testlevel() >= 3) {
fm1 <- lmer(Reaction ~ Days + (Days|Subject), sleepstudy)
fm1W <- confint(fm1, method="Wald")# very fast, but not useful for "sigmas" = var-cov pars
(fm2 <- lmer(Reaction ~ Days + (Days || Subject), sleepstudy))
(CI2 <- confint(fm2, maxpts = 8)) # method = "profile"; 8: to be much faster

if (lme4_testlevel() >= 3) {
  system.time(fm1P <- confint(fm1, method="profile", ## <- default
                              oldNames = FALSE))
  ## --> ~ 2.2 seconds (2022)
  set.seed(123) # (reproducibility when using bootstrap)
  system.time(fm1B <- confint(fm1, method="boot", oldNames=FALSE,
                              .progress="txt", PBargs= list(style=3)))
  ## --> ~ 6.2 seconds (2022) and warning, messages
} else {
} ## if interactive && testlevel>=3

lme4 documentation built on Nov. 5, 2023, 9:06 a.m.