Type: | Package |
Title: | Boosting Regression Quantiles |
Version: | 1.0.0 |
Description: | Boosting Regression Quantiles is a component-wise boosting algorithm, that embeds all boosting steps in the well-established framework of quantile regression. It is initialized with the corresponding quantile, uses a quantile-specific learning rate, and uses quantile regression as its base learner. The package implements this algorithm and allows cross-validation and stability selection. |
License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
URL: | https://github.com/stefanlinner/boostrq |
BugReports: | https://github.com/stefanlinner/boostrq/issues |
Encoding: | UTF-8 |
Depends: | mboost, stabs, stats, parallel |
Imports: | quantreg, checkmate |
RoxygenNote: | 7.2.3 |
Suggests: | testthat (≥ 3.0.0) |
Config/testthat/edition: | 3 |
NeedsCompilation: | no |
Packaged: | 2024-03-02 08:53:32 UTC; stefa |
Author: | Stefan Linner [aut, cre, cph] |
Maintainer: | Stefan Linner <stefan.linner97@gmail.com> |
Repository: | CRAN |
Date/Publication: | 2024-03-05 11:00:06 UTC |
Updating number of iterations
Description
Updating number of iterations
Usage
## S3 method for class 'boostrq'
x[i, return = TRUE, ...]
Arguments
x |
a boostrq object |
i |
desired number of boosting iterations |
return |
TRUE, if the result should be returned |
... |
additional arguments passed to callies |
Value
a boostrq object with the updated number of iterations
Examples
boosted.rq <-
boostrq(
formula = mpg ~ brq(cyl * hp) + brq(am + wt),
data = mtcars,
mstop = 200,
nu = 0.1,
tau = 0.5
)
boosted.rq[500]
Fitting a boosting regression quantiles model
Description
Component-wise functional gradient boosting algorithm to fit a quantile regression model.
Usage
boostrq(
formula,
data,
mstop = 100,
nu = NULL,
tau = 0.5,
offset = NULL,
weights = NULL,
oobweights = NULL,
risk = "inbag",
digits = 10,
exact.fit = FALSE
)
Arguments
formula |
a symbolic description of the model to be fit. |
data |
a data frame (or data.table) containing the variables stated in the formula. |
mstop |
number of iterations, as integer |
nu |
learning rate, as numeric |
tau |
quantile parameter, as numeric |
offset |
a numeric vector used as offset. |
weights |
(optional) a numeric vector indicating which weights to used in the fitting process (default: all observations are equally weighted, with 1). |
oobweights |
an additional vector of out-of-bag weights, which is used for the out-of-bag risk. |
risk |
string indicating how the empirical risk should be computed for each boosting iteration. inbag leads to risks computed for the learning sample (i.e. observations with non-zero weights), oobag to risks based on the out-of-bag (i.e. observations with non-zero oobagweights). |
digits |
number of digits the slope parameter different from zero to be considered the best-fitting component, as integer. |
exact.fit |
logical, if set to TRUE the negative gradients of exact fits are set to 0. |
Value
A (generalized) additive quantile regression model is fitted using the boosting regression quantiles algorithm, which is a functional component-wise boosting algorithm. The base-learner can be specified via the formula object. brq (linear quantile regression) and brqss(nonlinear quantile regression) are available base-learner.
Examples
boosted.rq <-
boostrq(
formula = mpg ~ brq(cyl * hp) + brq(am + wt),
data = mtcars,
mstop = 200,
nu = 0.1,
tau = 0.5
)
boosted.rq$mstop()
boosted.rq$selection.freqs()
boosted.rq$coef()
boosted.rq$risk()
base learner for boosting linear regression quantiles
Description
Base-learner for linear quantile regression.
Usage
brq(formula, method = "fn")
Arguments
formula |
a symbolic description of the base learner. |
method |
the algortihm used to fit the quantile regression, the default is set to "fn", referring to the Frisch-Newton inferior point method. For more details see the documentation of quantreg::rq. |
Value
brq returns a string, which is used to specifiy the formula in the fitting process.
Examples
brq(cyl * hp)
estimated coefficients of boosting regression quantiles
Description
estimated coefficients of boosting regression quantiles
Usage
## S3 method for class 'boostrq'
coef(object, which = NULL, aggregate = "sum", ...)
Arguments
object |
object of class boostrq |
which |
a subset of base-learners |
aggregate |
a character specifying how to aggregate coefficients of single base learners. The default returns the coefficient for the final number of boosting iterations. "cumsum" returns a list with matrices (one per base-learner) with the cumulative coefficients for all iterations. "none" returns a list of matrices where the jth columns of the respective matrix contains coefficients of the base-learner of the jth boosting iteration.v "sum_aggr" ... |
... |
additional arguments passed to callies |
Value
coef extracts the regression coefficients of the fitted boostrq model.
Examples
boosted.rq <-
boostrq(
formula = mpg ~ brq(cyl * hp) + brq(am + wt),
data = mtcars,
mstop = 200,
nu = 0.1,
tau = 0.5
)
coef(boosted.rq, aggregate = "cumsum")
Crossvalidation for boostrq
Description
Crossvalidation for boostrq
Usage
## S3 method for class 'boostrq'
cvrisk(
object,
folds = mboost::cv(object$weights, type = "kfold"),
grid = 0:mstop(object),
papply = parallel::mclapply,
mc.preschedule = FALSE,
fun = NULL,
...
)
Arguments
object |
a boostrq object |
folds |
a matrix indicating the weights for the k resampling iterations |
grid |
a vetor of stopping parameters the empirical quantile risk is to be evaluated for. |
papply |
(parallel) apply function, defaults to mclapply. To run sequentially (i.e. not in parallel), one can use lapply. |
mc.preschedule |
preschedule tasks if are parallelized using mclapply (default: FALSE)? For details see mclapply. |
fun |
if fun is NULL, the out-of-sample risk is returned. fun, as a function of object, may extract any other characteristic of the cross-validated models. These are returned as is. |
... |
additional arguments passed to callies |
Value
Cross-validated Boosting regression quantiles
Examples
boosted.rq <-
boostrq(
formula = mpg ~ brq(cyl * hp) + brq(am + wt),
data = mtcars,
mstop = 200,
nu = 0.1,
tau = 0.5
)
set.seed(101)
cvk.out <-
cvrisk(
boosted.rq,
grid = 0:mstop(boosted.rq),
folds = mboost::cv(boosted.rq$weights, type = "kfold", B = 5)
)
cvk.out
plot(cvk.out)
mstop(cvk.out)
boosted.rq[mstop(cvk.out)]
fitted values of boosting regression quantiles
Description
fitted values of boosting regression quantiles
Usage
## S3 method for class 'boostrq'
fitted(object, ...)
Arguments
object |
object of class boostrq |
... |
additional arguments passed to callies |
Value
fitted returns the fitted values of the fitted boostrq model.
Examples
boosted.rq <-
boostrq(
formula = mpg ~ brq(cyl * hp) + brq(am + wt),
data = mtcars,
mstop = 200,
nu = 0.1,
tau = 0.5
)
fitted(boosted.rq)
Current number of iterations of boostrq
Description
Current number of iterations of boostrq
Usage
## S3 method for class 'boostrq'
mstop(object, ...)
Arguments
object |
a boostrq object |
... |
additional arguments passed to callies |
Value
current number of boosting iterations
Examples
boosted.rq <-
boostrq(
formula = mpg ~ brq(cyl * hp) + brq(am + wt),
data = mtcars,
mstop = 200,
nu = 0.1,
tau = 0.5
)
mstop(boosted.rq)
Model predictions for boosting regression quantiles
Description
Model predictions for boosting regression quantiles
Usage
## S3 method for class 'boostrq'
predict(object, newdata = NULL, which = NULL, aggregate = "sum", ...)
Arguments
object |
a boostrq object |
newdata |
a data.frame (or data.table) including all covariates contained in the baselearners |
which |
a subset of base-learners |
aggregate |
a character specifying how to aggregate coefficients of single base learners. The default returns the coefficient for the final number of boosting iterations. "cumsum" returns a list with matrices (one per base-learner) with the cumulative coefficients for all iterations. "none" returns a list of matrices where the jth columns of the respective matrix contains coefficients of the base-learner of the jth boosting iteration. |
... |
additional arguments passed to callies |
Value
predictions for the new data
Examples
boosted.rq <-
boostrq(
formula = mpg ~ brq(cyl * hp) + brq(am + wt),
data = mtcars,
mstop = 200,
nu = 0.1,
tau = 0.5
)
predict.data <- data.frame(hp = 165, cyl = 6, am = 1, wt = 3.125)
predict(boosted.rq, newdata = predict.data)
printing boosting regression quantiles
Description
printing boosting regression quantiles
Usage
## S3 method for class 'boostrq'
print(x, ...)
Arguments
x |
object of class boostrq |
... |
additional arguments passed to callies |
Value
print shows a dense representation of the boostrq model fit.
Examples
boosted.rq <-
boostrq(
formula = mpg ~ brq(cyl * hp) + brq(am + wt),
data = mtcars,
mstop = 200,
nu = 0.1,
tau = 0.5
)
boosted.rq
Print result summaries for a boostrq object
Description
Print result summaries for a boostrq object
Usage
## S3 method for class 'summary.boostrq'
print(x, ...)
Arguments
x |
a summary.boostrq object |
... |
additional arguments passed to callies |
Value
printing the result summaries for a boostrq object including the print-information, estimated coefficients, and selection frequencies
Examples
boosted.rq <-
boostrq(
formula = mpg ~ brq(cyl * hp) + brq(am + wt),
data = mtcars,
mstop = 200,
nu = 0.1,
tau = 0.5
)
summary(boosted.rq)
residuals of boosting regression quantiles
Description
residuals of boosting regression quantiles
Usage
## S3 method for class 'boostrq'
residuals(object, ...)
Arguments
object |
object of class boostrq |
... |
additional arguments passed to callies |
Value
residuals returns the residuals of the fitted boostrq model.
Examples
boosted.rq <-
boostrq(
formula = mpg ~ brq(cyl * hp) + brq(am + wt),
data = mtcars,
mstop = 200,
nu = 0.1,
tau = 0.5
)
residuals(boosted.rq)
Empirical Quantile Risk of boostrq Object
Description
Empirical Quantile Risk of boostrq Object
Usage
## S3 method for class 'boostrq'
risk(object, ...)
Arguments
object |
a boostrq object |
... |
additional arguments passed to callies |
Value
numeric vector containing the respective empirical quantile risk of the different boosting iterations.
Examples
boosted.rq <-
boostrq(
formula = mpg ~ brq(cyl * hp) + brq(am + wt),
data = mtcars,
mstop = 200,
nu = 0.1,
tau = 0.5
)
risk(boosted.rq)
Extract indices of selected base learners
Description
Extract indices of selected base learners
Usage
## S3 method for class 'boostrq'
selected(object, ...)
Arguments
object |
a boostrq object |
... |
additional arguments passed to callies |
Value
an index vector indicating the selected base learner in each iteration
Examples
boosted.rq <-
boostrq(
formula = mpg ~ brq(cyl * hp) + brq(am + wt),
data = mtcars,
mstop = 200,
nu = 0.1,
tau = 0.5
)
selected(boosted.rq)
Stability Selection for boosting regression quantiles
Description
Stability Selection for boosting regression quantiles
Usage
## S3 method for class 'boostrq'
stabsel(
x,
cutoff,
q,
PFER,
grid = 0:mstop(x),
folds = stabs::subsample(x$weights, B = B),
B = ifelse(sampling.type == "MB", 100, 50),
assumption = "unimodal",
sampling.type = "SS",
papply = parallel::mclapply,
verbose = TRUE,
...
)
Arguments
x |
a fitted model of class "boostrq" |
cutoff |
cutoff between 0.5 and 1. Preferably a value between 0.6 and 0.9 should be used |
q |
number of (unique) selected componenents (base-learners) that are selected in each subsample. |
PFER |
upper bound for the per-family error rate. This specifies the amount of falsely selected base-learners, which is tolerated. |
grid |
a numeric vector of the form 0:m. |
folds |
a weight matrix with number of rows equal to the number of observations. Usually one should not change the default here as subsampling with a fraction of 1/2 is needed for the error bounds to hold. |
B |
umber of subsampling replicates. Per default, we use 50 complementary pairs for the error bounds of Shah & Samworth (2013) and 100 for the error bound derived in Meinshausen & Buehlmann (2010). As we use B complementray pairs in the former case this leads to 2B subsamples. |
assumption |
Defines the type of assumptions on the distributions of the selection probabilities and simultaneous selection probabilities. Only applicable for sampling.type = "SS". For sampling.type = "MB" we always use code"none". |
sampling.type |
use sampling scheme of of Shah & Samworth (2013), i.e., with complementarty pairs (sampling.type = "SS"), or the original sampling scheme of Meinshausen & Buehlmann (2010). |
papply |
(parallel) apply function, defaults to mclapply. To run sequentially (i.e. not in parallel), one can use lapply. |
verbose |
logical (default: TRUE) that determines wether warnings should be issued. |
... |
additional arguments passed to callies |
Value
An object of class stabsel.
Examples
boosted.rq <-
boostrq(
formula = mpg ~ brq(cyl) + brq(hp) + brq(am) + brq(wt) + brq(drat),
data = mtcars,
mstop = 600,
nu = 0.1,
tau = 0.5
)
stabsel_parameters(
q = 3,
PFER = 1,
p = 5,
sampling.type = "SS",
assumption = "unimodal"
)
set.seed(100)
brq.stabs <-
stabsel(
x = boosted.rq,
q = 3,
PFER = 1,
sampling.type = "SS",
assumption = "unimodal"
)
brq.stabs
Result summaries for a boostrq object
Description
Result summaries for a boostrq object
Usage
## S3 method for class 'boostrq'
summary(object, ...)
Arguments
object |
a boostrq object |
... |
additional arguments passed to callies |
Value
result summaries for a boostrq object including the print-information, estimated coefficients, and selection frequencies
Examples
boosted.rq <-
boostrq(
formula = mpg ~ brq(cyl * hp) + brq(am + wt),
data = mtcars,
mstop = 200,
nu = 0.1,
tau = 0.5
)
summary(boosted.rq)
Update and Re-fit a boostrq model
Description
Update and Re-fit a boostrq model
Usage
## S3 method for class 'boostrq'
update(object, weights, oobweights, risk, ...)
Arguments
object |
a boostrq object |
weights |
(optional) a numeric vector indicating which weights to used in the fitting process (default: all observations are equally weighted, with 1). |
oobweights |
an additional vector of out-of-bag weights, which is used for the out-of-bag risk. |
risk |
string indicating how the empirical risk should be computed for each boosting iteration. inbag leads to risks computed for the learning sample (i.e. observations with non-zero weights), oobag to risks based on the out-of-bag (i.e. observations with non-zero oobagweights). |
... |
additional arguments passed to callies |
Value
a re-fitted boostrq model
Examples
boosted.rq <-
boostrq(
formula = mpg ~ brq(cyl * hp) + brq(am + wt),
data = mtcars,
mstop = 200,
nu = 0.1,
tau = 0.5
)
update(
boosted.rq,
weights = c(rep(1, 30), 0, 0),
oobweights = c(rep(0, 30), 1,1),
risk = "oobag"
)