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="http://cran.rstudio.com/")
library(devtools)
::install_github("seasamgo/optband")
devtoolslibrary(optband)
```

```
opt.ci(
# object of class 'survfit'
survi, 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
)
```

`opt.ci`

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:

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