Learn R Programming

vinereg (version 0.5.0)

vinereg: D-vine regression models

Description

Sequential estimation of a regression D-vine for the purpose of quantile prediction as described in Kraus and Czado (2017). If discrete variables are declared as ordered() or factor(), jittering is used to make them continuous (see cctools::cont_conv()). Although this may make the model estimate inconsistent, predictions are usually still reasonable.

Usage

vinereg(formula, data, family_set = "parametric", selcrit = "loglik",
  order = NA, par_1d = list(), cores = 1, uscale = FALSE, ...)

Arguments

formula

an object of class "formula"; same as lm().

data

data frame (or object coercible by as.data.frame()) containing the variables in the model.

family_set

see family_set argument of rvinecopulib::bicop().

selcrit

selection criterion based on conditional log-likelihood. "loglik" (default) imposes no correction; other choices are "aic" and "bic".

order

the order of covariates in the D-vine, provided as vector of variable names (after calling cctools::cont_conv() on the model.frame()); selected automatically if order = NA (default).

par_1d

list of options passed to kde1d::kde1d(), must be one value for each margin, e.g. list(xmin = c(0, 0, NaN)) if the response and first covariate have non-negative support.

cores

integer; the number of cores to use for computations.

uscale

logical indicating whether the data are already on copula scale (no margins have to be fitted).

...

further arguments passed to rvinecopulib::bicop().

Value

An object of class vinereg. It is a list containing the elements

formula

the formula used for the fit.

selcrit

criterion used for variable selection.

model_frame

the data used to fit the regression model.

margins

list of marginal models fitted by kde1d::kde1d().

vine

an rvinecopulib::vinecop_dist() object containing the fitted D-vine.

stats

fit statistics such as conditional log-likelihood/AIC/BIC and p-values for each variable's contribution.

order

order of the covariates chosen by the variable selection algorithm.

selected_vars

indices of selected variables.

Use predict.vinereg() to predict conditional quantiles. summary.vinereg() shows the contribution of each selected variable with the associated p-value derived from a likelihood ratio test.

References

Kraus and Czado (2017), D-vine copula based quantile regression, Computational Statistics and Data Analysis, 110, 1-18

See Also

predict.vinereg

Examples

Run this code
# NOT RUN {
# simulate data
x <- matrix(rnorm(300), 100, 2)
y <- x %*% c(1, -2)
dat <- data.frame(y = y, x = x, z = as.factor(rbinom(100, 2, 0.5)))

# fit vine regression model
(fit <- vinereg(y ~ ., dat))

# inspect model
summary(fit)
plot_effects(fit)

# model predictions
mu_hat  <- predict(fit, newdata = dat, alpha = NA)          # mean
med_hat <- predict(fit, newdata = dat, alpha = 0.5)         # median

# observed vs predicted
plot(cbind(y, mu_hat))

## fixed variable order (no selection)
(fit <- vinereg(y ~ ., dat, order = c("x.2", "x.1", "z.1")))

# }

Run the code above in your browser using DataLab