Generate the 2 stages survival data under exponential or piecewise exponential distribution
expo_gen_2stages.RdThis function generate exponential dist survival data for 2 stages test.
The censoring distribution in interim period is different from the whole trail
If 'interim' is a number, it returns an (N * 5) array :
[arm, obs_time_int, event_int, obs_time_fin, event_fin]
If 'interim' is a list or c() meaning a series of interim timepoints,
the third dimension of result array return the survival result of ith interim (N * 5)
Arguments
- N
Number of patients
- dist
'exp' for exponential, 'pcw_exp' for piecewise exponential
- acc_time
Accrual time period with constant rate
- cen_time
Extra (minimum) censoring period after accrual period
- lambda
The parameter for exponential distribution
- HR1
For piecewise exponential only. The hazard ratio before change_time
- HR2
For piecewise exponential only. The hazard ratio after change_time
- arm
Group label(0,1)
- interim
Interim time point
- change_time
For piecewise exponential only. The time when hazard ratio changes from HR1 to HR2
Examples
set.seed(2024)
sim_size <- 5000
N <- 112
n <- ceiling(N / 2) # total sample size per arm
r <- 60
acc_time <- N / r
cen_time <- 1
lambda_H0 <- 0.9 * 1.5
lambda_H1 <- 0.9
int_step <- 4
int_factor <- seq(0.4, 0.7, by = int_step / N)
# Each time interim sample size increase by 4
interim_list <- int_factor * acc_time
# parameter interim can be a list
data_C <- expo_gen_2stages(N = n * sim_size, acc_time = acc_time, lambda = lambda_H0,
dist = 'exp', cen_time = cen_time, arm = 0, interim = interim_list)
# print(data_C[ , ,1])
# parameter interim is a number
data_C <- expo_gen_2stages(N = n * sim_size, acc_time = acc_time, lambda = lambda_H0,
dist = 'exp', cen_time = cen_time, arm = 0, interim = interim_list[1])
# print(data_C)