Learn R Programming

parameters (version 0.6.0)

select_parameters: Automated selection of model parameters

Description

This function performs an automated selection of the 'best' parameters, updating and returning the "best" model. For frequentist simple GLMs, it performs an AIC-based stepwise selection. For Bayesian models, it uses the projpred package.

Usage

select_parameters(model, ...)

# S3 method for lm select_parameters(model, direction = "both", steps = 1000, k = 2, ...)

# S3 method for merMod select_parameters(model, direction = "backward", steps = 1000, ...)

# S3 method for stanreg select_parameters(model, method = NULL, cross_validation = FALSE, ...)

Arguments

model

A statistical model.

...

Arguments passed to or from other methods.

direction

the mode of stepwise search, can be one of "both", "backward", or "forward", with a default of "both". If the scope argument is missing the default for direction is "backward". Values can be abbreviated.

steps

the maximum number of steps to be considered. The default is 1000 (essentially as many as required). It is typically used to stop the process early.

k

the multiple of the number of degrees of freedom used for the penalty. Only k = 2 gives the genuine AIC: k = log(n) is sometimes referred to as BIC or SBC.

method

The method used in the variable selection. Can be NULL (default), "forward" or "L1". See projpred::varsel.

cross_validation

Select with cross-validation.

Value

The model refitted with optimal number of parameters.

Examples

Run this code
# NOT RUN {
model <- lm(mpg ~ ., data = mtcars)
select_parameters(model)

model <- lm(mpg ~ cyl * disp * hp * wt, data = mtcars)
select_parameters(model)
# }
# NOT RUN {
# lme4 -------------------------------------------
if (require("lme4")) {
  model <- lmer(
    Sepal.Width ~ Sepal.Length * Petal.Width * Petal.Length + (1 | Species),
    data = iris
  )
  select_parameters(model)
}

# rstanarm -------------------------------------------
if (require("rstanarm")) {
  model <- stan_glm(
    mpg ~ ., data = mtcars,
    iter = 500, refresh = 0, verbose = FALSE
  )
  select_parameters(model, cross_validation = TRUE)

  model <- stan_glm(
    mpg ~ cyl * disp * hp, data = mtcars,
    iter = 500, refresh = 0, verbose = FALSE
  )
  select_parameters(model, cross_validation = FALSE)
}
# }

Run the code above in your browser using DataLab