Skip to contents

Convenience wrapper around gs_cv() that evaluates every model available in the session (including the stacked "ensemble") under one cross-validation, so they can be compared on an equal footing. Returns a gs_cv object; use plot() to draw the comparison.

Usage

gs_benchmark(
  y,
  geno,
  models = available_models(),
  k = 5,
  reps = 1,
  scheme = c("kfold", "leave_group_out"),
  groups = NULL,
  seed = NULL,
  ...
)

Arguments

y

Numeric phenotype vector (length n), no missing values.

geno

Marker matrix (n x m, 0/1/2, no missing values).

models

Models to evaluate; defaults to all available (see available_models()). Unavailable models are dropped with a warning.

k

Number of folds for "kfold". Default 5.

reps

Number of repeats for "kfold". Default 1.

scheme

"kfold" or "leave_group_out".

groups

Grouping vector (length n) for "leave_group_out".

seed

Optional seed (applied via withr::with_seed()).

...

Passed to gs_fit() (model hyperparameters).

Value

A gs_cv object (see gs_cv()).

Examples

sim <- simulate_population(n = 120, m = 400, seed = 1)
bench <- gs_benchmark(sim$pheno, sim$geno, models = "gblup", k = 5, seed = 1)
bench$accuracy
#>   model      mean        sd n_folds
#> 1 gblup 0.1530038 0.1057235       5