Skip to contents

extract_model() extracts a model from a “multimodel” or “cv” object.

extract_multimodel() extracts the multimodel from a “cv” object.

Usage

extract_model(x, which, ...)

# S3 method for multimodel
extract_model(x, which, use_cv_info = TRUE, ...)

# S3 method for cv
extract_model(x, which, use_cv_info = TRUE, ...)

extract_multimodel(x, ...)

# S3 method for cv
extract_multimodel(x, use_cv_info = TRUE, ...)

Arguments

x

A “multimodel” or “cv” object.

which

Selection of one model: An integer value or a logical vector of length n_model(x) having exactly one TRUE, or a character value (selection by name, a model's label). If n_model(x)==1, the only model is selected by default.

...

Arguments passed from or to methods.

use_cv_info

Logical: Whether to set the preferred iteration according to results from the cross-validation (if these are present). Relevant only for iteratively fitted models (ifm).

Value

extract_model() returns a model, extract_multimodel() returns a multimodel.

See also

Examples

mm_swiss <- c(model(lm(Fertility ~ Education, swiss)),
              model(lm(Fertility ~ Education + I(Education^2) , swiss)))
cv_swiss <- cv(mm_swiss)

extract_model(mm_swiss, 1) # a model
#> --- A “model” object ---
#>   label:          model
#>   model class:    lm
#>   formula:        Fertility ~ Education
#>   data:           data.frame [47 x 6], 
#>                   input as: ‘data = swiss’
#>   response_type:  continuous
#>   call:           lm(formula = Fertility ~ Education, data = data)
#>   fit:            Object of class ‘lm’
subset(mm_swiss, 1)        # a multimodel
#> --- A “multimodel” object containing 1 model ---
#> 
#> ‘model’:
#>   model class:  lm
#>   formula:      Fertility ~ Education
#>   data:         data.frame [47 x 6], 
#>                 input as: ‘data = swiss’
#>   call:         lm(formula = Fertility ~ Education, data = data)

extract_model(cv_swiss, 1)      # a model
#> --- A “model” object ---
#>   label:          model
#>   model class:    lm
#>   formula:        Fertility ~ Education
#>   data:           data.frame [47 x 6], 
#>                   input as: ‘data = swiss’
#>   response_type:  continuous
#>   call:           lm(formula = Fertility ~ Education, data = data)
#>   fit:            Object of class ‘lm’
extract_multimodel(cv_swiss, 1) # a multimodel
#> --- A “multimodel” object containing 2 models ---
#> 
#> ‘model’:
#>   model class:  lm
#>   formula:      Fertility ~ Education
#>   data:         data.frame [47 x 6], 
#>                 input as: ‘data = swiss’
#>   call:         lm(formula = Fertility ~ Education, data = data)
#> 
#> ‘model1’:
#>   model class:  lm
#>   formula:      Fertility ~ Education + I(Education^2)
#>   data:         data.frame [47 x 6], 
#>                 input as: ‘data = swiss’
#>   call:         lm(formula = Fertility ~ Education + I(Education^2), 
#>                     data = data)
subset(cv_swiss, 1)             # a cv
#> --- A “cv” object containing 1 validated model ---
#> 
#> Validation procedure: Complete k-fold Cross-Validation
#>   Number of obs in data:   47
#>   Number of test sets:     10
#>   Size of test sets:       ~5
#>   Size of training sets:  ~42
#> 
#> Model:
#> 
#> ‘model’:
#>   model class:  lm
#>   formula:      Fertility ~ Education
#>   metric:       rmse