Generic function to round sample sizes in a group sequential design to integers.
This extends the gsDesign::toInteger() function from the gsDesign
package to work with gsNB objects.
Usage
toInteger(x, ...)
# S3 method for class 'gsDesign'
toInteger(x, ratio = x$ratio, roundUpFinal = TRUE, ...)
# S3 method for class 'gsNB'
toInteger(x, ratio = x$nb_design$inputs$ratio, roundUpFinal = TRUE, ...)Arguments
- x
An object of class
gsNBorgsDesign.- ...
Additional arguments passed to methods.
- ratio
Randomization ratio (n2/n1). If an integer is provided, rounding is done to a multiple of
ratio + 1. Ifratio < 1and1/ratiois an integer (e.g., 1:2 allocation, ratio = 0.5), rounding is done to a multiple of1/ratio + 1. Default uses the ratio from the original design.- roundUpFinal
If
TRUE(default), the final sample size is rounded up to ensure the target is met. IfFALSE, rounding is to the nearest integer.
Details
This function rounds sample sizes at each analysis to integers while maintaining the randomization ratio and ensuring monotonically increasing sample sizes across analyses. Only the final analysis sample size is rounded to an integer; interim sample sizes remain as expected (non-integer) values based on the information fraction.
When analysis_times were provided to gsNBCalendar(),
the statistical information (n.I) is recomputed at each analysis
time based on the new sample size and expected exposures.
Methods (by class)
toInteger(gsDesign): Method forgsDesignobjects (callsgsDesign::toInteger()).toInteger(gsNB): Method forgsNBobjects.Rounds sample sizes in a group sequential negative binomial design to integers, respecting the randomization ratio.
Examples
nb_ss <- sample_size_nbinom(
lambda1 = 0.5, lambda2 = 0.3, dispersion = 0.1, power = 0.9,
accrual_rate = 10, accrual_duration = 20, trial_duration = 24
)
gs_design <- gsNBCalendar(nb_ss, k = 3, analysis_times = c(12, 18, 24))
gs_integer <- toInteger(gs_design)