Title: | Generalized Two Arms Clinical Trial Sample Size Calculation |
Version: | 0.0.5 |
Description: | Two arms clinical trials required sample size is calculated in the comprehensive parametric context. The calculation is based on the type of endpoints(continuous/binary/time-to-event/ordinal), design (parallel/crossover), hypothesis tests (equality/noninferiority/superiority/equivalence), trial arms noncompliance rates and expected loss of follow-up. Methods are described in: Chow SC, Shao J, Wang H, Lokhnygina Y (2017) <doi:10.1201/9781315183084>, Wittes, J (2002) <doi:10.1093/epirev/24.1.39>, Sato, T (2000) <doi:10.1002/1097-0258(20001015)19:19%3C2689::aid-sim555%3E3.0.co;2-0>, Lachin J M, Foulkes, M A (1986) <doi:10.2307/2531201>, Whitehead J(1993) <doi:10.1002/sim.4780122404>, Julious SA (2023) <doi:10.1201/9780429503658>. |
License: | GPL-3 |
Encoding: | UTF-8 |
RoxygenNote: | 7.2.3 |
Imports: | TrialSize, dplyr, Hmisc |
Suggests: | knitr, rmarkdown |
VignetteBuilder: | knitr |
NeedsCompilation: | no |
Packaged: | 2024-03-16 04:16:43 UTC; chelhee.lee |
Author: | Mohsen Soltanifar |
Maintainer: | Chel Hee Lee <chelhee.lee@ucalgary.ca> |
Repository: | CRAN |
Date/Publication: | 2024-03-16 05:20:08 UTC |
General Formulas for Sample Size Calculation
Description
This function computes the sample size required for two arms clinical trials with continuous outcome measure. Four hypothesis tests are available under two allocation designs.
Usage
getSizeMean(
design = c("parallel", "crossover"),
test = c("equality", "noninferiority", "superiority", "equivalence"),
alpha = 0.05,
beta = 0.2,
sigma,
k = 1,
delta = 0,
TTE,
rho = c(0.05, 0.07),
r = 0.1
)
Arguments
design |
allocation method ( |
test |
four hypothesis tests: |
alpha |
level of significance. |
beta |
type II error. |
sigma |
pooled standard deviation of two groups. |
k |
ratio of control to treatment. |
delta |
delta margin in test hypothesis. |
TTE |
target treatment effect or effect size. |
rho |
vector of length 2, positive noncompliance rates of two arms. |
r |
projected proportion of trial uniform loss of follow-up. |
Value
sample size per arm.
Examples
# Ex 1. (n_trt=91, n_ctl=91)
getSizeMean(design="parallel", test="equality", alpha=0.05, beta=0.20,
sigma=0.10, k=1, delta=0, TTE=0.05, rho=c(0.05, 0.07), r=0.1)
getSizeMean(design="parallel", test="noninferiority", alpha=0.05,
beta=0.20, sigma=0.10, k=1, delta=-0.05, TTE=0, rho=c(0.05, 0.07), r=0.1)
# Ex 3. (n_trt=1022, n_ctl=1022)
getSizeMean(design="parallel", test="superiority", alpha=0.05, beta=0.20,
sigma=0.10, k=1, delta=0.05, TTE=0.07, rho=c(0.05, 0.07), r=0.1)
# Ex 4. (n_trt=113, n_ctl=113)
getSizeMean(design="parallel", test="equivalence", alpha=0.05, beta=0.20,
sigma=0.10, k=1, delta=0.05, TTE=0.01, rho=c(0.05, 0.07), r=0.1)
# Ex 5. (n_trt=23, n_ctl=23)
getSizeMean(design="crossover", test="equality", alpha=0.05, beta=0.20,
sigma=0.10, k=1, delta=0, TTE=0.05, rho=c(0.05, 0.07), r=0.1)
# Ex 6. (n_trt=14, n_ctl=14)
getSizeMean(design="crossover", test="noninferiority", alpha=0.05,
beta=0.20, sigma=0.10, k=1, delta=-0.05, TTE=0, rho=c(0.05, 0.07), r=0.1)
# Ex 7. (n_trt=21, n_ctl=21)
getSizeMean(design="crossover", test="superiority", alpha=0.05, beta=0.20,
sigma=0.10, k=1, delta=0.05, TTE=0.01, rho=c(0.05, 0.07), r=0.1)
# Ex 8. (n_trt=29, n_ctl=29)
getSizeMean(design="crossover", test="equivalence", alpha=0.05, beta=0.20,
sigma=0.10, k=1, delta=0.05, TTE=0.01, rho=c(0.05, 0.07), r=0.1)
General Formulas for Sample Size Calculation
Description
This function computes the sample size required for two arms clinical trials with ordinal outcome measure. Four hypothesis tests are available under two allocation designs.
Usage
getSizeOrd(
design = c("parallel", "crossover"),
test = c("equality", "noninferiority", "superiority", "equivalence"),
alpha = 0.05,
beta = 0.2,
varcatprob,
k = 1,
theta,
delta = 0,
rho = c(0.05, 0.07),
r = 0.1
)
Arguments
design |
allocation method ( |
test |
four hypothesis tests: |
alpha |
level of significance. |
beta |
type II error. |
varcatprob |
list of two probability vectors per treatment arm |
k |
ratio of control to treatment. |
theta |
log odds ratio of outcome in treatment arm versus control arm |
delta |
delta margin in test hypothesis. |
rho |
vector of length 2, positive noncompliance rates of two arms. |
r |
projected proportion of trial uniform loss of follow-up. |
Value
sample size per arm.
Examples
# Ex 1. (n_trt=135, n_ctl=135)
getSizeOrd(design="parallel", test="equality", alpha=0.05, beta=0.10,
varcatprob = list(c(0.2,0.5,0.2,0.1), c(0.378,0.472,0.106,0.044)),
k=1, theta=0.887, delta=0, rho=c(0.05, 0.07), r=0.1)
# Ex 2. (Check back next version)
getSizeOrd(design="crossover", test="equality", alpha=0.05, beta=0.10,
varcatprob = list(c(0.2,0.5,0.2,0.1), c(0.378,0.472,0.106,0.044)),
k=1, theta=0.887, delta=0, rho=c(0.05, 0.07), r=0.1)
General Formulas for Sample Size Calculation
Description
This function computes the sample size required for two arms clinical trials with binary outcome measure. Four hypothesis tests are available under two allocation designs.
Usage
getSizeProp(
design = c("parallel", "crossover"),
test = c("equality", "noninferiority", "superiority", "equivalence"),
alpha = 0.05,
beta = 0.2,
varsigma,
k = 1,
seqnumber,
delta = 0,
TTE,
rho = c(0.05, 0.07),
r = 0.1
)
Arguments
design |
allocation method ( |
test |
four hypothesis tests: |
alpha |
level of significance. |
beta |
type II error. |
varsigma |
(varsigma1 > 0, varsigma2 > 0) := (p1, p2) probability of mean response in control and treatment arms; ( |
k |
ratio of control to treatment. |
seqnumber |
Number of crossover sequences: 0 if parallel; 1+ if crossover (seqnumber>=0) |
delta |
delta margin in test hypothesis. |
TTE |
target treatment effect or effect size. |
rho |
vector of length 2, positive noncompliance rates of two arms. |
r |
projected proportion of trial uniform loss of follow-up. |
Value
sample size per arm.
Examples
# Ex 1. (n_trt=102, n_ctl=102)
getSizeProp(design="parallel", test="equality", alpha=0.05, beta=0.20,
varsigma=c(0.65, 0.85), k=1, seqnumber=0, delta=0, TTE=0,
rho=c(0.05, 0.07), r=0.1)
# Ex 2. (n_trt=33, n_ctl=33)
getSizeProp(design="parallel", test="noninferiority", alpha=0.05, beta=0.20,
varsigma=c(0.65,0.85), k=1, seqnumber=0, delta=-0.10, TTE=0.20,
rho=c(0.05, 0.07), r=0.1)
# Ex 3. (n_trt=157, n_ctl=157)
getSizeProp(design="parallel", test="superiority", alpha=0.05, beta=0.20,
varsigma=c(0.65,0.85), k=1, seqnumber=0, delta=0.05, TTE=0.20,
rho=c(0.05, 0.07), r=0.1)
# Ex 4. (n_trt=137, n_ctl=137)
getSizeProp(design="parallel", test="equivalence", alpha=0.05, beta=0.20,
varsigma=c(0.75,0.80), k=1, seqnumber=0, delta=0.20, TTE=0.05,
rho=c(0.05, 0.07), r=0.1)
# Ex 5. (n_trt=36, n_ctl=36)
getSizeProp(design="crossover", test="equality", alpha=0.05, beta=0.20,
varsigma=c(0.5,0.5), k=1, seqnumber=2, delta=0, TTE=0.20,
rho=c(0.05, 0.07), r=0.1)
# Ex 6. (n_trt=22, n_ctl=22)
getSizeProp(design="crossover", test="noninferiority", alpha=0.05,
beta=0.20, varsigma=c(0.5,0.5), k=1, seqnumber=2, delta=-0.20, TTE=0,
rho=c(0.05, 0.07), r=0.1)
# Ex 7. (n_trt=86, n_ctl=86)
getSizeProp(design="crossover", test="superiority", alpha=0.05, beta=0.20,
varsigma=c(0.5,0.5), k=1, seqnumber=2, delta=0.10, TTE=0,
rho=c(0.05, 0.07), r=0.1)
# Ex 8. (n_trt=30, n_ctl=30)
getSizeProp(design="crossover", test="equivalence", alpha=0.05, beta=0.20,
varsigma=c(0.5,0.5), k=1, seqnumber=2, delta=0.20, TTE=0,
rho=c(0.05, 0.07), r=0.1)
General Formulas for Sample Size Calculation
Description
This function computes the sample size required for two arms clinical trials with TTE outcome measure. Four hypothesis tests are available under two allocation designs.
Usage
getSizeTTE(
design = c("parallel", "crossover"),
test = c("equality", "noninferiority", "superiority", "equivalence"),
alpha = 0.05,
beta = 0.2,
varlambda,
k = 1,
ttotal,
taccrual,
gamma,
delta = 0,
rho = c(0.05, 0.07),
r = 0.1
)
Arguments
design |
allocation method ( |
test |
four hypothesis tests: |
alpha |
level of significance. |
beta |
type II error. |
varlambda |
(varlambda1>0,varlambda2>0):=(lam1,lam2) hazard rates in control and treatment arms |
k |
ratio of control to treatment. |
ttotal |
total trial time (ttoal>0) |
taccrual |
accrual time period (taccrual>0) |
gamma |
parameter of exponential distribution (gamma>=0) |
delta |
delta margin in test hypothesis. |
rho |
vector of length 2, positive noncompliance rates of two arms. |
r |
projected proportion of trial uniform loss of follow-up. |
Value
sample size per arm.
Examples
# Ex 1. (n_trt=56, n_ctl=56)
getSizeTTE(design="parallel", test="equality", alpha=0.05, beta=0.20,
varlambda=c(1,2), k=1, ttotal=3, taccrual=1, gamma=0.00001, delta=0,
rho=c(0.05, 0.07), r=0.1)
# Ex 2. (n_trt=30, n_ctl=30)
getSizeTTE(design="parallel", test="noninferiority", alpha=0.05, beta=0.20,
varlambda=c(1,2), k=1, ttotal=3, taccrual=1, gamma=0.00001, delta= -0.2,
rho=c(0.05, 0.07), r=0.1)
# Ex 3. (n_trt=74, n_ctl=74)
getSizeTTE(design="parallel", test="superiority", alpha=0.05, beta=0.20,
varlambda=c(1,2), k=1, ttotal=3, taccrual=1, gamma=0.00001, delta=0.20,
rho=c(0.05, 0.07), r=0.1)
# Ex 4. (n_trt=84, n_ctl=84)
getSizeTTE(design="parallel", test="equivalence", alpha=0.05, beta=0.20,
varlambda=c(1,1), k=1, ttotal=3, taccrual=1, gamma=0.00001, delta=0.5,
rho=c(0.05, 0.07), r=0.1)
# Ex 5. (Check back next version)
getSizeTTE(design="crossover", test="equality", alpha=0.05, beta=0.20,
varlambda=c(1,1), k=1, ttotal=3, taccrual=1, gamma=0.00001, delta=0.5,
rho=c(0.05, 0.07), r=0.1)
# Ex 6. (Check back next version)
getSizeTTE(design="crossover", test="noninferiority", alpha=0.05,
beta=0.20, varlambda=c(1,1), k=1, ttotal=3, taccrual=1, gamma=0.00001,
delta=0.5, rho=c(0.05, 0.07), r=0.1)
# Ex 7. (Check back next version)
getSizeTTE(design="crossover", test="superiority", alpha=0.05, beta=0.20,
varlambda=c(1,1), k=1, ttotal=3, taccrual=1, gamma=0.00001, delta=0.5,
rho=c(0.05, 0.07), r=0.1)
# Ex 8. (Check back next version)
getSizeTTE(design="crossover", test="equivalence", alpha=0.05, beta=0.20,
varlambda=c(1,1), k=1, ttotal=3, taccrual=1, gamma=0.00001, delta=0.5,
rho=c(0.05, 0.07), r=0.1)