# goldilocks

The goal of `goldilocks`

is to implement the Goldilocks
Bayesian adaptive design proposed by Broglio et al. (2014) for
time-to-event endpoint trials, both one- and two-arm, with an underlying
piecewise exponential hazard model.

The method can be used for a confirmatory trial to select a trial’s
sample size based on accumulating data. During accrual, frequent sample
size selection analyses are made and predictive probabilities are used
to determine whether the current sample size is sufficient or whether
continuing accrual would be futile. The algorithm explicitly accounts
for complete follow-up of all patients before the primary analysis is
conducted. Final analysis tests include the log-rank test, Cox
proportional hazards regression Wald test, and a Bayesian test that
compares the absolute difference in cumulative incidence functions at a
fixed time point.

Broglio et al. (2014) refer to this as a *Goldilocks trial
design*, as it is constantly asking the question, “Is the sample
size too big, too small, or just right?”

## Key benefits

Other software and R packages are available to implement this
algorithm. However, when designing studies it is generally required that
many thousands of trials are simulated to adequately characterize the
operating characteristics, e.g. type I error and power. Hence, a
computationally efficient and fast algorithm is helpful. The
`goldilocks`

package takes advantage of many tools to achieve
this:

Log-rank tests are implemented via the `fastlogranktest`

package, which uses a lightweight C++ implementation

Piecewise exponential simulation is implemented via the `PWEALL`

package, which uses a lightweight Fortran implementation

Simulation of multiple trials can be performed in parallel using
the `pbmcapply`

package

## References

Broglio KR, Connor JT, Berry SM. Not too big, not too small: a
Goldilocks approach to sample size selection. *Journal of
Biopharmaceutical Statistics*, 2014; **24(3)**:
685–705.

## Installation

You can install the development version of `goldilocks`

GitHub with:

```
# install.packages("devtools")
devtools::install_github("graemeleehickey/goldilocks")
```