bootci.fmsm: Bootstrap confidence intervals for flexsurv output functions

View source: R/mstate.R

bootci.fmsmR Documentation

Bootstrap confidence intervals for flexsurv output functions

Description

Calculate a confidence interval for a model output by repeatedly replacing the parameters in a fitted model object with a draw from the multivariate normal distribution of the maximum likelihood estimates, then recalculating the output function.

Usage

bootci.fmsm(
  x,
  B,
  fn,
  cl = 0.95,
  attrs = NULL,
  cores = NULL,
  sample = FALSE,
  ...
)

Arguments

x

Output from flexsurvreg or flexsurvspline, representing a fitted survival model object. Or a list of such objects, defining a multi-state model.

B

Number of parameter draws to use

fn

Function to bootstrap the results of. It must have an argument named x giving a fitted flexsurv model object. This may return a value with any format, e.g. list, matrix or vector, as long as it can be converted to a numeric vector with unlist. See the example below.

cl

Width of symmetric confidence interval, by default 0.95

attrs

Any attributes of the value returned from fn which we want confidence intervals for. These will be unlisted, if possible, and appended to the result vector.

cores

Number of cores to use for parallel processing.

sample

If TRUE then the bootstrap sample itself is returned. If FALSE then the quantiles of the sample are returned giving a confidence interval.

...

Additional arguments to pass to fn.

Value

A matrix with two rows, giving the upper and lower confidence limits respectively. Each row is a vector of the same length as the unlisted result of the function corresponding to fncall.

Examples


## How to use bootci.fmsm

## Write a function with one argument called x giving a fitted model,
## and returning some results of the model.  The results may be in any form.   

tmat <- rbind(c(NA,1,2),c(NA,NA,3),c(NA,NA,NA))
bexp <- flexsurvreg(Surv(Tstart, Tstop, status) ~ trans, data=bosms3, dist="exp")

summfn <- function(x, t){
 resp <-  flexsurv::pmatrix.fs(x, trans=tmat, t=t)
 rest <- flexsurv::totlos.fs(x, trans=tmat, t=t)
 list(resp, rest)
}

## Use bootci.fmsm to obtain the confidence interval
## The matrix columns are in the order of the unlisted results of the original
## summfn.  You will have to rearrange them into the format that you want.
## If summfn has any extra arguments, in this case \code{t}, make sure they are
## passed through via the ... argument to bootci.fmsm

bootci.fmsm(bexp, B=3, fn=summfn, t=10)
bootci.fmsm(bexp, B=3, fn=summfn, t=5)


flexsurv documentation built on Sept. 12, 2024, 7:23 a.m.