pred_S3VS returns predicted survival probabilities using predictors selected by S3VS in generalized linear models.

pred_S3VS_SURV(y, X, surv_model = c("AFT", "COX"), method = c("AFTREG", "AFTGEE"), times)

Arguments

y

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

X

Predictor matrix. This should include predictors selected by S3VS. 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.

method

Character string indicating the prediction method used. Available options are "COXGLMNET" for surv_model = "COX" and "AFTREG" and "AFTGEE" for surv_model = "AFT". See Details for more information.

times

Vector of time points where predicted survival probabilities will be computed.

Value

A list containing:

y.pred

Predicted response

coef

Coefficient estimates of the predictors used for prediction

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 S3VS for linear models
res_surv <- S3VS(y = y_surv, X = X, family = "survival", 
                 surv_model = "COX", vsel_method = "COXGLMNET",
                 method_xy = "topk", param_xy = list(k = 1),
                 method_xx = "topk", param_xx = list(k = 3),
                 method_sel = "conservative", method_rem = "conservative_begin",
                 sel_regout = FALSE, rem_regout = FALSE, 
                 m = 100, nskip = 3, verbose = TRUE, seed = 123)
#> -------------
#> Iteration 1
#> -------------
#> Input Variables: V1 V119 V70 
#> Selected Variables: V1 V119 V70 
#> -------------
#> Iteration 2
#> -------------
#> Input Variables: V2 V43 V17 
#> Selected Variables: 
#> *** nskip= 1 *** 
#> -------------
#> Iteration 3
#> -------------
#> Input Variables: V88 V35 V128 
#> Selected Variables: 
#> *** nskip= 2 *** 
#> -------------
#> Iteration 4
#> -------------
#> Input Variables: V28 V117 V94 
#> Selected Variables: 
#> *** nskip= 3 *** 
#> =================================
#> Number of selected variables: 3
#> Time taken: 0.09 sec
#> =================================
pred_surv <- pred_S3VS_SURV(y = y_surv, X = X[,res_surv$selected], 
                            surv_model = "COX", method = "COXGLMNET")
pred_surv
#> $coef
#> V119  V70 
#>    0    0 
#> 
#> $y.pred
#>        1
#>   [1,] 1
#>   [2,] 1
#>   [3,] 1
#>   [4,] 1
#>   [5,] 1
#>   [6,] 1
#>   [7,] 1
#>   [8,] 1
#>   [9,] 1
#>  [10,] 1
#>  [11,] 1
#>  [12,] 1
#>  [13,] 1
#>  [14,] 1
#>  [15,] 1
#>  [16,] 1
#>  [17,] 1
#>  [18,] 1
#>  [19,] 1
#>  [20,] 1
#>  [21,] 1
#>  [22,] 1
#>  [23,] 1
#>  [24,] 1
#>  [25,] 1
#>  [26,] 1
#>  [27,] 1
#>  [28,] 1
#>  [29,] 1
#>  [30,] 1
#>  [31,] 1
#>  [32,] 1
#>  [33,] 1
#>  [34,] 1
#>  [35,] 1
#>  [36,] 1
#>  [37,] 1
#>  [38,] 1
#>  [39,] 1
#>  [40,] 1
#>  [41,] 1
#>  [42,] 1
#>  [43,] 1
#>  [44,] 1
#>  [45,] 1
#>  [46,] 1
#>  [47,] 1
#>  [48,] 1
#>  [49,] 1
#>  [50,] 1
#>  [51,] 1
#>  [52,] 1
#>  [53,] 1
#>  [54,] 1
#>  [55,] 1
#>  [56,] 1
#>  [57,] 1
#>  [58,] 1
#>  [59,] 1
#>  [60,] 1
#>  [61,] 1
#>  [62,] 1
#>  [63,] 1
#>  [64,] 1
#>  [65,] 1
#>  [66,] 1
#>  [67,] 1
#>  [68,] 1
#>  [69,] 1
#>  [70,] 1
#>  [71,] 1
#>  [72,] 1
#>  [73,] 1
#>  [74,] 1
#>  [75,] 1
#>  [76,] 1
#>  [77,] 1
#>  [78,] 1
#>  [79,] 1
#>  [80,] 1
#>  [81,] 1
#>  [82,] 1
#>  [83,] 1
#>  [84,] 1
#>  [85,] 1
#>  [86,] 1
#>  [87,] 1
#>  [88,] 1
#>  [89,] 1
#>  [90,] 1
#>  [91,] 1
#>  [92,] 1
#>  [93,] 1
#>  [94,] 1
#>  [95,] 1
#>  [96,] 1
#>  [97,] 1
#>  [98,] 1
#>  [99,] 1
#> [100,] 1
#>