Skip to contents

Bootstrap input dataset and rerun the model to get confidence bounds and aggregated parameters

Usage

bootstrapFit(
  fit,
  nboot = 200,
  nSampIndiv,
  stratVar,
  stdErrType = c("perc", "se"),
  ci = 0.95,
  pvalues = NULL,
  restart = FALSE,
  plotHist = FALSE,
  fitName = as.character(substitute(fit))
)

Arguments

fit

the nlmixr2 fit object

nboot

an integer giving the number of bootstrapped models to be fit; default value is 200

nSampIndiv

an integer specifying the number of samples in each bootstrapped sample; default is the number of unique subjects in the original dataset

stratVar

Variable in the original dataset to stratify on; This is useful to distinguish between sparse and full sampling and other features you may wish to keep distinct in your bootstrap

stdErrType

This gives the standard error type for the updated standard errors; The current possibilities are: "perc" which gives the standard errors by percentiles (default) or "se" which gives the standard errors by the traditional formula.

ci

Confidence interval level to calculate. Default is 0.95 for a 95 percent confidence interval

pvalues

a vector of pvalues indicating the probability of each subject to get selected; default value is NULL implying that probability of each subject is the same

restart

A boolean to try to restart an interrupted or incomplete boostrap. By default this is FALSE

plotHist

A boolean indicating if a histogram plot to assess how well the bootstrap is doing. By default this is turned off (FALSE)

fitName

is the fit name that is used for the name of the boostrap files. By default it is the fit provided though it could be something else.

Value

Nothing, called for the side effects; The original fit is updated with the bootstrap confidence bands

Author

Vipul Mann, Matthew Fidler

Examples

# \donttest{

one.cmt <- function() {
  ini({
    ## You may label each parameter with a comment
    tka <- 0.45 # Log Ka
    tcl <- 1 # Log Cl
    ## This works with interactive models
    ## You may also label the preceding line with label("label text")
    tv <- 3.45
    label("log V")
    ## the label("Label name") works with all models
    eta.ka ~ 0.6
    eta.cl ~ 0.3
    eta.v ~ 0.1
    add.sd <- 0.7
  })
  model({
    ka <- exp(tka + eta.ka)
    cl <- exp(tcl + eta.cl)
    v <- exp(tv + eta.v)
    linCmt() ~ add(add.sd)
  })
}

fit <- nlmixr2(one.cmt, nlmixr2data::theo_sd, "focei")
#> Error: '.nlmixr2objectNameAssign' is not an exported object from 'namespace:nlmixr2est'

withr::with_tempdir({ # Run example in temp dir

bootstrapFit(fit, nboot = 5, restart = TRUE) # overwrites any of the existing data or model files
bootstrapFit(fit, nboot = 7) # resumes fitting using the stored data and model files

# Note this resumes because the total number of bootstrap samples is not 50

bootstrapFit(fit, nboot=50)

# Note the boostrap standard error and variance/covariance matrix is retained.
# If you wish to switch back you can change the covariance matrix by

nlmixr2est::setCov(fit,"r,s")

# And change it back again

nlmixr2est::setCov(fit,"boot50")

# This change will affect any simulations with uncertainty in their parameters

# You may also do a chi-square diagnostic plot check for the bootstrap with

bootplot(fit)

})
#> Error in nlmixr2extra::bootstrapFit(fit = fit, nboot = nboot, nSampIndiv = nSampIndiv,     stratVar = stratVar, stdErrType = stdErrType, ci = ci, pvalues = pvalues,     restart = restart, plotHist = plotHist, fitName = fitName): object 'fit' not found

# }