Skip to contents

A function to return bootstrap samples from the fitted dose-response models. Samples from the posterior distribution are drawn (via the RBesT function rmix()) and for every sample the simplified fitting step (see getModelFits() function) and a prediction is performed. These samples are returned by this function. This approach can be considered as the Bayesian equivalent of the frequentist bootstrap approach described in O'Quigley et al. (2017). Instead of drawing n bootstrap samples from the sampling distribution of the trial dose-response estimates, here the samples are directly taken from the posterior distribution.

Usage

getBootstrapSamples(model_fits, n_samples = 1000, doses = NULL)

Arguments

model_fits

An object of class modelFits, i.e. information about fitted models & corresponding model coefficients as well as the posterior distribution that was the basis for the model fitting

n_samples

Number of samples that should be drawn

doses

A vector of doses for which a prediction should be performed

Value

A data frame with entries model, dose, and sample

References

O'Quigley J, Iasonos A, Bornkamp B. 2017. Handbook of Methods for Designing, Monitoring, and Analyzing Dose-Finding Trials (1st ed.). Chapman and Hall/CRC. doi:10.1201/9781315151984

Examples

posterior_list <- list(Ctrl = RBesT::mixnorm(comp1 = c(w = 1, m = 0, s = 1), sigma = 2),
                       DG_1 = RBesT::mixnorm(comp1 = c(w = 1, m = 3, s = 1.2), sigma = 2),
                       DG_2 = RBesT::mixnorm(comp1 = c(w = 1, m = 4, s = 1.5), sigma = 2) ,  
                       DG_3 = RBesT::mixnorm(comp1 = c(w = 1, m = 6, s = 1.2), sigma = 2) ,
                       DG_4 = RBesT::mixnorm(comp1 = c(w = 1, m = 6.5, s = 1.1), sigma = 2))
models         <- c("exponential", "linear")
dose_levels    <- c(0, 1, 2, 4, 8)
model_fits     <- getModelFits(models      = models,
                               posterior   = posterior_list,
                               dose_levels = dose_levels,
                               simple      = TRUE)
                           
bs_samples <- getBootstrapSamples(model_fits = model_fits,
                                  n_samples  = 10, # speeding up example run time
                                  doses      = c(0, 6, 8))
                      
bs_samples
#> # A tibble: 90 × 3
#>    models      doses sample
#>    <chr>       <dbl>  <dbl>
#>  1 exponential     0  1.15 
#>  2 linear          0  0.923
#>  3 avgFit          0  0.923
#>  4 exponential     6  5.85 
#>  5 linear          6  6.11 
#>  6 avgFit          6  6.11 
#>  7 exponential     8  7.84 
#>  8 linear          8  7.83 
#>  9 avgFit          8  7.83 
#> 10 exponential     0  2.93 
#> # ℹ 80 more rows