sim_fixed_n | R Documentation |
sim_fixed_n()
provide simulations of a single endpoint two-arm trial
where the enrollment, hazard ratio, and failure and dropout rates change over time.
sim_fixed_n(
nsim = 1000,
sampleSize = 500,
target_event = 350,
strata = tibble(Stratum = "All", p = 1),
enroll_rate = tibble(duration = c(2, 2, 10), rate = c(3, 6, 9)),
fail_rate = tibble(Stratum = "All", duration = c(3, 100), fail_rate = log(2)/c(9, 18),
hr = c(0.9, 0.6), dropoutRate = rep(0.001, 2)),
totalDuration = 30,
block = rep(c("Experimental", "Control"), 2),
timingType = 1:5,
rg = tibble(rho = 0, gamma = 0),
seed = NULL
)
nsim |
Number of simulations to perform. |
sampleSize |
Total sample size per simulation. |
target_event |
Targeted event count for analysis. |
strata |
A tibble with strata specified in |
enroll_rate |
Piecewise constant enrollment rates by time period.
Note that these are overall population enrollment rates and the |
fail_rate |
Piecewise constant control group failure rates, hazard ratio for experimental vs control, and dropout rates by stratum and time period. |
totalDuration |
Total follow-up from start of enrollment to data cutoff. |
block |
As in |
timingType |
A numeric vector determining data cutoffs used; see details. Default is to include all available cutoff methods. |
rg |
As in |
seed |
Optional. Initial seed for simulations |
timingType
has up to 5 elements indicating different options for data cutoff.
1 uses the planned study duration, 2 the time the targeted event count is achieved,
3 the planned minimum follow-up after enrollment is complete,
4 the maximum of planned study duration and targeted event count cuts (1 and 2),
5 the maximum of targeted event count and minimum follow-up cuts (2 and 3).
A tibble
including columns Events
(event count), lnhr
(log-hazard ratio),
Z
(normal test statistic; < 0 favors experimental) cut (text describing cutoff used),
Duration
(duration of trial at cutoff for analysis) and sim
(sequential simulation id).
One row per simulated dataset per cutoff specified in timingType
, per test statistic specified.
If multiple Fleming-Harrington tests are specified in rg
, then columns rho,gamma
are also included.
library(tidyr)
library(dplyr)
library(doParallel)
library(tibble)
# example 1
# Show output structure
sim_fixed_n(nsim = 3)
# example 2
# Example with 2 tests: logrank and FH(0,1)
sim_fixed_n(nsim = 1,rg = tibble(rho = 0, gamma = c(0, 1)))
# example 3
# Power by test
# Only use cuts for events, events + min follow-up
xx <- sim_fixed_n(nsim = 100,
timingType = c(2, 5),
rg = tibble(rho = 0, gamma = c(0, 1)))
# Get power approximation for FH, data cutoff combination
xx %>%
group_by(cut, rho, gamma) %>%
summarise(mean(Z <= qnorm(.025)))
# MaxCombo power estimate for cutoff at max of targeted events, minimum follow-up
p <- xx %>%
filter(cut != "Targeted events") %>%
group_by(Sim) %>%
group_map(pvalue_maxcombo) %>%
unlist()
mean(p < .025)
# MaxCombo estimate for targeted events cutoff
p <- xx %>%
filter(cut == "Targeted events") %>%
group_by(Sim) %>%
group_map(pvalue_maxcombo) %>%
unlist()
mean(p < .025)
# example 3
# Use two cores
registerDoParallel(2)
sim_fixed_n(nsim = 10, seed = 2022)
stopImplicitCluster()
registerDoSEQ()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.