test_that(
desc = "Survival variable selection filters junk preds",
code = {
pbc_with_junk <- pbc
n_junk_preds <- 5
junk_names <- paste("junk", seq(n_junk_preds), sep ='_')
set.seed(329)
for(i in junk_names)
pbc_with_junk[[i]] <- rnorm(nrow(pbc))
fit <- orsf(pbc_with_junk,
time + status ~ .,
n_tree = n_tree_test,
importance = 'anova',
tree_seeds = seeds_standard)
fit_var_select <- orsf_vs(fit, n_predictor_min = 3)
vars_picked <- fit_var_select$predictors_included[[1]]
expect_false( any(junk_names %in% vars_picked) )
}
)
test_that(
desc = "Classification variable selection filters junk preds",
code = {
penguins_with_junk <- penguins
n_junk_preds <- 5
junk_names <- paste("junk", seq(n_junk_preds), sep ='_')
set.seed(329)
for(i in junk_names)
penguins_with_junk[[i]] <- rnorm(nrow(penguins))
fit <- orsf(penguins_with_junk,
species ~ .,
n_tree = n_tree_test,
importance = 'permute',
tree_seeds = seeds_standard)
fit_var_select <- orsf_vs(fit, n_predictor_min = 3,
verbose_progress = TRUE)
vars_picked <- fit_var_select$predictors_included[[1]]
expect_false( any(junk_names %in% vars_picked) )
}
)
test_that(
desc = "Regression variable selection filters junk preds",
code = {
penguins_with_junk <- penguins
n_junk_preds <- 5
junk_names <- paste("junk", seq(n_junk_preds), sep ='_')
set.seed(329)
for(i in junk_names)
penguins_with_junk[[i]] <- rnorm(nrow(penguins))
fit <- orsf(penguins_with_junk,
species ~ .,
n_tree = n_tree_test,
importance = 'permute',
no_fit = TRUE,
tree_seeds = seeds_standard)
fit_var_select <- orsf_vs(fit, n_predictor_min = 3)
vars_picked <- fit_var_select$predictors_included[[1]]
expect_false( any(junk_names %in% vars_picked) )
}
)
test_that(
desc = "variable selection can go down to 1 predictor",
code = {
fit_cars <- orsf(mpg ~ ., data = mtcars, n_tree = n_tree_test)
vs <- orsf_vs(fit_cars, n_predictor_min = 1)
# assert that we eliminated 1 predictor at each step and got down to
# 1 remaining predictor
expect_equal(nrow(vs), ncol(mtcars) - 1)
expect_length(vs$variables_included[[1]], 1)
expect_length(vs$predictors_included[[1]], 1)
}
)
test_that(
desc = "variable selection with step size > 1",
code = {
fit_cars <- orsf(mpg ~ ., data = mtcars, n_tree = n_tree_test)
vs_size_2 <- orsf_vs(fit_cars, n_predictor_min = 1, n_predictor_drop = 2)
# assert that we eliminated 2 predictors at each step and got down to
# 1 remaining predictor
expect_equal(vs_size_2$n_predictors, c(1,2,4,6,8,10))
}
)
test_that(
desc = "importance specification is required",
code = {
fit_cars <- orsf(mpg ~ ., data = mtcars,
n_tree = n_tree_test,
importance = 'none')
expect_error(orsf_vs(fit_cars), regexp = 'must be specified')
}
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.