Title: | Phase II Clinical Trial Design for Multinomial Endpoints |
---|---|
Description: | Provide multinomial design methods under intersection-union test (IUT) and union-intersection test (UIT) scheme for Phase II trial. The design types include : Minimax (minimize the maximum sample size), Optimal (minimize the expected sample size), Admissible (minimize the Bayesian risk) and Maxpower (maximize the exact power level). |
Authors: | Yalin Zhu, Rui Qin |
Maintainer: | Yalin Zhu <[email protected]> |
License: | GPL (>= 2) |
Version: | 0.1.1 |
Built: | 2024-11-01 04:24:38 UTC |
Source: | https://github.com/cran/ph2mult |
Search criterion to find the Optimal, Minimax, Admissible and Maximized power design stopping boundary and corresponding sample size
binom.design(type = c("minimax","optimal","maxpower","admissible"), p0, p1, signif.level=0.05, power.level=0.85, nmax=100, plot.out = FALSE)
binom.design(type = c("minimax","optimal","maxpower","admissible"), p0, p1, signif.level=0.05, power.level=0.85, nmax=100, plot.out = FALSE)
type |
the output types of design, choose from "minimax","optimal","admissible" and "maxpower" |
p0 |
undesirable response rate. |
p1 |
desirable response rate for treatment efficacy. |
signif.level |
threshold for the probability of declaring drug desirable under p0. |
power.level |
threshold for the probability of declaring drug desirable under p1. |
nmax |
maximum total sample size |
plot.out |
logical; if FALSE (default), do not output plot, otherwise, output a plot for design selection. |
boundset |
the boundaries set: |
Simon, R. (1989). Optimal two-stage designs for phase II clinical trials. Controlled clinical trials 10(1), 1-10.
Jung, S. H., Lee, T., Kim, K., & George, S. L. (2004). Admissible two-stage designs for phase II cancer clinical trials. Statistics in medicine 23(4), 561-569.
binom.design(type = "admissible", p0 = 0.15, p1 = 0.3, signif.level = 0.05, power.level = 0.9, plot.out = TRUE)
binom.design(type = "admissible", p0 = 0.15, p1 = 0.3, signif.level = 0.05, power.level = 0.9, plot.out = TRUE)
Calculate the type I error or power of a two-stage design
binom.power(r1,n1,r,n,p)
binom.power(r1,n1,r,n,p)
r1 |
first stage threshold to stop the trial for futility. |
n1 |
first stage sample size. |
r |
overall threshold to stop the trial for futility. |
n |
total sample size. |
p |
pre-specified response rate, |
prob |
the power function: |
Simon, R. (1989). Optimal two-stage designs for phase II clinical trials. Controlled clinical trials 10(1), 1-10.
binom.design
## Calculate type I error binom.power(5, 31, 16, 76, 0.15) binom.power(5, 31, 16, 76, 0.3)
## Calculate type I error binom.power(5, 31, 16, 76, 0.15) binom.power(5, 31, 16, 76, 0.3)
Search the type I error or power of a multinomial (response and disease progression) single- or two-stage design under IUT:
IUT.design(method = c("s1", "s2", "s2.f"), s1.rej, t1.rej, s1.acc, t1.acc, n1, s2.rej, t2.rej, n2, s1.rej.delta=0, t1.rej.delta=0, s1.acc.delta=0, t1.acc.delta=0, s2.rej.delta=0, t2.rej.delta=0, n1.delta=0, n2.delta=0, p0.s, p0.t, p1.s, p1.t, signif.level = 0.05, power.level = 0.85, show.time = TRUE, output = c("minimax","optimal","maxpower","admissible", "all"), plot.out=FALSE)
IUT.design(method = c("s1", "s2", "s2.f"), s1.rej, t1.rej, s1.acc, t1.acc, n1, s2.rej, t2.rej, n2, s1.rej.delta=0, t1.rej.delta=0, s1.acc.delta=0, t1.acc.delta=0, s2.rej.delta=0, t2.rej.delta=0, n1.delta=0, n2.delta=0, p0.s, p0.t, p1.s, p1.t, signif.level = 0.05, power.level = 0.85, show.time = TRUE, output = c("minimax","optimal","maxpower","admissible", "all"), plot.out=FALSE)
method |
design methods according to number of stage and stopping rule, "s1" represents single-stage design stopping for both efficacy and futility, "s2" represents two-stage design stopping for both efficacy and futility, "s2.f" represents two-stage design stopping for futility only. |
s1.rej |
first stage responses threshold to stop the trial for efficacy. Applied for "s1" or "s2". |
t1.rej |
first stage disease progressions threshold to stop the trial for efficacy. Applied for "s1" or "s2". |
s1.acc |
first stage responses threshold to stop the trial for futility. Applied for "s2" or "s2.f". |
t1.acc |
first stage disease progressions threshold to stop the trial for futility. Applied for "s2" or "s2.f". |
n1 |
first stage sample size. Applied for "s1", "s2" or "s2.f". |
s2.rej |
second stage responses threshold to stop the trial for efficacy. Applied for "s2" or "s2.f". |
t2.rej |
second stage disease progressions threshold to stop the trial for efficacy. Applied for "s2" or "s2.f". |
n2 |
second stage sample size. Applied for "s2" or "s2.f". |
s1.rej.delta |
pre-specified search difference for s1.rej. |
t1.rej.delta |
pre-specified search difference for t1.rej. |
s1.acc.delta |
pre-specified search difference for s1.acc. |
t1.acc.delta |
pre-specified search difference for t1.acc. |
s2.rej.delta |
pre-specified search difference for s2.rej. |
t2.rej.delta |
pre-specified search difference for t2.rej. |
n1.delta |
pre-specified search difference for n1. |
n2.delta |
pre-specified search difference for n2. |
p0.s |
pre-specified response rate under null hypothesis. |
p0.t |
pre-specified disease progression rate under null hypothesis. |
p1.s |
pre-specified response rate under alternative hypothesis. |
p1.t |
pre-specified disease progression rate under alternative hypothesis.
Note: type I error calculation needs to take maximum of the power function with |
signif.level |
pre-specified significant level. |
power.level |
pre-specified power level. |
show.time |
logical; if TRUE (default), show the calculation time for the search function. |
output |
the output types of design, choose from "minimax","optimal","admissible" and "maxpower". |
plot.out |
logical; if TRUE, output a plot for design selection. |
boundset |
the boundaries set satisfying the design types properties: |
Chang, M. N., Devidas, M., & Anderson, J. (2007). One- and two-stage designs for phase II window studies. Statistics in medicine , 26(13), 2604-2614.
Simon, R. (1989). Optimal two-stage designs for phase II clinical trials. Controlled clinical trials 10(1), 1-10.
Jung, S. H., Lee, T., Kim, K., & George, S. L. (2004). Admissible two-stage designs for phase II cancer clinical trials. Statistics in medicine 23(4), 561-569.
p01=0.1; p02=0.9 ## Calculate type I error for single-stage design IUT.design(method="s1",s1.rej=18, t1.rej = 12, n1=80, s1.rej.delta = 1, t1.rej.delta = 1, n1.delta=1, p0.s = 0.15, p0.t = 0.25, p1.s = 0.3, p1.t= 0.1, output = "minimax") ## Designs for two-stage design, output PET and EN under null hypothesis IUT.design(method="s2",s1.rej = 11, t1.rej = 4, s1.acc=8, t1.acc = 5, n1=40, s2.rej=18, t2.rej = 11, n2=40, p0.s = 0.15, p0.t = 0.25, p1.s = 0.3, p1.t= 0.1, output = "minimax") IUT.design(method="s2",s1.rej = 11, t1.rej = 4, s1.acc=8, t1.acc = 5, n1=40, s2.rej=18, t2.rej = 11, n2=40, p0.s = 0.15, p0.t = 0.25, p1.s = 0.3, p1.t= 0.1, output = "optimal")
p01=0.1; p02=0.9 ## Calculate type I error for single-stage design IUT.design(method="s1",s1.rej=18, t1.rej = 12, n1=80, s1.rej.delta = 1, t1.rej.delta = 1, n1.delta=1, p0.s = 0.15, p0.t = 0.25, p1.s = 0.3, p1.t= 0.1, output = "minimax") ## Designs for two-stage design, output PET and EN under null hypothesis IUT.design(method="s2",s1.rej = 11, t1.rej = 4, s1.acc=8, t1.acc = 5, n1=40, s2.rej=18, t2.rej = 11, n2=40, p0.s = 0.15, p0.t = 0.25, p1.s = 0.3, p1.t= 0.1, output = "minimax") IUT.design(method="s2",s1.rej = 11, t1.rej = 4, s1.acc=8, t1.acc = 5, n1=40, s2.rej=18, t2.rej = 11, n2=40, p0.s = 0.15, p0.t = 0.25, p1.s = 0.3, p1.t= 0.1, output = "optimal")
Calculate the type I error or power of a multinomial (response and disease progression) single- or two-stage design under IUT:
IUT.power(method, s1.rej, t1.rej, s1.acc, t1.acc, n1, s2.rej, t2.rej, n2, p.s, p.t, output.all)
IUT.power(method, s1.rej, t1.rej, s1.acc, t1.acc, n1, s2.rej, t2.rej, n2, p.s, p.t, output.all)
method |
design methods according to number of stage and stopping rule, "s1" represents single-stage design stopping for both efficacy and futility, "s2" represents two-stage design stopping for both efficacy and futility, "s2.f" represents two-stage design stopping for futility only. |
s1.rej |
first stage responses threshold to stop the trial for efficacy. Applied for "s1" or "s2". |
t1.rej |
first stage disease progressions threshold to stop the trial for efficacy. Applied for "s1" or "s2". |
s1.acc |
first stage responses threshold to stop the trial for futility. Applied for "s2" or "s2.f". |
t1.acc |
first stage disease progressions threshold to stop the trial for futility. Applied for "s2" or "s2.f". |
n1 |
first stage sample size. Applied for "s1", "s2" or "s2.f". |
s2.rej |
second stage responses threshold to stop the trial for efficacy. Applied for "s2" or "s2.f". |
t2.rej |
second stage disease progressions threshold to stop the trial for efficacy. Applied for "s2" or "s2.f". |
n2 |
second stage sample size. Applied for "s2" or "s2.f". |
p.s |
pre-specified response rate, |
p.t |
pre-specified disease progression rate, |
output.all |
logical, if FALSE (default), only output the value of power or type I error, otherwise, also output the probability of early termination (PET) and expected sample size (EN). Applied for "s2" or "s2.f". |
prob |
the power function |
Chang, M. N., Devidas, M., & Anderson, J. (2007). One- and two-stage designs for phase II window studies. Statistics in medicine , 26(13), 2604-2614.
p01=0.1; p02=0.9 ## Calculate type I error for single-stage design max(IUT.power(method="s1", s1.rej=6, t1.rej=19, n1=25, p.s=p01, p.t=0), IUT.power(method="s1", s1.rej=6, t1.rej=19, n1=25, p.s=1-p02, p.t=p02)) ## Calculate power for single-stage design IUT.power(method="s1", s1.rej=6, t1.rej=19, n1=25, p.s=p01+0.2, p.t=p02-0.2) ## Calculate type I error for two-stage design max(IUT.power(method="s2", s1.rej=4, t1.rej=9, s1.acc=0, t1.acc=13, n1=13, s2.rej=6, t2.rej=18, n2=11, p.s=p01, p.t=0), IUT.power(method="s2", s1.rej=4, t1.rej=9, s1.acc=0, t1.acc=13, n1=13, s2.rej=6, t2.rej=18, n2=11, p.s=1-p02, p.t=p02)) ## Output PET and EN under null hypothesis IUT.power(method="s2", s1.rej=4, t1.rej=9, s1.acc=0, t1.acc=13, n1=13, s2.rej=6, t2.rej=18, n2=11, p.s=p01, p.t=p02, output.all=TRUE)[-1] ## Calculate power for two-stage design IUT.power(method="s2", s1.rej=4, t1.rej=9, s1.acc=0, t1.acc=13, n1=13, s2.rej=6, t2.rej=18, n2=11, p.s=p01+0.2, p.t=p02-0.2) ## Calculate type I error for two-stage design stopping for futility only, ## output PET and EN under null hypothesis max(IUT.power(method="s2.f", s1.acc=0, t1.acc=13, n1=13, s2.rej=6, t2.rej=18, n2=11, p.s=p01, p.t=0), IUT.power(method="s2.f", s1.acc=0, t1.acc=13, n1=13, s2.rej=6, t2.rej=18, n2=11, p.s=1-p02, p.t=p02)) ## Output PET and EN under null hypothesis IUT.power(method="s2.f", s1.acc=0, t1.acc=13, n1=13, s2.rej=6, t2.rej=18, n2=11, p.s=p01, p.t=p02, output.all=TRUE)[-1] ## Calculate power for two-stage design IUT.power(method="s2.f", s1.acc=0, t1.acc=13, n1=13, s2.rej=6, t2.rej=18, n2=11, p.s=p01+0.2, p.t=p02-0.2)
p01=0.1; p02=0.9 ## Calculate type I error for single-stage design max(IUT.power(method="s1", s1.rej=6, t1.rej=19, n1=25, p.s=p01, p.t=0), IUT.power(method="s1", s1.rej=6, t1.rej=19, n1=25, p.s=1-p02, p.t=p02)) ## Calculate power for single-stage design IUT.power(method="s1", s1.rej=6, t1.rej=19, n1=25, p.s=p01+0.2, p.t=p02-0.2) ## Calculate type I error for two-stage design max(IUT.power(method="s2", s1.rej=4, t1.rej=9, s1.acc=0, t1.acc=13, n1=13, s2.rej=6, t2.rej=18, n2=11, p.s=p01, p.t=0), IUT.power(method="s2", s1.rej=4, t1.rej=9, s1.acc=0, t1.acc=13, n1=13, s2.rej=6, t2.rej=18, n2=11, p.s=1-p02, p.t=p02)) ## Output PET and EN under null hypothesis IUT.power(method="s2", s1.rej=4, t1.rej=9, s1.acc=0, t1.acc=13, n1=13, s2.rej=6, t2.rej=18, n2=11, p.s=p01, p.t=p02, output.all=TRUE)[-1] ## Calculate power for two-stage design IUT.power(method="s2", s1.rej=4, t1.rej=9, s1.acc=0, t1.acc=13, n1=13, s2.rej=6, t2.rej=18, n2=11, p.s=p01+0.2, p.t=p02-0.2) ## Calculate type I error for two-stage design stopping for futility only, ## output PET and EN under null hypothesis max(IUT.power(method="s2.f", s1.acc=0, t1.acc=13, n1=13, s2.rej=6, t2.rej=18, n2=11, p.s=p01, p.t=0), IUT.power(method="s2.f", s1.acc=0, t1.acc=13, n1=13, s2.rej=6, t2.rej=18, n2=11, p.s=1-p02, p.t=p02)) ## Output PET and EN under null hypothesis IUT.power(method="s2.f", s1.acc=0, t1.acc=13, n1=13, s2.rej=6, t2.rej=18, n2=11, p.s=p01, p.t=p02, output.all=TRUE)[-1] ## Calculate power for two-stage design IUT.power(method="s2.f", s1.acc=0, t1.acc=13, n1=13, s2.rej=6, t2.rej=18, n2=11, p.s=p01+0.2, p.t=p02-0.2)
Search the type I error or power of a multinomial (response and disease progression) single- or two-stage design under IUT:
UIT.design(method, s1.rej, t1.rej, s1.acc, t1.acc, n1, s2.rej, t2.rej, n2, s1.rej.delta=0, t1.rej.delta=0, s1.acc.delta=0, t1.acc.delta=0, s2.rej.delta=0, t2.rej.delta=0, n1.delta=0, n2.delta=0, p0.s, p0.t, p1.s, p1.t, signif.level = 0.05, power.level = 0.85, output.all = FALSE, show.time = TRUE)
UIT.design(method, s1.rej, t1.rej, s1.acc, t1.acc, n1, s2.rej, t2.rej, n2, s1.rej.delta=0, t1.rej.delta=0, s1.acc.delta=0, t1.acc.delta=0, s2.rej.delta=0, t2.rej.delta=0, n1.delta=0, n2.delta=0, p0.s, p0.t, p1.s, p1.t, signif.level = 0.05, power.level = 0.85, output.all = FALSE, show.time = TRUE)
method |
design methods according to number of stage and stopping rule, "s1" represents single-stage design stopping for both efficacy and futility, "s2" represents two-stage design stopping for both efficacy and futility, "s2.f" represents two-stage design stopping for futility only. |
s1.rej |
first stage responses threshold to stop the trial for efficacy. Applied for "s1" or "s2". |
t1.rej |
first stage disease progressions threshold to stop the trial for efficacy. Applied for "s1" or "s2". |
s1.acc |
first stage responses threshold to stop the trial for futility. Applied for "s2" or "s2.f". |
t1.acc |
first stage disease progressions threshold to stop the trial for futility. Applied for "s2" or "s2.f". |
n1 |
first stage sample size. Applied for "s1", "s2" or "s2.f". |
s2.rej |
second stage responses threshold to stop the trial for efficacy. Applied for "s2" or "s2.f". |
t2.rej |
second stage disease progressions threshold to stop the trial for efficacy. Applied for "s2" or "s2.f". |
n2 |
second stage sample size. Applied for "s2" or "s2.f". |
s1.rej.delta |
pre-specified search difference for s1.rej. |
t1.rej.delta |
pre-specified search difference for t1.rej. |
s1.acc.delta |
pre-specified search difference for s1.acc. |
t1.acc.delta |
pre-specified search difference for t1.acc. |
s2.rej.delta |
pre-specified search difference for s2.rej. |
t2.rej.delta |
pre-specified search difference for t2.rej. |
n1.delta |
pre-specified search difference for n1. |
n2.delta |
pre-specified search difference for n2. |
p0.s |
pre-specified response rate under null hypothesis. |
p0.t |
pre-specified disease progression rate under null hypothesis. |
p1.s |
pre-specified response rate under alternative hypothesis. |
p1.t |
pre-specified disease progression rate under alternative hypothesis.
Note: type I error calculation needs to take maximum of the power function with |
signif.level |
pre-specified significant level. |
power.level |
pre-specified power level. |
output.all |
logical; if TRUE, output all possible designs satisfying type I error and power restrictions, otherwise, only output the design with maximum power . |
show.time |
logical; if TRUE (default), show the calculation time for the search function. |
boundset |
the boundaries set satisfying the design types properties: |
Zee, B., Melnychuk, D., Dancey, J., & Eisenhauer, E. (1999). Multinomial phase II cancer trials incorporating response and early progression. Journal of biopharmaceutical statistics, 9(2), 351-363.
Simon, R. (1989). Optimal two-stage designs for phase II clinical trials. Controlled clinical trials 10(1), 1-10.
## Calculate type I error for single-stage design UIT.design(method="s1",s1.rej=18, t1.rej = 12, n1=80, p0.s = 0.15, p0.t = 0.25, p1.s = 0.3, p1.t= 0.1) ## Designs for two-stage design, output PET and EN under null hypothesis UIT.design(method="s2",s1.rej = 11, t1.rej = 4, s1.acc=8, t1.acc = 5, n1=40, s2.rej=18, t2.rej = 11, n2=40, p0.s = 0.15, p0.t = 0.25, p1.s = 0.3, p1.t= 0.1, output.all=TRUE)
## Calculate type I error for single-stage design UIT.design(method="s1",s1.rej=18, t1.rej = 12, n1=80, p0.s = 0.15, p0.t = 0.25, p1.s = 0.3, p1.t= 0.1) ## Designs for two-stage design, output PET and EN under null hypothesis UIT.design(method="s2",s1.rej = 11, t1.rej = 4, s1.acc=8, t1.acc = 5, n1=40, s2.rej=18, t2.rej = 11, n2=40, p0.s = 0.15, p0.t = 0.25, p1.s = 0.3, p1.t= 0.1, output.all=TRUE)
Calculate the type I error or power of a multinomial (response and disease progression) single- or two-stage design under UIT:
(Note: original Zee et al. (1999) set up the correct hypotheses, but did not make a match decision.)
UIT.power(method, s1.rej, t1.rej, s1.acc, t1.acc, n1, s2.rej, t2.rej, n2, p.s, p.t, output.all)
UIT.power(method, s1.rej, t1.rej, s1.acc, t1.acc, n1, s2.rej, t2.rej, n2, p.s, p.t, output.all)
method |
design methods according to number of stage and stopping rule, "s1" represents single-stage design stopping for both efficacy and futility, "s2" represents two-stage design stopping for both efficacy and futility, "s2.f" represents two-stage design stopping for futility only. |
s1.rej |
first stage responses threshold to stop the trial for efficacy. Applied for "s1" or "s2". |
t1.rej |
first stage disease progressions threshold to stop the trial for efficacy. Applied for "s1" or "s2". |
s1.acc |
first stage responses threshold to stop the trial for futility. Applied for "s2" or "s2.f". |
t1.acc |
first stage disease progressions threshold to stop the trial for futility. Applied for "s2" or "s2.f". |
n1 |
first stage sample size. Applied for "s1", "s2" or "s2.f". |
s2.rej |
second stage responses threshold to stop the trial for efficacy. Applied for "s2" or "s2.f". |
t2.rej |
second stage disease progressions threshold to stop the trial for efficacy. Applied for "s2" or "s2.f". |
n2 |
second stage sample size. Applied for "s2" or "s2.f". |
p.s |
pre-specified response rate, |
p.t |
pre-specified disease progression rate, |
output.all |
logical, if FALSE (default), only output the value of power or type I error, otherwise, also output the probability of early termination (PET) and expected sample size (EN). Applied for "s2" or "s2.f". |
prob |
the power function |
Zee, B., Melnychuk, D., Dancey, J., & Eisenhauer, E. (1999). Multinomial phase II cancer trials incorporating response and early progression. Journal of biopharmaceutical statistics, 9(2), 351-363.
p01=0.1; p02=0.9 ## Calculate type I error for single-stage design UIT.power(method="s1", s1.rej=6, t1.rej=19, n1=25, p.s=p01, p.t=p02) ## Calculate power for single-stage design UIT.power(method="s1", s1.rej=6, t1.rej=19, n1=25, p.s=p01+0.2, p.t=p02-0.2) ## Calculate type I error for two-stage design, output PET and EN under null hypothesis UIT.power(method="s2", s1.rej=4, t1.rej=9, s1.acc=0, t1.acc=13, n1=13, s2.rej=6, t2.rej=18, n2=11, p.s=p01, p.t=p02, output.all=TRUE) ## Calculate power for two-stage design UIT.power(method="s2", s1.rej=4, t1.rej=9, s1.acc=0, t1.acc=13, n1=13, s2.rej=6, t2.rej=18, n2=11, p.s=p01+0.2, p.t=p02-0.2) ## Calculate type I error for two-stage design stopping for futility only, ## output PET and EN under null hypothesis UIT.power(method="s2.f", s1.acc=0, t1.acc=13, n1=13, s2.rej=6, t2.rej=18, n2=11, p.s=p01, p.t=p02, output.all=TRUE) ## Calculate power for two-stage design UIT.power(method="s2.f", s1.acc=0, t1.acc=13, n1=13, s2.rej=6, t2.rej=18, n2=11, p.s=p01+0.2, p.t=p02-0.2)
p01=0.1; p02=0.9 ## Calculate type I error for single-stage design UIT.power(method="s1", s1.rej=6, t1.rej=19, n1=25, p.s=p01, p.t=p02) ## Calculate power for single-stage design UIT.power(method="s1", s1.rej=6, t1.rej=19, n1=25, p.s=p01+0.2, p.t=p02-0.2) ## Calculate type I error for two-stage design, output PET and EN under null hypothesis UIT.power(method="s2", s1.rej=4, t1.rej=9, s1.acc=0, t1.acc=13, n1=13, s2.rej=6, t2.rej=18, n2=11, p.s=p01, p.t=p02, output.all=TRUE) ## Calculate power for two-stage design UIT.power(method="s2", s1.rej=4, t1.rej=9, s1.acc=0, t1.acc=13, n1=13, s2.rej=6, t2.rej=18, n2=11, p.s=p01+0.2, p.t=p02-0.2) ## Calculate type I error for two-stage design stopping for futility only, ## output PET and EN under null hypothesis UIT.power(method="s2.f", s1.acc=0, t1.acc=13, n1=13, s2.rej=6, t2.rej=18, n2=11, p.s=p01, p.t=p02, output.all=TRUE) ## Calculate power for two-stage design UIT.power(method="s2.f", s1.acc=0, t1.acc=13, n1=13, s2.rej=6, t2.rej=18, n2=11, p.s=p01+0.2, p.t=p02-0.2)