This package approaches simultaneous confidence bands for survival functions purely from an optimization perspective: given a certain coverage level, obtain bands such that the area between is minimized. This is achieved through an approximate solution based off local time arguments for both the survival and cumulative-hazard functions.


install.packages("devtools", repos="")

  survi,              # object of class 'survfit'
  conf.level = 0.95,  # confidence level
  fun = 'surv',       # time-to-event function ('surv' or 'cumhaz')
  tl = NA,            # truncation lower bound
  tu = NA,            # truncation upper bound
  samples = 1         # 1 or 2 sample case
  ) takes a survfit object from the survival package as input and returns a survfit object with confidence bands for the specified time-to-event function (e.g. the two-sample cumulative hazard difference function). Additional optional parameters include the confidence level 1 − α, optional upper or lower bounds for data truncation, and the number of samples to consider (1 or 2).

Please view the corresponding help files for more.


Obtain minimal-area confidence bands for bladder cancer data from the survival package:


## 1-sample case
dat <- bladder[bladder$enum==1,]
s <- survival::survfit(Surv(stop, event) ~ 1, type = "kaplan-meier", data = dat)
optband_s <-
plot(optband_s, xlab = "time", ylab = "KM curve", mark.time = FALSE)