Nothing
## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ----packages, message=FALSE--------------------------------------------------
library("boot")
library("ggsci")
library("psm3mkv")
library("purrr")
## ----dataset------------------------------------------------------------------
# Create and review the dummy dataset
bosonc <- create_dummydata("flexbosms")
head(bosonc)
summary(bosonc)
## ----fit_ends_mods_par--------------------------------------------------------
# Create a vector of distributions of interest (flexsurv notation)
alldists <- c("exp", "weibullPH", "llogis", "lnorm", "gamma", "gompertz", "gengamma")
# Fit all distributions to all endpoints (except gengamma to PPD and TTP)
allfits_par <- fit_ends_mods_par(
bosonc,
cuttime = 0,
ppd.dist = alldists[1:6],
ttp.dist = alldists[1:6],
pfs.dist = alldists,
os.dist = alldists,
pps_cf.dist = alldists,
pps_cr.dist = alldists
)
# Example 1 - PFS endpoint, distribution 2 (weibullPH)
allfits_par$pfs[[2]]$result
# Example 2 - Parameter values for PPS-CF and PPS-CR endpoints for distribution 3 (llogis)
allfits_par$pps_cf[[3]]$result$res
allfits_par$pps_cr[[3]]$result$res
## ----find_bestfit_par---------------------------------------------------------
# Pick out best distribution according to min AIC
fitpar.ppd <- find_bestfit(allfits_par$ppd, "aic")
fitpar.ttp <- find_bestfit(allfits_par$ttp, "aic")
fitpar.pfs <- find_bestfit(allfits_par$pfs, "aic")
fitpar.os <- find_bestfit(allfits_par$os, "aic")
fitpar.pps_cf <- find_bestfit(allfits_par$pps_cf, "aic")
fitpar.pps_cr <- find_bestfit(allfits_par$pps_cr, "aic")
# Inspect the selection for PFS
fitpar.pfs
## ----fit_ends_mods_spl--------------------------------------------------------
# Fit 1-3 knot splines with all 3 scales (odds, hazard, normal) to each endpoint
allfits_spl <- fit_ends_mods_spl(bosonc)
# Example - PFS endpoint - 1 knot, odds scale
allfits_spl$pfs[[2]]$result
allfits_spl$pfs[[2]]$result$aux$scale # Scale
allfits_spl$pfs[[2]]$result$aux$knots # Knot locations (log time)
## ----find_bestfit-------------------------------------------------------------
# Pick out best distribution according to min AIC
fitspl.ppd <- find_bestfit(allfits_spl$ppd, "aic")
fitspl.ttp <- find_bestfit(allfits_spl$ttp, "aic")
fitspl.pfs <- find_bestfit(allfits_spl$pfs, "aic")
fitspl.os <- find_bestfit(allfits_spl$os, "aic")
fitspl.pps_cf <- find_bestfit(allfits_spl$pps_cf, "aic")
fitspl.pps_cr <- find_bestfit(allfits_spl$pps_cr, "aic")
# Inspect the selection for PFS
fitspl.pfs
## ----bring_together_fits------------------------------------------------------
# Bring together our preferred fits for each endpoint in a list
params <- list(
ppd = fitpar.ppd$fit,
ttp = fitpar.ttp$fit,
pfs = fitspl.pfs$fit,
os = fitspl.os$fit,
pps_cf = allfits_par$pps_cf[[2]]$result,
pps_cr = allfits_spl$pps_cr[[2]]$result
)
## ----count_params-------------------------------------------------------------
# Pull out number of parameters used for each endpoint
count_npar <- map_vec(1:6, ~ params[[.x]]$npars)
# PSM uses PFS (3) and OS (4) endpoints
sum(count_npar[c(3, 4)])
# STM_CF uses PPD (1), TTP (2) and PPS_CF (5) endpoints
sum(count_npar[c(1, 2, 5)])
# STM_CR uses PPD (1), TTP (2) and PPS_CR (6) endpoints
sum(count_npar[c(1, 2, 6)])
## ----calc_likes---------------------------------------------------------------
ll_all <- calc_likes(bosonc, params)
ll_all
## ----calc_allrmds-------------------------------------------------------------
# Call the RMD functions
rmd_all <- calc_allrmds(bosonc, dpam = params)
# Then review the mean duration in PF, PD and total alive (OS)
rmd_all$results
## ----boot---------------------------------------------------------------------
# Bootstrap to calculate SE over 10 bootstrap samples
boot::boot(
data = bosonc,
statistic = calc_allrmds,
R = 10, # Number of samples
cuttime = 0,
Ty = 10,
dpam = params,
boot = TRUE
)
## ----graph_gen----------------------------------------------------------------
# Generate graphs (can take time)
ptdgraphs <- graph_survs(bosonc, params)
## ----graph_pf-----------------------------------------------------------------
# State membership probabilities for PF state
ptdgraphs$graph$pf + scale_color_npg()
## ----graph_pd-----------------------------------------------------------------
# State membership probabilities for PD state
ptdgraphs$graph$pd + scale_color_npg()
## ----graph_os-----------------------------------------------------------------
# State membership probabilities for OS
ptdgraphs$graph$os + scale_color_npg()
## ----graph_pps----------------------------------------------------------------
# Probabilities of PPS
ptdgraphs$graph$pps + scale_color_npg()
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.