Skip to content

Integer verbose (deprecate global options projpred.extra_verbose and projpred.verbose_project)#519

Merged
fweber144 merged 1 commit into
stan-dev:masterfrom
fweber144:integer_verbose
May 19, 2025
Merged

Integer verbose (deprecate global options projpred.extra_verbose and projpred.verbose_project)#519
fweber144 merged 1 commit into
stan-dev:masterfrom
fweber144:integer_verbose

Conversation

@fweber144
Copy link
Copy Markdown
Collaborator

This is a follow-up for PR #518: With #518 now being merged, this PR turns argument verbose of project(), varsel(), and cv_varsel() from logical to integer, which is common practice in R packages (see, e.g., argument silent of brms::brm()). This way, global options projpred.extra_verbose and projpred.verbose_project are now deprecated (which is desired, as they made it too complicated to achieve the desired verbosity).

File NEWS.md is unchanged here. I will update it as soon as #511 (or #508) has been merged. I would propose to add the following entry under "Major changes":

* Argument `verbose` of `project()`, `varsel()`, and `cv_varsel()` has been changed from logical to integer. However, logical values continue to work (since `as.integer()` is applied internally). Global options `projpred.extra_verbose` and `projpred.verbose_project` are now deprecated because additional verbosity can be achieved via higher integer values for argument `verbose`. The new global option `projpred.verbose` may be used to set argument `verbose` of `project()`, `varsel()`, and `cv_varsel()` globally. (GitHub: #519)

and to change the following entry:

* Minor enhancements concerning verbosity (e.g., the number of projected draws---resulting from clustering or thinning---is now printed out during the different steps of the computations). Also introduced global option `projpred.verbose` which may be used to set argument `verbose` of `varsel()` and `cv_varsel()` globally. (GitHub: #506)

(which was proposed to be changed to

* Several enhancements concerning verbosity (e.g., the number of projected draws---resulting from clustering or thinning---is now printed out during the different steps of the computations and verbose-mode output is redirected to `stderr()` instead of `stdout()`). Also introduced global option `projpred.verbose` which may be used to set argument `verbose` of `varsel()` and `cv_varsel()` globally. (GitHub: #506, #518)

in #518) to:

* Several enhancements concerning verbosity, e.g., the number of projected draws (resulting from clustering or thinning) is now printed out during the different steps of the computations and verbose-mode output is redirected to `stderr()` instead of `stdout()`. (GitHub: #506, #518)

@fweber144 fweber144 merged commit 0362770 into stan-dev:master May 19, 2025
@fweber144 fweber144 deleted the integer_verbose branch May 19, 2025 20:08
@fweber144
Copy link
Copy Markdown
Collaborator Author

For illustration:

data("df_gaussian", package = "projpred")
df_gaussian <- df_gaussian[1:29, ]
dat <- data.frame(y = df_gaussian$y, df_gaussian$x)
rfit <- rstanarm::stan_glm(y ~ X1 + X2 + X3 + X4 + X5,
                           data = dat,
                           chains = 1,
                           iter = 500,
                           seed = 1140350788,
                           refresh = 0)

devtools::load_all(".")

### New global option `projpred.verbose` (which only serves the purpose of
### setting argument `verbose` of project(), varsel(), and cv_varsel() globally):
# options(projpred.verbose = 4)
# options(projpred.verbose = 0)

### Deprecated global option `projpred.extra_verbose`:
# options(projpred.extra_verbose = TRUE)
# options(projpred.extra_verbose = FALSE)
###

### Deprecated global option `projpred.verbose_project`:
# options(projpred.verbose_project = TRUE)
# options(projpred.verbose_project = FALSE)
###

prj <- project(rfit,
               predictor_terms = c("X1", "X2"),
               verbose = 2,
               seed = 46782345)

vs <- varsel(rfit,
             method = "forward",
             nclusters = 1,
             nclusters_pred = 1,
             refit_prj = TRUE,
             nterms_max = 1,
             verbose = 4,
             seed = 46782345)

prj_vs <- project(vs,
                  predictor_terms = c("X1", "X2"),
                  verbose = 2,
                  seed = 46782345)

prj_vs <- project(vs,
                  nterms = c(0, 1),
                  verbose = 2,
                  seed = 46782345)

cvvs <- cv_varsel(rfit,
                  nloo = 4,
                  method = "forward",
                  nclusters = 1,
                  nclusters_pred = 1,
                  refit_prj = TRUE,
                  nterms_max = 1,
                  verbose = 4,
                  seed = 46782345)

cvvs <- cv_varsel(rfit,
                  cv_method = "kfold",
                  K = 2,
                  method = "forward",
                  nclusters = 1,
                  nclusters_pred = 1,
                  refit_prj = TRUE,
                  nterms_max = 1,
                  verbose = 4,
                  seed = 46782345)

fweber144 added a commit that referenced this pull request Jun 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant