Description Usage Arguments Details Value Note Author(s) References See Also Examples
Fits isotonic distributional regression (IDR) to a training dataset.
1 2 3 |
y |
numeric vector (the response variable). |
X |
data frame of numeric or ordered factor variables (the regression covariates). |
groups |
named vector of length |
orders |
named vector giving for each group in |
stoch |
stochastic order constraint used for estimation. Default is
|
pars |
parameters for quadratic programming optimization (only relevant
if |
progress |
display progressbar ( |
This function computes the isotonic distributional regression (IDR)
of a response y on on one or more covariates X. IDR estimates
the cumulative distribution function (CDF) of y conditional on
X by monotone regression, assuming that y is more likely to
take higher values, as X increases. Formally, IDR assumes that the
conditional CDF F_{y | X = x}(z) at each fixed threshold z
decreases, as x increases, or equivalently, that the exceedance
probabilities for any threshold z
P(y > z | X = x) increase
with x.
The conditional CDFs are estimated at each threshold in unique(y)
.
This is the set where the CDFs may have jumps. If X
contains more
than one variable, the CDFs are estimated by calling
solve_osqp
from the package osqp
length(unique(y))
times. This might take a while if the training
dataset is large.
Use the argument groups
to group exchangeable covariates.
Exchangeable covariates are indistinguishable except from the order in
which they are labelled (e.g. ensemble weather forecasts, repeated
measurements under the same measurement conditions).
The following orders are available to perform the monotone regression in IDR:
Componentwise order ("comp"
): A covariate
vector x1
is greater than x2
if x1[i] >= x2[i]
holds
for all components i
. This is the standard order used in
multivariate monotone regression and should not be used for
exchangeable variables (e.g. perturbed ensemble forecasts).
Stochastic dominance ("sd"
): x1
is greater than x2
in
the stochastic order, if the (empirical) distribution of the elements of
x1
is greater than the distribution of the elements of x2
(in
first order) stochastic dominance. The "sd"
order is invariant under
permutations of the grouped variables and therefore suitable for
exchangeable covariables.
Increasing convex order ("icx"
):
The "icx"
order can be used for groups of exchangeable variables. It
should be used if the variables have increasing variability, when their
mean increases (e.g. precipitation forecasts or other variables with
right-skewed distributions). More precisely, "icx"
uses the
increasing convex stochastic order on the empirical distributions of the
grouped variables.
An object of class "idrfit"
containing the following
components:
|
data frame of all distinct covariate combinations used for the fit. |
|
list of all observed responses in the training data for
given covariate combinations in |
|
matrix containing the estimated CDFs, one CDF per row,
evaluated at |
|
the thresholds at which the CDFs in |
|
the groups and orders used for estimation. |
|
list giving a bound on the precision of the CDF
estimation (the maximal downwards-step in the CDF that has been detected)
and the fraction of CDF estimations that were stopped at the iteration
limit |
|
the row indices of the covariates in |
|
(in multivariate IDR, |
The function idr
is only intended for fitting IDR model for a
training dataset and storing the results for further processing, but not
for prediction or evaluation, which is done using the output of
predict.idrfit
.
Code for the Pool-Adjacent Violators Algorithm (PAVA) is adapted from R code by Lutz Duembgen (available on https://www.imsv.unibe.ch/about_us/files/lutz_duembgen/software/index_eng.html).
Henzi, A., Moesching, A., & Duembgen, L. (2020). Accelerating the pool-adjacent-violators algorithm for isotonic distributional regression. arXiv preprint arXiv:2006.05527.
Stellato, B., Banjac, G., Goulart, P., Bemporad, A., & Boyd, S. (2020). OSQP: An operator splitting solver for quadratic programs. Mathematical Programming Computation, 1-36.
Bartolomeo Stellato, Goran Banjac, Paul Goulart and Stephen Boyd (2019). osqp: Quadratic Programming Solver using the 'OSQP' Library. R package version 0.6.0.3. https://CRAN.R-project.org/package=osqp
The S3 method predict.idrfit
for predictions based on
an IDR fit.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | data("rain")
## Fit IDR to data of 185 days using componentwise order on HRES and CTR and
## increasing convex order on perturbed ensemble forecasts (P1, P2, ..., P50)
varNames <- c("HRES", "CTR", paste0("P", 1:50))
X <- rain[1:185, varNames]
y <- rain[1:185, "obs"]
## HRES and CTR are group '1', with componentwise order "comp", perturbed
## forecasts P1, ..., P50 are group '2', with "icx" order
groups <- setNames(c(1, 1, rep(2, 50)), varNames)
orders <- c("comp" = 1, "icx" = 2)
fit <- idr(y = y, X = X, orders = orders, groups = groups)
fit
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.