Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

project

Projection to submodels


Description

Perform projection onto submodels of selected sizes or a specified feature combination.

Usage

project(
  object,
  nterms = NULL,
  solution_terms = NULL,
  cv_search = TRUE,
  ndraws = 400,
  nclusters = NULL,
  intercept = NULL,
  seed = NULL,
  regul = 1e-04,
  ...
)

Arguments

object

Either a refmodel-type object created by get_refmodel or init_refmodel, or an object which can be converted to a reference model using get_refmodel.

nterms

Number of terms in the submodel (the variable combination is taken from the varsel information). If a list, then the projection is performed for each model size. Default is the model size suggested by the variable selection (see function suggest_size). Ignored if solution_terms is specified.

solution_terms

Variable indices onto which the projection is done. If specified, nterms is ignored.

cv_search

If TRUE, then the projected coefficients after L1-selection are computed without any penalization (or using only the regularization determined by regul). If FALSE, then the coefficients are the solution from the L1-penalized projection. This option is relevant only if L1-search was used. Default is TRUE for genuine reference models and FALSE if object is datafit (see init_refmodel).

ndraws

Number of posterior draws to be projected. Ignored if nclusters is specified. Default is 400.

nclusters

Number of clusters in the clustered projection.

intercept

Whether to use intercept. Default is TRUE.

seed

A seed used in the clustering (if nclusters!=ndraws). Can be used to ensure same results every time. @param regul Amount of regularization in the projection. Usually there is no need for regularization, but sometimes for some models the projection can be ill-behaved and we need to add some regularization to avoid numerical problems.

regul

Ridgre regularization constant to fit the projections.

...

Currently ignored.

Value

A list of submodels (or a single submodel if projection was performed onto a single variable combination), each of which contains the following elements:

kl

The KL divergence from the reference model to the submodel.

weights

Weights for each draw of the projected model.

dis

Draws from the projected dispersion parameter.

alpha

Draws from the projected intercept.

beta

Draws from the projected weight vector.

solution_terms

The order in which the variables were added to the submodel.

intercept

Whether or not the model contains an intercept.

family

A modified family-object.

Examples

if (requireNamespace("rstanarm", quietly = TRUE)) {
  ### Usage with stanreg objects
  n <- 30
  d <- 5
  x <- matrix(rnorm(n * d), nrow = n)
  y <- x[, 1] + 0.5 * rnorm(n)
  data <- data.frame(x, y)

  fit <- rstanarm::stan_glm(y ~ X1 + X2 + X3 + X4 + X5, gaussian(),
    data = data, chains = 2, iter = 500)
  vs <- varsel(fit)

  # project onto the best model with 4 variables
  proj4 <- project(vs, nterms = 4)

  # project onto an arbitrary variable combination (variable indices 1, 3 and 5)
  proj <- project(fit, solution_terms = c(1, 3, 5))
}

projpred

Projection Predictive Feature Selection

v2.0.2
GPL-3
Authors
Juho Piironen [aut], Markus Paasiniemi [aut], Alejandro Catalina [cre, aut], Aki Vehtari [aut], Jonah Gabry [ctb], Marco Colombo [ctb], Paul-Christian Bürkner [ctb]
Initial release

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.