cox_gradient_boost.RdFit a model-agnostic Cox-gradient boosting survival model
cox_gradient_boost(
X,
time,
event,
regr_fun,
M = 100L,
nu = 0.1,
show_progress = TRUE,
...
)numeric matrix of covariates (n x p)
numeric vector of observed times
integer/logical vector (1 = event, 0 = censored)
function(X, y, ...) -> model with predict() method
number of boosting iterations (default 100)
learning rate / shrinkage (default 0.1)
logical; print a progress bar? (default TRUE)
extra arguments forwarded to regr_fun at every iteration
object of class "CoxGradientBoost"
require(glmnet)
#> Loading required package: glmnet
#> Loading required package: Matrix
#> Loaded glmnet 4.1-10
require(survival)
#> Loading required package: survival
data(ovarian)
#> Warning: data set ‘ovarian’ not found
set.seed(42)
idx_train <- sample(nrow(ovarian), floor(0.75 * nrow(ovarian)))
df <- ovarian
train <- df[idx_train, ]; test <- df[-idx_train, ]
regr_lm <- function(X, y, ...) lm(y ~ ., data = data.frame(X, y = y))
fit_boost_lm <- survivalisttoo::cox_gradient_boost(train, train$futime,
train$fustat, regr_lm)
#>
Iter 1/100 [ ] 1% ETA 1s
Iter 2/100 [= ] 2% ETA 1s
Iter 3/100 [== ] 3% ETA 1s
Iter 4/100 [== ] 4% ETA 1s
Iter 5/100 [== ] 5% ETA 0s
Iter 6/100 [=== ] 6% ETA 0s
Iter 7/100 [==== ] 7% ETA 0s
Iter 8/100 [==== ] 8% ETA 0s
Iter 9/100 [==== ] 9% ETA 0s
Iter 10/100 [===== ] 10% ETA 0s
Iter 11/100 [====== ] 11% ETA 0s
Iter 12/100 [====== ] 12% ETA 0s
Iter 13/100 [====== ] 13% ETA 0s
Iter 14/100 [======= ] 14% ETA 0s
Iter 15/100 [======== ] 15% ETA 0s
Iter 16/100 [======== ] 16% ETA 0s
Iter 17/100 [======== ] 17% ETA 0s
Iter 18/100 [========= ] 18% ETA 0s
Iter 19/100 [========== ] 19% ETA 0s
Iter 20/100 [========== ] 20% ETA 0s
Iter 21/100 [========== ] 21% ETA 0s
Iter 22/100 [=========== ] 22% ETA 0s
Iter 23/100 [============ ] 23% ETA 0s
Iter 24/100 [============ ] 24% ETA 0s
Iter 25/100 [============ ] 25% ETA 0s
Iter 26/100 [============= ] 26% ETA 0s
Iter 27/100 [============== ] 27% ETA 0s
Iter 28/100 [============== ] 28% ETA 0s
Iter 29/100 [============== ] 29% ETA 0s
Iter 30/100 [=============== ] 30% ETA 0s
Iter 31/100 [================ ] 31% ETA 0s
Iter 32/100 [================ ] 32% ETA 0s
Iter 33/100 [================ ] 33% ETA 0s
Iter 34/100 [================= ] 34% ETA 0s
Iter 35/100 [================== ] 35% ETA 0s
Iter 36/100 [================== ] 36% ETA 0s
Iter 37/100 [================== ] 37% ETA 0s
Iter 38/100 [=================== ] 38% ETA 0s
Iter 39/100 [==================== ] 39% ETA 0s
Iter 40/100 [==================== ] 40% ETA 0s
Iter 41/100 [==================== ] 41% ETA 0s
Iter 42/100 [===================== ] 42% ETA 0s
Iter 43/100 [====================== ] 43% ETA 0s
Iter 44/100 [====================== ] 44% ETA 0s
Iter 45/100 [====================== ] 45% ETA 0s
Iter 46/100 [======================= ] 46% ETA 0s
Iter 47/100 [======================== ] 47% ETA 0s
Iter 48/100 [======================== ] 48% ETA 0s
Iter 49/100 [======================== ] 49% ETA 0s
Iter 50/100 [========================= ] 50% ETA 0s
Iter 51/100 [========================== ] 51% ETA 0s
Iter 52/100 [========================== ] 52% ETA 0s
Iter 53/100 [========================== ] 53% ETA 0s
Iter 54/100 [=========================== ] 54% ETA 0s
Iter 55/100 [============================ ] 55% ETA 0s
Iter 56/100 [============================ ] 56% ETA 0s
Iter 57/100 [============================ ] 57% ETA 0s
Iter 58/100 [============================= ] 58% ETA 0s
Iter 59/100 [============================== ] 59% ETA 0s
Iter 60/100 [============================== ] 60% ETA 0s
Iter 61/100 [============================== ] 61% ETA 0s
Iter 62/100 [=============================== ] 62% ETA 0s
Iter 63/100 [================================ ] 63% ETA 0s
Iter 64/100 [================================ ] 64% ETA 0s
Iter 65/100 [================================ ] 65% ETA 0s
Iter 66/100 [================================= ] 66% ETA 0s
Iter 67/100 [================================== ] 67% ETA 0s
Iter 68/100 [================================== ] 68% ETA 0s
Iter 69/100 [================================== ] 69% ETA 0s
Iter 70/100 [=================================== ] 70% ETA 0s
Iter 71/100 [==================================== ] 71% ETA 0s
Iter 72/100 [==================================== ] 72% ETA 0s
Iter 73/100 [==================================== ] 73% ETA 0s
Iter 74/100 [===================================== ] 74% ETA 0s
Iter 75/100 [====================================== ] 75% ETA 0s
Iter 76/100 [====================================== ] 76% ETA 0s
Iter 77/100 [====================================== ] 77% ETA 0s
Iter 78/100 [======================================= ] 78% ETA 0s
Iter 79/100 [======================================== ] 79% ETA 0s
Iter 80/100 [======================================== ] 80% ETA 0s
Iter 81/100 [======================================== ] 81% ETA 0s
Iter 82/100 [========================================= ] 82% ETA 0s
Iter 83/100 [========================================== ] 83% ETA 0s
Iter 84/100 [========================================== ] 84% ETA 0s
Iter 85/100 [========================================== ] 85% ETA 0s
Iter 86/100 [=========================================== ] 86% ETA 0s
Iter 87/100 [============================================ ] 87% ETA 0s
Iter 88/100 [============================================ ] 88% ETA 0s
Iter 89/100 [============================================ ] 89% ETA 0s
Iter 90/100 [============================================= ] 90% ETA 0s
Iter 91/100 [============================================== ] 91% ETA 0s
Iter 92/100 [============================================== ] 92% ETA 0s
Iter 93/100 [============================================== ] 93% ETA 0s
Iter 94/100 [=============================================== ] 94% ETA 0s
Iter 95/100 [================================================ ] 95% ETA 0s
Iter 96/100 [================================================ ] 96% ETA 0s
Iter 97/100 [================================================ ] 97% ETA 0s
Iter 98/100 [================================================= ] 98% ETA 0s
Iter 99/100 [==================================================] 99% ETA 0s
Iter 100/100 [==================================================] 100% ETA 0s
y_test <- Surv(test$futime, test$fustat)
(ci_blm <- glmnet::Cindex(predict(fit_boost_lm, test), y_test)) # C-index
#> [1] 0.8888889