flexsurvreg. This is defined by
the integral of the transition probability matrix, though this is
not analytically possible and is computed by simulation.
totlos.simfs(x, trans, t=1, start=1, newdata=NULL, ci=FALSE, tvar="trans", tcovs=NULL, group=NULL, M=100000, B=1000, cl=0.95)flexsurvreg. See
msfit.flexsurvreg
for the required form of the model and the data. Additionally
this should be semi-Markov, so that the time variable represents
the time since the last transition. In other words the response should
be of the form Surv(time,status). See the package vignette for further
explanation. x can also be a list of models, with one component for each
permitted transition, as illustrated in
msfit.flexsurvreg.
msfit.flexsurvreg.msfit.flexsurvreg.
B and/or
M until the results reach the desired precision.
The simulation over M is generally vectorised, therefore
increasing B is usually more expensive than increasing M.
x is a list of models. sim.fmsm.group=c(1,1,2,2), then
totlos.simfs returns the expected total time in
states 1 and 2 combined, and states 3 and 4 combined.group) up to time t, and corresponding confidence
intervals if requested.
M
using the maximum likelihood estimates of the fitted model and the
function sim.fmsm. Therefore this requires a random sampling
function for the parametric survival model to be available: see the
"Details" section of sim.fmsm. This will be available
for all built-in distributions, though users may need to write this
for custom models. Note the random sampling method for flexsurvspline models is
currently very inefficient, so that looping over M will be very
slow.
The equivalent function for time-inhomogeneous Markov models is
totlos.fs. Note neither of these functions give errors
or warnings if used with the wrong type of model, but the results will
be invalid.
pmatrix.simfs,sim.fmsm,msfit.flexsurvreg.
# BOS example in vignette, and in msfit.flexsurvreg
bexp <- flexsurvreg(Surv(years, status) ~ trans, data=bosms3, dist="exp")
tmat <- rbind(c(NA,1,2),c(NA,NA,3),c(NA,NA,NA))
# predict 4 years spent without BOS, 3 years with BOS, before death
# As t increases, this should converge
totlos.simfs(bexp, t=10, trans=tmat)
totlos.simfs(bexp, t=1000, trans=tmat)
Run the code above in your browser using DataLab