selSurv provides methods for inference after Cox-Lasso
variable selection. The methods answer different questions; choosing an
interval type alone does not determine its target.
Choose a method according to whether the original selected support is held fixed or selection is repeated.
| Function | Role | Inferential target |
|---|---|---|
coxlasso_fit() |
Cox-Lasso fitting and selection | common starting point |
coxlasso_debias() |
ridge-stabilized one-step correction | approximate coefficient-level target |
coxlasso_boot() |
score resampling or fixed-support model-based resampling | approximate debiased or fixed-support target |
coxlasso_boot_reselect() |
model-based resampling with repeated selection and refitting | selection-and-refit procedure |
coxlasso_split() |
sample splitting for selection and inference | split-sample target |
Lower-level method-specific functions remain available for compatibility and development, but these functions define the recommended user-facing interface.
selSurv separates three targets.
The procedure-level target is exposed separately through
coxlasso_boot_reselect(), because this procedure repeats
Cox-Lasso selection and refitting rather than keeping the observed
selected support fixed.
For coxlasso_boot(..., inference = "conditional"), the
term conditional means that the support selected in the
observed data is held fixed during bootstrap analysis. It does
not mean formal conditioning on the complete selection
event.
library(selSurv)
# Reproducible continuous-time example (without tied event times).
set.seed(2026)
n <- 120L
X <- matrix(rnorm(n * 4L), nrow = n)
colnames(X) <- paste0("x", seq_len(ncol(X)))
event_time <- rexp(n, rate = 0.12 * exp(X[, 1] - 0.7 * X[, 2]))
censor_time <- rexp(n, rate = 0.06)
time <- pmin(event_time, censor_time)
status <- as.integer(event_time <= censor_time)
fit <- coxlasso_fit(X, time, status, lambda_choice = "min", nfolds = 3)
fixed <- coxlasso_boot(
fit,
inference = "conditional",
B = 200,
seed = 2026
)
reselected <- coxlasso_boot_reselect(
X, time, status,
B = 200,
methods = c(
"fixed_support",
"reselect_fixed_lambda",
"reselect_cv_min"
),
seed = 2026
)
db <- coxlasso_debias(fit)
wb <- coxlasso_boot(
fit,
inference = "debiased",
type = "wild",
B = 500,
seed = 2026
)
sp <- coxlasso_split(X, time, status, seed = 1)The bootstrap counts above illustrate the interface; they do not establish adequate Monte Carlo precision. Assess simulation error and convergence for the intended analysis.
The bootstrap modules are research implementations. Computable intervals should not be read as general coverage guarantees. Report the target, selection rule, handling of tied event times, and relevant diagnostics, such as re-selection frequencies, support overlap, interval width, and fit success rates.
Procedure-level re-selection returns coefficient summaries together with diagnostics describing how the selected model changes across bootstrap samples.
rs_summary <- summary(reselected)
rs_summary$diagnostics
rs_summary$intervalsThe diagnostics summarize support reproduction and overlap, selected-model size, selection and refit success, and tuning-parameter variability where applicable.
For originally selected coordinates, non-selection in a bootstrap sample is represented by a zero coefficient. This is distinct from an unavailable coefficient caused by a failed selection or refit. Re-selection frequency, zero frequency, and numerical failure can therefore be interpreted separately.
rng_mode = "legacy_nki70" is retained only for
reproducing the archived NKI70 production analysis. It is not the
recommended default for new analyses.
The package documentation gives each public inferential route a dedicated entry point:
getting-started.Rmd: common Cox-Lasso fit and target
selection;debiased-bootstrap.Rmd: debiased Wald inference, wild
bootstrap, and Efron’s bootstrap;fixed-support-bootstrap.Rmd: model-based bootstrap with
the observed support held fixed;sample-splitting.Rmd: selection and inference on
disjoint samples;reselection.Rmd: procedure-level repeated selection and
refitting.The vignettes are organised by inferential target rather than by a single preferred method.
selSurv supports several Cox-Lasso post-selection
methods with different inferential targets. Start with
coxlasso_fit() and choose the next step based on the
scientific question.
| Goal | Recommended function | Interpretation |
|---|---|---|
| Approximate full-model-coordinate inference | coxlasso_debias(fit) and optionally
coxlasso_boot(fit, inference = "debiased", type = c("wild", "efron")) |
Ridge-stabilized one-step correction and score-level bootstrap; exploratory research implementation, not a general high-dimensional validity guarantee |
| Fixed-support model-based bootstrap | coxlasso_boot(fit, inference = "conditional") |
Resample and refit on the original selected support; does not condition formally on the complete selection event |
| Procedure-level re-selection | coxlasso_boot_reselect(x, time, status, methods = c("fixed_support", "reselect_fixed_lambda", "reselect_cv_min")) |
Repeat the selection-and-refit procedure and inspect zero-padded coefficients, selection frequencies, support overlap and refit success |
Additional interface:
coxlasso_boot_parametric() remains available for its own
fixed-support and retuned re-selection procedures. It is not
interchangeable with the three recommended entry points and has its own
argument and result conventions.
Argument naming and penalty scope:
alpha is an elastic-net mixing parameter in
coxlasso_fit() and coxlasso_boot_reselect()
(Lasso: alpha = 1), but a significance level in
coxlasso_boot_parametric() and the lower-level
score-bootstrap functions. coxlasso_split() instead uses
penalty_alpha and conf_level. The documented
inferential procedures have been examined primarily with Lasso screening
(alpha = 1); this is not a general validity guarantee.
Other penalties remain available for fitting. Debiased inference
requires alpha = 1; split-sample, model-based bootstrap,
and re-selection procedures warn when other mixing parameters are used
because those settings have not been assessed separately.
For the complete decision guide in the R help system, run
?selSurv_workflows. Cox-Lasso selection and unpenalized Cox
refitting may use different conventions for tied event times. The
Efron event-score bootstrap resamples event-level score
contributions; it is unrelated to the Efron approximation used
in Cox partial likelihood. The debiasing score calculation still
requires particular caution when event times are tied.