VS_method applies the chosen variable-selection algorithm for survival models to each leading set produced by S3VS at every iteration.

VS_method_SURV(y, X, surv_model, vsel_method, alpha = 0.5,
  p_thresh = 0.1, gamma = 0.9, verbose = FALSE, ...)

Arguments

y

Response. A list with components time and status (1 = event, 0 = censored).

X

Predictor matrix. Can be a base matrix or something as.matrix() can coerce. No missing values are allowed.

surv_model

Character string specifying the survival model. Must be explicitly provided; there is no default. Values are "Cox" for proportional hazards models, "AFT" for accelerated failure time models.

vsel_method

Character string indicating the variable-selection engine used at each iteration. Available options are "COXGLMNET" for surv_model = "COX" and "AFTREG", "AFTGEE", "BRIDGE", and "PVAFT" for surv_model = "AFT". See Details for more information.

alpha

Only used when vsel_method == "ENET". Elastic net mixing parameter, with \(\alpha \in (0,1)\).

p_thresh

Only used with vsel_method = "AFTGEE". p-value threshold for variable selection.

gamma

Only used with vsel_method = "BRIDGE". Numeric scalar (default 0.5) giving the exponent in the bridge penalty. Must be \(> 0\). See details.

verbose

If TRUE, some information is printed. FALSE, by default.

...

Other arguments to be passed inside eha::aftreg() when surv_model = "AFT" and vsel_method = "AFTREG"

Value

A list containing:

sel

Character vector with names of the selected predictors.

nosel

Character vector with names of the predictors not selected.

Author

Nilotpal Sanyal <nsanyal@utep.edu>, Padmore N. Prempeh <pprempeh@albany.edu>

Examples

# Simulate survival data (Cox)
set.seed(123)
n <- 100
p <- 150
X <- matrix(rnorm(n * p), n, p)
colnames(X) <- paste0("V", 1:p)
eta <- X[,1] + 0.5 * X[,2]
base_rate <- 0.05
T_event <- rexp(n, rate = base_rate * exp(eta))
C <- rexp(n, rate = 0.03)
time <- pmin(T_event, C)
status <- as.integer(T_event <= C)
y_surv <- list(time = time, status = status)
# Run VS_method
VS_method_SURV(y_surv, X, surv_model = "COX", vsel_method = "COXGLMNET", verbose = FALSE)
#> Warning: Ran out of iterations and did not converge
#> $sel
#>   [1] "V1"   "V2"   "V3"   "V4"   "V5"   "V6"   "V7"   "V8"   "V9"   "V10" 
#>  [11] "V11"  "V12"  "V13"  "V14"  "V15"  "V16"  "V17"  "V18"  "V19"  "V20" 
#>  [21] "V21"  "V22"  "V23"  "V24"  "V25"  "V26"  "V27"  "V28"  "V29"  "V30" 
#>  [31] "V31"  "V32"  "V33"  "V34"  "V35"  "V36"  "V37"  "V38"  "V39"  "V40" 
#>  [41] "V41"  "V42"  "V43"  "V44"  "V45"  "V46"  "V47"  "V48"  "V49"  "V50" 
#>  [51] "V51"  "V52"  "V53"  "V54"  "V55"  "V56"  "V57"  "V58"  "V59"  "V60" 
#>  [61] "V61"  "V62"  "V63"  "V64"  "V65"  "V66"  "V67"  "V68"  "V69"  "V70" 
#>  [71] "V71"  "V72"  "V73"  "V74"  "V75"  "V76"  "V77"  "V78"  "V79"  "V80" 
#>  [81] "V81"  "V82"  "V83"  "V84"  "V85"  "V86"  "V87"  "V88"  "V89"  "V90" 
#>  [91] "V91"  "V92"  "V93"  "V94"  "V95"  "V96"  "V97"  "V98"  "V99"  "V100"
#> [101] "V101" "V102" "V103" "V104" "V105" "V106" "V107" "V108" "V109" "V110"
#> [111] "V111" "V112" "V113" "V114" "V115" "V116" "V117" "V118" "V119" "V120"
#> [121] "V121" "V122" "V123" "V124" "V125" "V126" "V127" "V128" "V129" "V130"
#> [131] "V131" "V132" "V133" "V134" "V135" "V136" "V137" "V138" "V139" "V140"
#> [141] "V141" "V142" "V143" "V144" "V145" "V146" "V147" "V148" "V149" "V150"
#> 
#> $nosel
#> character(0)
#>