The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

bqmm

Lifecycle: experimental R-CMD-check License: MIT

Bayesian Multilevel Quantile Regression

bqmm fits Bayesian mixed-effects (multilevel) quantile regression models in R using the asymmetric Laplace working likelihood and Stan. It lets you ask how a predictor relates to any quantile of an outcome — the median, the tails, or a whole grid — while accounting for clustered or repeated-measures data through random effects, and it returns full Bayesian uncertainty.

The package fills a genuine gap in the R ecosystem. Existing tools are either frequentist (lqmm, qrLMM), Bayesian but single-level (bayesQR, Brq), or able to fit multilevel quantile models only awkwardly and with statistically invalid uncertainty (brms’s asym_laplace()). bqmm provides a clean, quantile-first interface and valid fixed-effect inference via the Yang, Wang & He (2016) correction.

📖 Full documentation, primer, and articles: https://kvenkita.github.io/bqmm/

Installation

# install.packages("remotes")
remotes::install_github("kvenkita/bqmm")

bqmm compiles Stan models on installation, so a working C++ toolchain is required (Rtools on Windows, the standard compiler chain on macOS/Linux).

Quick start

library(bqmm)
data(Orthodont, package = "nlme")

# Conditional median of growth, with a random intercept per child
fit <- bqmm(distance ~ age + (1 | Subject), data = Orthodont, tau = 0.5)

summary(fit)              # fixed effects with valid (adjusted) intervals
VarCorr(fit)             # random-effect standard deviations

# Several quantiles in one call
fit_q <- bqmm(distance ~ age + (1 | Subject), data = Orthodont,
              tau = c(0.1, 0.5, 0.9))
plot(fit_q)              # coefficient-versus-quantile paths
predict(fit_q, noncrossing = "rearrange")   # non-crossing quantiles

Key features

Key functions

Function Purpose
bqmm() Fit a Bayesian multilevel quantile regression model
bqmm_prior() Specify priors (fixed effects, scale, random-effect SDs, LKJ)
ald() The asymmetric Laplace family object
summary(), fixef(), coef() Fixed-effect estimates and intervals
ranef(), VarCorr() Random effects and their (co)variances
vcov(fit, adjusted = TRUE) Yang–Wang–He–corrected covariance
predict(), fitted() Fitted / predicted conditional quantiles
posterior_predict(), posterior_epred() Posterior predictive draws
as_draws() Hand the fit to posterior / bayesplot
rearrange_quantiles() Remove quantile crossing

Documentation

Citation

If you use bqmm, please cite it:

Venkitasubramanian, K. (2026). bqmm: Bayesian Multilevel Quantile Regression. R package version 0.1.0. https://github.com/kvenkita/bqmm

citation("bqmm")

Please also cite the underlying methodology where appropriate — Yu & Moyeed (2001) for the asymmetric Laplace approach and Yang, Wang & He (2016) for the inference correction.

Author and license

Created and maintained by Kailas Venkitasubramanian. Released under the MIT License.

References

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.