The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
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[@]dogado.de.
mixqr is an extensible framework for finite mixtures
of quantile (and expectile) regressions in R. At its heart it finds
hidden subgroups in your data and fits a separate quantile
regression in each one: when a single regression line hides two
(or more) distinct relationships (a high-return group and a low-return
group, a fast-growing segment and a stagnant one), mixqr
recovers the groups and their group-specific effects at once,
without you having to label the groups in advance. Because it models a
quantile rather than the mean, it is robust to skew and
outliers and can describe effects in the tails as well as at the
center.
Built on a single expectation–maximization (EM) substrate with a documented engine/extension contract, the package grows that core into a family of capabilities — expectile and M-quantile component families, component-specific penalized selection, and joint multi-quantile estimation with non-crossing — and the companion package mixqrgate adds location-varying gating.
The package fills a real gap in the R ecosystem. The only previous
CRAN package for this model (qrmix) was archived in 2026
and used a heuristic, not the likelihood-and-EM estimator;
ClusPred solves a different (covariate-driven latent-class)
problem; flexmix and mixtools have no quantile
/ check-loss driver; and brms’s
mixture(asym_laplace) cannot give the constrained,
location-anchored components or the calibrated standard errors that
inference requires. mixqr provides a clean, quantile-first
interface, the first maintained implementation of the Wu & Yao
(2016) kernel-density EM, and standard errors validated
by simulation to reach near-nominal coverage.
📖 Full documentation and tutorial: https://kvenkita.github.io/mixqr/
# install.packages("remotes")
remotes::install_github("kvenkita/mixqr")mixqr is pure R — no compiler or Stan toolchain
required.
library(mixqr)
# Two combustion regimes in the engine (ethanol) data
fit <- mixqr(equivalence ~ nox, data = engine, tau = 0.5, m = 2,
variance = "stochEM")
summary(fit) # component coefficients with calibrated standard errors
plot(fit) # data + component lines, and the error densities
predict(fit, type = "class") # which regime each observation belongs to
# Choose the number of components
mixqr_select(equivalence ~ nox, data = engine, tau = 0.5, m = 1:4,
criterion = "cv")AIC/BIC (the default), and the semiparametric
kernel-density EM of Wu & Yao (2016) with
nonparametric component error densities (robust to multimodal /
asymmetric errors).summary(), coef(), confint(),
vcov(), predict(), plot(),
AIC()/BIC() methods.family =). Smooth, crossing-free component losses (Newey
& Powell 1987; Breckling & Chambers 1988) beside the quantile
check loss.mixqr_pen()). SCAD / adaptive-LASSO selection in which
each latent regime gets its own sparse support.mixqr_nc()). Joint estimation across a grid of quantiles
with one shared classification and order-respecting curves.register_mixqr_engine()) hosts all of the above, and the
companion mixqrgate adds location-varying gating.| Function | Purpose |
|---|---|
mixqr() |
Fit a finite mixture of quantile regressions |
mixqr_control(), mixqr_vcontrol() |
EM and variance-estimation settings |
mixqr_select() |
Choose the number of components (AIC / BIC / CV) |
mixqr(family = ) |
Quantile, expectile or M-quantile component losses |
mixqr_pen(), selectedVars() |
Component-specific penalized variable selection |
mixqr_nc() |
Joint multi-quantile fit: shared classification + non-crossing |
summary(), coef(),
confint() |
Component estimates, SEs and intervals |
predict() |
Component quantiles, classification, posteriors |
plot() |
Data + component lines and error densities |
sim_mixqr2(), sim_mixqr3() |
Reproducible Wu & Yao simulation designs |
If you use mixqr, please cite it:
Venkitasubramanian, K. (2026). mixqr: Extensible Finite Mixtures of Quantile and Expectile Regressions. R package version 0.2.0. https://github.com/kvenkita/mixqr
citation("mixqr")Please also cite the underlying methodology — Wu & Yao (2016) for the mixture-of-quantile-regressions estimator, and Koenker & Bassett (1978) for quantile regression.
Created and maintained by Kailas Venkitasubramanian, University of North Carolina at Charlotte. Released under the MIT License.
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.
Health stats visible at Monitor.