The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
The aim of this vignette is to show how to perform probabilistic sensitivity analyses (PSA) on survival data.
The main function to use is resample_surv()
within
define_psa()
.
The resample_surv()
function uses a random generator
with the parameters of the initially defined distribution. All you need
to do is specify the n
argument to define the number of
draws, and you can control variability in this way (the higher
n
is, the lower the variability). Under the hood, an
empirical cumulative function is created with these random draws and a
nonlinear model determining Least Squares estimates of the new
parameters is then fitted.
surv_dist <- define_surv_dist("gamma", shape = 2, rate = 0.1)
psa <- define_psa(surv_dist ~ resample_surv(n = 500))
You can display the distribution and its confidence interval using
the plot()
function. This is useful to check the expected
variability of your model.
A non-parametric bootstrap (random sampling) of the
data.frame
is performed. At each iteration of the PSA, a
new data.frame
is created and the model runs with this new
data. To perform a PSA with real data, resample_surv()
must
not contain any arguments.
fit_cov <- flexsurv::flexsurvreg(survival::Surv(rectime, censrec) ~ group,
data = bc,
dist = "exp")|>
define_surv_fit()
psa <- define_psa(fit_cov ~ resample_surv())
plot(fit_cov, times = 1:1000, psa = psa, Nrep = 10)
## No covariates provided, returning aggregate survival across all subjects.
It is possible to carry out a PSA with all objects of class
surv_object
, including complex objects, created using a
sequence of operations. Taking the previous vignette as an example:
fitcov_poor <- set_covariates(fit_cov, group = "Poor")
fitcov_medium <- set_covariates(fit_cov, group = "Medium")
fit_w <- flexsurvreg(
formula = Surv(futime, fustat) ~ 1,
data = ovarian, dist = "weibull"
) |>
define_surv_fit()
fit_cov |>
set_covariates(group = "Good") |>
apply_hr(hr = 2) |>
mix(
fitcov_medium,
weights = c(0.25, 0.75)
) |>
add_hazards(
fit_w
) |>
join(
fitcov_poor,
at = 500
) |>
plot(psa = psa, 1:1000, Nrep = 10)
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.