## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

## -----------------------------------------------------------------------------
library(nbsurv)
library(survival)

lung <- stats::na.omit(lung)
lung$status <- as.integer(lung$status == 2)

fit <- nbsurv(
  Surv(time, status) ~ age + sex + ph.ecog,
  data = lung
)

fit

## -----------------------------------------------------------------------------
times <- c(100, 200, 400, 800)

surv_pred <- predict(
  fit,
  newdata = lung[1:5, ],
  times = times
)

event_pred <- predict(
  fit,
  newdata = lung[1:5, ],
  times = times,
  type = "event"
)

surv_pred
event_pred

## -----------------------------------------------------------------------------
metrics <- evaluate_nbsurv(
  fit,
  newdata = lung,
  times = times
)

metrics

## -----------------------------------------------------------------------------
cv_fit <- cv_nbsurv(
  Surv(time, status) ~ age + sex + ph.ecog,
  data = lung,
  folds = 3,
  times = times,
  seed = 1
)

cv_fit$summary

## -----------------------------------------------------------------------------
grid <- data.frame(
  scale = c(TRUE, FALSE),
  laplace = c(1, 2),
  min_sd = c(0.05, 0.10)
)
grid$time_grid <- I(list(NULL, NULL))

tuned <- tune_nbsurv(
  Surv(time, status) ~ age + sex + ph.ecog,
  data = lung,
  param_grid = grid,
  folds = 3,
  times = c(100, 200, 400),
  seed = 1
)

tuned$results
tuned$best_params

## -----------------------------------------------------------------------------
plot(fit, times = c(100, 200, 400), n_curves = 3)

