Box-Cox Symmetric Regression for Non-Negative Data.
BCSreg
The BCSreg package provides tools for fitting Box-Cox symmetric (BCS) and zero-adjusted BCS regression models. It includes diagnostic tools for the fitted models, such as residual analysis, local influence measures, and goodness-of-fit statistics.
Installation
You can install the development version of BCSreg from GitHub with:
# install.packages("pak")
pak::pak("ffqueiroz/BCSreg")
Main functions
Implementation of the Box-Cox symmetric class of distributions
The package currently supports eight members of the BCS class of distributions:
- Box-Cox hyperbolic,
- Box-Cox type I logistic,
- Box-Cox type II logistic,
- Box-Cox normal,
- Box-Cox power exponential,
- Box-Cox sinh-normal,
- Box-Cox slash,
- Box-Cox $t$.
The following functions are provided to work with these distributions:
dBCS(x, mu, sigma, lambda, zeta, family = "NO", log = FALSE)
pBCS(q, mu, sigma, lambda, zeta, family = "NO", lower.tail = TRUE, log.p = FALSE)
qBCS(p, mu, sigma, lambda, zeta, family = "NO", lower.tail = TRUE, log.p = FALSE)
rBCS(n, mu, sigma, lambda, zeta, family = "NO")
Implementation of the zero-adjusted Box-Cox symmetric class of distributions
The package also implements zero-adjusted versions of the BCS distributions, suitable for modeling non-negative data with an excess of zeros. The supported families are the zero-adjusted versions of the same eight BCS distributions listed above.
Corresponding functions include:
dZABCS(x, alpha, mu, sigma, lambda, zeta, family = "NO", log = FALSE)
pZABCS(q, alpha, mu, sigma, lambda, zeta, family = "NO", lower.tail = TRUE, log.p = FALSE)
qZABCS(p, alpha, mu, sigma, lambda, zeta, family = "NO", lower.tail = TRUE, log.p = FALSE)
rZABCS(n, alpha, mu, sigma, lambda, zeta, family = "NO")
BCSreg
The main function of the package is BCSreg(), which fits either a BCS or a zero-adjusted BCS regression model to non-negative data. Its usage is:
BCSreg(formula, data, subset, na.action, family = "NO", zeta, link = "log", sigma.link = "log",
alpha.link, control = BCSreg.control(...), model = FALSE, y = FALSE, x = FALSE, ...)
The function returns an object of class "BCSreg", which supports generic methods such as print(), summary(), plot(), residuals(), among others.
extra.parameter
An important utility in the package is the extra.parameter() function, which estimates the extra parameter for certain BCS and zero-adjusted models. Its usage is:
extra.parameter(object, family, grid = seq(1, 30, 2), trace = TRUE, plot = TRUE,
control = BCSreg.control(...), ...)
Reference
Medeiros, R. M. R., and Queiroz, F. F. (2025). Flexible modeling of non-negative continuous data: Box-Cox symmetric regression and its zero-adjusted extension.