## ----veteran_data_prep, echo=FALSE-------------------------------------------- vet <- veteran %>% mutate( arm = ifelse(trt == 1, 0, 1), status = status ) head(vet) ## ----veteran_power_calc------------------------------------------------------- power_results_vet <- vignette_cache("veteran_power_calc", { rmst.power( Surv(time, status) ~ karno, data = vet, arm = "arm", sample_sizes = c(100, 150, 200, 250), L = 270 ) }) ## ----veteran_table_plot, echo=FALSE------------------------------------------- kbl(power_results_vet$results_data , caption = "Power Analysis for Veteran Dataset") %>% kable_styling(bootstrap_options = "striped", full_width = FALSE, position = "center") ## ----veteran_ss_calc---------------------------------------------------------- ss_results_vet <- vignette_cache("veteran_ss_calc", { rmst.ss( Surv(time, status) ~ karno, data = vet, arm = "arm", target_power = 0.40, L = 365, n_start = 1000, n_step = 250, max_n = 5000 ) }) ## ----veteran_ss_table, echo=FALSE--------------------------------------------- kbl(ss_results_vet$results_summary, caption = "Estimated Effect from Reference Data") %>% kable_styling(bootstrap_options = "striped", full_width = FALSE, position = "center") ss_results_vet$results_plot + theme_bw(base_size = 14) ## ----linear_boot_example------------------------------------------------------ power_boot_vet <- vignette_cache("linear_boot_example", { rmst.power( Surv(time, status) ~ karno, data = vet, arm = "arm", sample_sizes = c(150, 200, 250), L = 365, type = "boot", n_sim = 50 ) }) ## ----echo=FALSE--------------------------------------------------------------- power_boot_vet$results_plot ## ----------------------------------------------------------------------------- ss_boot_vet <- vignette_cache("linear_boot_ss_example", { rmst.ss( Surv(time, status) ~ karno, data = vet, arm = "arm", target_power = 0.5, L = 180, type = "boot", n_sim = 100, patience = 5 ) }) ## ----echo=FALSE--------------------------------------------------------------- ss_boot_vet$results_plot + theme_bw(base_size = 14) ## ----colon_data_prep, echo=FALSE---------------------------------------------- colon_death <- colon %>% filter(etype == 2) %>% select(time, status, rx, extent) %>% na.omit() %>% mutate( arm = ifelse(rx == "Obs", 0, 1), status = status, strata = factor(extent) ) head(colon_death) ## ----colon_ss_calc------------------------------------------------------------ ss_results_colon <- vignette_cache("colon_ss_calc", { rmst.ss( Surv(time, status) ~ 1, data = colon_death, arm = "arm", strata = "strata", strata_type = "additive", target_power = 0.60, L = 1825, n_start = 100, n_step = 100, max_n = 10000 ) }) ## ----colon_ss_table, echo=FALSE----------------------------------------------- kbl(ss_results_colon$results_summary , caption = "Estimated Effect from Reference Data") %>% kable_styling(bootstrap_options = "striped", full_width = FALSE, position = "center") final_n_colon <- ss_results_colon$results_data$Required_N_per_Stratum power_at_final_n_colon <- ss_results_colon$results_plot$data %>% filter(N_per_Stratum == final_n_colon) %>% pull(Power) ss_results_colon$results_plot ## ----additive_power_calc------------------------------------------------------ power_results_colon <- vignette_cache("additive_power_calc", { rmst.power( Surv(time, status) ~ 1, data = colon_death, arm = "arm", strata = "strata", strata_type = "additive", sample_sizes = c(1000, 3000, 5000), L = 1825 ) }) ## ----additive_power_table_plot, echo=FALSE------------------------------------ kbl(power_results_colon$results_data, caption = "Power for Additive Stratified Colon Trial") %>% kable_styling(bootstrap_options = "striped", full_width = FALSE, position = "center") power_results_colon$results_plot + geom_hline(yintercept = 0.8, linetype = "dashed", color = "red") + labs(title = "Power Curve for Additive Stratified Model") + theme_bw(base_size = 14) ## ----ms_power_analytical_example---------------------------------------------- power_ms_analytical <- vignette_cache("ms_power_analytical_example", { rmst.power( Surv(time, status) ~ 1, data = colon_death, arm = "arm", strata = "strata", strata_type = "multiplicative", sample_sizes = c(300, 400, 500), L = 1825 ) }) ## ----echo=FALSE--------------------------------------------------------------- kbl(power_ms_analytical$results_data, caption = "Power for Multiplicative Stratified Model") %>% kable_styling(bootstrap_options = "striped", full_width = FALSE, position = "center") ## ----ms_ss_analytical_example------------------------------------------------- ms_ss_results_colon <- vignette_cache("ms_ss_analytical_example", { rmst.ss( Surv(time, status) ~ 1, data = colon_death, arm = "arm", strata = "strata", strata_type = "multiplicative", target_power = 0.6, L = 1825 ) }) ## ----echo=FALSE--------------------------------------------------------------- kbl(ms_ss_results_colon$results_summary, caption = "Sample Size for Multiplicative Stratified Model") %>% kable_styling(bootstrap_options = "striped", full_width = FALSE, position = "center") ms_ss_results_colon$results_plot + theme_bw(base_size = 14) ## ----ms_power_boot_example---------------------------------------------------- power_ms_boot <- vignette_cache("ms_power_boot_example", { rmst.power( Surv(time, status) ~ 1, data = colon_death, arm = "arm", strata = "strata", strata_type = "multiplicative", sample_sizes = c(100, 300, 500), L = 1825, type = "boot", n_sim = 30, parallel.cores = 1 ) }) ## ----echo=FALSE--------------------------------------------------------------- kbl(power_ms_boot$results_summary, caption = "Power for Multiplicative Stratified Model (Bootstrap)") %>% kable_styling(bootstrap_options = "striped", full_width = FALSE, position = "center") power_ms_boot$results_plot ## ----ms_ss_boot_example------------------------------------------------------- ss_ms_boot <- vignette_cache("ms_ss_boot_example", { rmst.ss( Surv(time, status) ~ 1, data = colon_death, arm = "arm", strata = "strata", strata_type = "multiplicative", target_power = 0.75, L = 1825, type = "boot", n_sim = 30, n_start = 100, n_step = 50, patience = 4, parallel.cores = 1 ) }) ## ----echo=FALSE--------------------------------------------------------------- kbl(ss_ms_boot$results_summary, caption = "Sample Size for Multiplicative Stratified Model (Bootstrap)") %>% kable_styling(bootstrap_options = "striped", full_width = FALSE, position = "center") ## ----gbsg_data_prep, echo=FALSE----------------------------------------------- gbsg_prepared <- gbsg %>% mutate( arm = ifelse(hormon == "no", 0, 1) ) head(gbsg_prepared) ## ----gbsg_power_calc---------------------------------------------------------- power_gam <- vignette_cache("gbsg_power_calc", { rmst.power( Surv(rfstime, status) ~ s(pgr), data = gbsg_prepared, arm = "arm", sample_sizes = c(50, 200, 400), L = 2825, n_sim = 50, parallel.cores = 1 ) }) print(power_gam$results_plot) ## ----------------------------------------------------------------------------- ss_gam <- vignette_cache("gbsg_ss_calc", { rmst.ss( Surv(rfstime, status) ~ s(pgr), data = gbsg_prepared, arm = "arm", target_power = 0.95, L = 182, n_sim = 50, patience = 5, parallel.cores = 1 ) }) ## ----echo=FALSE--------------------------------------------------------------- ss_gam$results_plot + theme_bw(base_size = 14) ## ----mgus2_data_prep, echo=FALSE---------------------------------------------- mgus_prepared <- mgus2 %>% mutate( status = ifelse(pstat == 1, 1, 0), # 1 = event, 0 = censored arm = ifelse(sex == "M", 1, 0) # treatment indicator ) %>% rename(time = futime) head(mgus_prepared) ## ----dc_power_calc------------------------------------------------------------ dc_power_results <- vignette_cache("dc_power_calc", { rmst.power( Surv(time, status) ~ age, data = mgus_prepared, arm = "arm", sample_sizes = c(100, 250, 500), L = 120, dep_cens = TRUE, alpha = 0.05 ) }) ## ----echo=FALSE--------------------------------------------------------------- kbl(dc_power_results$results_summary, caption = "Analytic Power Analysis under Covariate-Dependent Censoring") %>% kable_styling(bootstrap_options = "striped", full_width = FALSE, position = "center") dc_power_results$results_plot ## ----mgus2_ss_calc------------------------------------------------------------ ss_dc_mgus <- vignette_cache("mgus2_ss_calc", { rmst.ss( Surv(time, status) ~ age, data = mgus_prepared, arm = "arm", target_power = 0.80, L = 120, dep_cens = TRUE, alpha = 0.05, n_start = 100, n_step = 50, max_n = 5000 ) }) ## ----mgus2_table, echo=FALSE-------------------------------------------------- kbl(ss_dc_mgus$results_summary, caption = "Estimated RMST Difference from Reference Data") %>% kable_styling(bootstrap_options = "striped", full_width = FALSE, position = "center") ss_dc_mgus$results_plot + theme_bw(base_size = 14) ## ----eval=FALSE--------------------------------------------------------------- # RMSTpowerBoost::run_app()