Skip to contents

Repeats the FDA benchmark over a grid of simulation settings and a grid of FDA-aware SelectBoost settings. This is intended to answer the specific benchmark question of when selectboost_fda() improves on plain SelectBoost.

Usage

run_selectboost_sensitivity_study(
  n_rep = 10L,
  simulate_grid = expand.grid(scenario = c("localized_dense", "confounded_blocks"),
    confounding_strength = c(0.4, 0.9), active_region_scale = c(1, 0.7),
    local_correlation = c(0, 2), stringsAsFactors = FALSE),
  selectboost_grid = expand.grid(association_method = c("correlation", "neighborhood",
    "hybrid", "interval"), bandwidth = c(NA, 4, 8), stringsAsFactors = FALSE),
  simulate_args = list(),
  benchmark_args = list(),
  seed = NULL,
  keep_results = FALSE
)

Arguments

n_rep

Number of replications per setting combination.

simulate_grid

Data frame of simulation-setting combinations. Columns are merged into simulate_args and can include scenario, confounding_strength, active_region_scale, and local_correlation.

selectboost_grid

Data frame of selectboost_fda() setting combinations. Columns are merged into benchmark_args$selectboost_args and can include association_method, bandwidth, width, or step.

simulate_args

Named list forwarded to simulate_fda_scenario().

benchmark_args

Named list forwarded to benchmark_selection_methods(). When omitted, the study compares FDA-aware SelectBoost, plain SelectBoost, and grouped stability selection.

seed

Optional seed used to derive deterministic per-replication and per-setting seeds.

keep_results

Should the individual benchmark objects be returned?

Value

An object inheriting from fda_selectboost_sensitivity_study and fda_simulation_study.

Examples

grid <- data.frame(
  scenario = "confounded_blocks",
  confounding_strength = 0.9,
  active_region_scale = 0.7,
  local_correlation = 2,
  stringsAsFactors = FALSE
)
methods <- data.frame(
  association_method = c("correlation", "hybrid"),
  bandwidth = c(NA, 4),
  stringsAsFactors = FALSE
)
study <- run_selectboost_sensitivity_study(
  n_rep = 1,
  simulate_grid = grid,
  selectboost_grid = methods,
  simulate_args = list(n = 24, grid_length = 16),
  benchmark_args = list(
    methods = c("selectboost", "plain_selectboost"),
    levels = "feature",
    selectboost_args = list(B = 3, steps.seq = 0.5, c0lim = FALSE),
    plain_selectboost_args = list(B = 3, steps.seq = 0.5, c0lim = FALSE)
  ),
  seed = 1
)
summarise_benchmark_advantage(
  study,
  target = "selectboost",
  reference = "plain_selectboost",
  level = "feature"
)
#>                                                                                                      scenario
#> confounded_blocks.grid.gaussian.hybrid.4.0.9.0.7.2.feature.selectboost.plain_selectboost.f1 confounded_blocks
#>                                                                                             representation
#> confounded_blocks.grid.gaussian.hybrid.4.0.9.0.7.2.feature.selectboost.plain_selectboost.f1           grid
#>                                                                                               family
#> confounded_blocks.grid.gaussian.hybrid.4.0.9.0.7.2.feature.selectboost.plain_selectboost.f1 gaussian
#>                                                                                             association_method
#> confounded_blocks.grid.gaussian.hybrid.4.0.9.0.7.2.feature.selectboost.plain_selectboost.f1             hybrid
#>                                                                                             bandwidth
#> confounded_blocks.grid.gaussian.hybrid.4.0.9.0.7.2.feature.selectboost.plain_selectboost.f1         4
#>                                                                                             confounding_strength
#> confounded_blocks.grid.gaussian.hybrid.4.0.9.0.7.2.feature.selectboost.plain_selectboost.f1                  0.9
#>                                                                                             active_region_scale
#> confounded_blocks.grid.gaussian.hybrid.4.0.9.0.7.2.feature.selectboost.plain_selectboost.f1                 0.7
#>                                                                                             local_correlation
#> confounded_blocks.grid.gaussian.hybrid.4.0.9.0.7.2.feature.selectboost.plain_selectboost.f1                 2
#>                                                                                               level
#> confounded_blocks.grid.gaussian.hybrid.4.0.9.0.7.2.feature.selectboost.plain_selectboost.f1 feature
#>                                                                                                  target
#> confounded_blocks.grid.gaussian.hybrid.4.0.9.0.7.2.feature.selectboost.plain_selectboost.f1 selectboost
#>                                                                                                     reference
#> confounded_blocks.grid.gaussian.hybrid.4.0.9.0.7.2.feature.selectboost.plain_selectboost.f1 plain_selectboost
#>                                                                                             metric
#> confounded_blocks.grid.gaussian.hybrid.4.0.9.0.7.2.feature.selectboost.plain_selectboost.f1     f1
#>                                                                                             n_rep
#> confounded_blocks.grid.gaussian.hybrid.4.0.9.0.7.2.feature.selectboost.plain_selectboost.f1     1
#>                                                                                             target_value_mean
#> confounded_blocks.grid.gaussian.hybrid.4.0.9.0.7.2.feature.selectboost.plain_selectboost.f1         0.4117647
#>                                                                                             reference_value_mean
#> confounded_blocks.grid.gaussian.hybrid.4.0.9.0.7.2.feature.selectboost.plain_selectboost.f1                  0.4
#>                                                                                             delta_mean
#> confounded_blocks.grid.gaussian.hybrid.4.0.9.0.7.2.feature.selectboost.plain_selectboost.f1 0.01176471
#>                                                                                             delta_sd
#> confounded_blocks.grid.gaussian.hybrid.4.0.9.0.7.2.feature.selectboost.plain_selectboost.f1        0
#>                                                                                             win_rate
#> confounded_blocks.grid.gaussian.hybrid.4.0.9.0.7.2.feature.selectboost.plain_selectboost.f1        1