bridge_aft fits an accelerated failure time (AFT) model using an iterative reweighted LASSO scheme to approximate a bridge (\(L_\gamma\)) penalty on the regression coefficients.

bridge_aft(y, X, gamma = 0.5, alpha = 1, max_iter = 100, tol = 1e-05)

Arguments

y

Response; a list of two elements time and status.

X

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

gamma

Bridge penalty exponent \(\gamma\) (default 0.5). Values in \((0,1]\) approximate nonconvex penalties; \(\gamma=1\) reduces to LASSO-like weighting.

alpha

Elastic-net mixing parameter passed to glmnet::cv.glmnet (default 1 for LASSO; 0 is ridge; (0,1) is elastic net).

max_iter

Maximum number of outer reweighting iterations (default 100).

tol

Convergence tolerance on the \(L_1\) change in coefficients between iterations (default 1e-5).

Value

A list with components:

beta

Numeric vector of estimated coefficients of length \(p\).

gamma

The bridge exponent used in the fit.

iterations

Number of outer reweighting iterations performed.

References

Jian Huang and Shuangge Ma. Variable selection in the accelerated failure time model via the bridge method. Lifetime Data Analysis, 16(2):176-195, 2010.

Author

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

Examples

set.seed(1)
n  <- 50
p  <- 10
X  <- matrix(rnorm(n * p), n, p)
beta_true <- c(runif(10, -1.5, 1.5), rep(0, p - 10))
linpred   <- as.vector(X %*% beta_true)

## Generate log-normal AFT survival times (no censoring in this simple example)
sigma <- 0.6
logT  <- linpred + rnorm(n, sd = sigma)
time  <- exp(logT)
delta <- rep(1, n)  # all events (censoring ignored by current implementation)

y_surv <- list(time = time, status = delta)
fit <- bridge_aft(y_surv, X, gamma = 0.5, alpha = 1, max_iter = 50, tol = 1e-5)
str(fit)
#> List of 3
#>  $ beta      : num [1:10] 0.00 4.77e-07 -7.21e-07 5.56e+05 -6.74e+01 ...
#>  $ gamma     : num 0.5
#>  $ iterations: int 50
fit$beta[1:10]
#>  [1]  0.000000e+00  4.774684e-07 -7.211057e-07  5.555622e+05 -6.737057e+01
#>  [6] -1.759694e+05  0.000000e+00  2.790805e-08  1.239355e-04  9.026533e-07