Zachary R. McCaw
Updated: 2024-08-04
knitr::opts_chunk$set(cache = FALSE, fig.align = "center")
suppressPackageStartupMessages({ library(dplyr) library(SurvUtils) })
devtools::install_github(repo = "zrmacc/SurvUtils")
Generates survival data with exponential event times and censoring. Optionally, the subject-specific event rate may depend on a set of covariates and/or a gamma-frailty.
data <- SurvUtils::GenData( base_event_rate = 1.0, censoring_rate = 0.25, n = 100, tau = 4.0 ) head(data)
km_tab <- SurvUtils::TabulateKM(data) head(km_tab)
# Rate. SurvUtils::OneSampleRates(data, tau = 1.0)
# Percentile: median. SurvUtils::OneSamplePercentiles(data, p = 0.5)
# RMST. SurvUtils::OneSampleRMST(data, tau = 1.0)
data0 <- SurvUtils::GenData( base_event_rate = 1.0, censoring_rate = 0.25, n = 100, tau = 4.0 ) data0$arm <- 0 data1 <- SurvUtils::GenData( base_event_rate = 0.5, censoring_rate = 0.25, n = 100, tau = 4.0 ) data1$arm <- 1 data <- rbind(data0, data1)
SurvUtils::CompareRates(data, tau = 1.0)
SurvUtils::CompareRMSTs(data, tau = 1.0)
Compare the predictive performance of Cox models based on different sets of covariates with respect to their c-statistics on held-out data via k-fold cross validation.
# Simulate data. n <- 1000 x1 <- rnorm(n) x2 <- rnorm(n) data <- SurvUtils::GenData( covariates = cbind(x1, x2), beta_event = c(1.0, -1.0), simple = FALSE ) # Evaluate. eval <- CompreCoxCstat( status = data$status, time = data$time, x1 = data %>% dplyr::select(x1, x2), x2 = data %>% dplyr::select(x1) ) head(round(eval, digits = 3))
For a tutorial on influence functions and the perturbation bootstrap, see this vignette.
# Generate data. arm1 <- SurvUtils::GenData(base_event_rate = 0.8) arm1$arm <- 1 arm0 <- SurvUtils::GenData(base_event_rate = 1.0) arm0$arm <- 0 data <- rbind(arm1, arm0)
x_breaks <- seq(from = 0.0, to = 4.0, by = 0.50) data0 <- data %>% dplyr::filter(arm == 0) fit0 <- Temporal::FitParaSurv(data0) # Optional parametric fit. q_km <- SurvUtils::PlotOneSampleKM(data0, fit = fit0, x_breaks = x_breaks, x_max = 4) q_nar <- SurvUtils::PlotOneSampleNARs(data0, x_breaks = x_breaks, x_max = 4) cowplot::plot_grid( plotlist = list(q_km, q_nar), align = "v", axis = "l", ncol = 1, rel_heights = c(3, 1) )
x_breaks <- seq(from = 0.0, to = 4.0, by = 0.50) data0 <- data %>% dplyr::filter(arm == 0) q_auc <- SurvUtils::PlotOneSampleAUC(data0, x_breaks = x_breaks, x_max = 4, tau = 3) q_nar <- SurvUtils::PlotOneSampleNARs(data0, x_breaks = x_breaks, x_max = 4) cowplot::plot_grid( plotlist = list(q_auc, q_nar), align = "v", axis = "l", ncol = 1, rel_heights = c(3, 1) )
x_breaks <- seq(from = 0.0, to = 4.0, by = 0.50) contrast <- Temporal::CompParaSurv(data) # Optional parametric fit. q_km <- SurvUtils::PlotTwoSampleKM(data, contrast = contrast, x_breaks = x_breaks, x_max = 4) q_nar <- SurvUtils::PlotTwoSampleNARs(data, x_breaks = x_breaks, x_max = 4) cowplot::plot_grid( plotlist = list(q_km, q_nar), align = "v", axis = "l", ncol = 1, rel_heights = c(3, 1) )
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.