optimal_normal {drugdevelopR} | R Documentation |
Optimal phase II/III drug development planning with normally distributed endpoint
Description
The function optimal_normal
of the drugdevelopR
package enables planning of phase II/III drug development programs with
optimal sample size allocation and go/no-go decision rules for normally
distributed endpoints. The treatment effect is measured by the standardized
difference in means. The assumed true treatment effects can be assumed to be
fixed or modelled by a prior distribution. The R Shiny application
prior visualizes the prior
distributions used in this package. Fast computing is enabled by parallel
programming.
Usage
optimal_normal(
w,
Delta1,
Delta2,
in1,
in2,
a,
b,
n2min,
n2max,
stepn2,
kappamin,
kappamax,
stepkappa,
alpha,
beta,
c2,
c3,
c02,
c03,
K = Inf,
N = Inf,
S = -Inf,
steps1 = 0,
stepm1 = 0.5,
stepl1 = 0.8,
b1,
b2,
b3,
gamma = 0,
fixed = FALSE,
skipII = FALSE,
num_cl = 1
)
Arguments
w |
weight for mixture prior distribution |
Delta1 |
assumed true prior treatment effect measured as the standardized difference in means, see here for details |
Delta2 |
assumed true prior treatment effect measured as the standardized difference in means, see here for details |
in1 |
amount of information for |
in2 |
amount of information for |
a |
lower boundary for the truncation of the prior distribution |
b |
upper boundary for the truncation of the prior distribution |
n2min |
minimal total sample size for phase II; must be an even number |
n2max |
maximal total sample size for phase II, must be an even number |
stepn2 |
step size for the optimization over n2; must be an even number |
kappamin |
minimal threshold value kappa for the go/no-go decision rule |
kappamax |
maximal threshold value kappa for the go/no-go decision rule |
stepkappa |
step size for the optimization over the threshold value kappa |
alpha |
one-sided significance level |
beta |
type II error rate; i.e. |
c2 |
variable per-patient cost for phase II in 10^5 $ |
c3 |
variable per-patient cost for phase III in 10^5 $ |
c02 |
fixed cost for phase II in 10^5 $ |
c03 |
fixed cost for phase III in 10^5 $ |
K |
constraint on the costs of the program, default: Inf, e.g. no constraint |
N |
constraint on the total expected sample size of the program, default: Inf, e.g. no constraint |
S |
constraint on the expected probability of a successful program, default: -Inf, e.g. no constraint |
steps1 |
lower boundary for effect size category "small", default: 0 |
stepm1 |
lower boundary for effect size category "medium" = upper boundary for effect size category "small" default: 0.5 |
stepl1 |
lower boundary for effect size category "large" = upper boundary for effect size category "medium", default: 0.8 |
b1 |
expected gain for effect size category "small" in 10^5 $ |
b2 |
expected gain for effect size category "medium" in 10^5 $ |
b3 |
expected gain for effect size category "large" in 10^5 $ |
gamma |
to model different populations in phase II and III choose |
fixed |
choose if true treatment effects are fixed or following a prior distribution, if TRUE |
skipII |
choose if skipping phase II is an option, default: FALSE;
if TRUE, the program calculates the expected utility for the case when phase
II is skipped and compares it to the situation when phase II is not skipped.
The results are then returned as a two-row data frame, |
num_cl |
number of clusters used for parallel computing, default: 1 |
Value
The output of the function optimal_normal
is a data.frame containing the optimization results:
- u
maximal expected utility under the optimization constraints, i.e. the expected utility of the optimal sample size and threshold value
- Kappa
optimal threshold value for the decision rule to go to phase III
- n2
total sample size for phase II
- n3
total sample size for phase III; rounded to the next even natural number
- n
total sample size in the program; n = n2 + n3
- K
maximal costs of the program
- pgo
probability to go to phase III
- sProg
probability of a successful program
- sProg1
probability of a successful program with "small" treatment effect in phase III
- sProg2
probability of a successful program with "medium" treatment effect in phase III
- sProg3
probability of a successful program with "large" treatment effect in phase III
- K2
expected costs for phase II
- K3
expected costs for phase III
and further input parameters.
Taking cat(comment())
of the data.frame object lists the used optimization sequences, start and finish date of the optimization procedure.
References
Cohen, J. (1988). Statistical power analysis for the behavioral sciences.
Examples
# Activate progress bar (optional)
## Not run: progressr::handlers(global = TRUE)
# Optimize
optimal_normal(w=0.3, # define parameters for prior
Delta1 = 0.375, Delta2 = 0.625, in1=300, in2=600, # (https://web.imbi.uni-heidelberg.de/prior/)
a = 0.25, b = 0.75,
n2min = 20, n2max = 100, stepn2 = 4, # define optimization set for n2
kappamin = 0.02, kappamax = 0.2, stepkappa = 0.02, # define optimization set for kappa
alpha = 0.025, beta = 0.1, # drug development planning parameters
c2 = 0.675, c3 = 0.72, c02 = 15, c03 = 20, # fixed/variable costs for phase II/III
K = Inf, N = Inf, S = -Inf, # set constraints
steps1 = 0, # define lower boundary for "small"
stepm1 = 0.5, # "medium"
stepl1 = 0.8, # and "large" effect size categories
b1 = 3000, b2 = 8000, b3 = 10000, # benefit for each effect size category
gamma = 0, # population structures in phase II/III
fixed = FALSE, # true treatment effects are fixed/random
skipII = FALSE, # skipping phase II
num_cl = 1) # number of cores for parallelized computing