optimal_tte {drugdevelopR} | R Documentation |
Optimal phase II/III drug development planning with time-to-event endpoint
Description
The function optimal_tte
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 time-to-event endpoints
(Kirchner et al., 2016). The assumed true treatment effects can be assumed to
be fixed or modelled by
a prior distribution. When assuming fixed true treatment effects, planning can
also be done with the user-friendly R Shiny app
basic.
The app prior visualizes
the prior distributions used in this package. Fast computing is enabled by
parallel programming.
Usage
optimal_tte(
w,
hr1,
hr2,
id1,
id2,
d2min,
d2max,
stepd2,
hrgomin,
hrgomax,
stephrgo,
alpha,
beta,
xi2,
xi3,
c2,
c3,
c02,
c03,
K = Inf,
N = Inf,
S = -Inf,
steps1 = 1,
stepm1 = 0.95,
stepl1 = 0.85,
b1,
b2,
b3,
gamma = 0,
fixed = FALSE,
skipII = FALSE,
num_cl = 1
)
Arguments
w |
weight for mixture prior distribution, see this Shiny application for the choice of weights |
hr1 |
first assumed true treatment effect on HR scale for prior distribution |
hr2 |
second assumed true treatment effect on HR scale for prior distribution |
id1 |
amount of information for |
id2 |
amount of information for |
d2min |
minimal number of events for phase II |
d2max |
maximal number of events for phase II |
stepd2 |
step size for the optimization over d2 |
hrgomin |
minimal threshold value for the go/no-go decision rule |
hrgomax |
maximal threshold value for the go/no-go decision rule |
stephrgo |
step size for the optimization over HRgo |
alpha |
one-sided significance level |
beta |
type II error rate; i.e. |
xi2 |
assumed event rate for phase II, used for calculating the sample size of phase II via |
xi3 |
event rate for phase III, used for calculating the sample size of phase III in analogy to |
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" in HR scale, default: 1 |
stepm1 |
lower boundary for effect size category "medium" in HR scale = upper boundary for effect size category "small" in HR scale, default: 0.95 |
stepl1 |
lower boundary for effect size category "large" in HR scale = upper boundary for effect size category "medium" in HR scale, default: 0.85 |
b1 |
expected gain for effect size category "small" |
b2 |
expected gain for effect size category "medium" |
b3 |
expected gain for effect size category "large" |
gamma |
to model different populations in phase II and III choose |
fixed |
choose if true treatment effects are fixed or random, if TRUE hr1 is used as a fixed effect and hr2 is ignored |
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 |
Format
data.frame containing the optimization results (see Value)
Value
The output of the function is a data.frame
object 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
- HRgo
optimal threshold value for the decision rule to go to phase III
- d2
optimal total number of events for phase II
- d3
total expected number of events for phase III; rounded to next natural number
- d
total expected number of events in the program; d = d2 + d3
- n2
total sample size for phase II; rounded to the next even natural number
- 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 (i.e. the cost constraint, if it is set or the sum K2+K3 if no cost constraint is set)
- 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 lists the used optimization sequences, start and
finish date of the optimization procedure.
References
Kirchner, M., Kieser, M., Goette, H., & Schueler, A. (2016). Utility-based optimization of phase II/III programs. Statistics in Medicine, 35(2), 305-316.
IQWiG (2016). Allgemeine Methoden. Version 5.0, 10.07.2016, Technical Report. Available at https://www.iqwig.de/ueber-uns/methoden/methodenpapier/, assessed last 15.05.19.
Schoenfeld, D. (1981). The asymptotic properties of nonparametric tests for comparing survival distributions. Biometrika, 68(1), 316-319.
See Also
optimal_binary
, optimal_normal
, optimal_bias
, optimal_multitrial
and optimal_multiarm
Examples
# Activate progress bar (optional)
## Not run:
progressr::handlers(global = TRUE)
## End(Not run)
# Optimize
optimal_tte(w = 0.3, # define parameters for prior
hr1 = 0.69, hr2 = 0.88, id1 = 210, id2 = 420, # (https://web.imbi.uni-heidelberg.de/prior/)
d2min = 20, d2max = 100, stepd2 = 5, # define optimization set for d2
hrgomin = 0.7, hrgomax = 0.9, stephrgo = 0.05, # define optimization set for HRgo
alpha = 0.025, beta = 0.1, xi2 = 0.7, xi3 = 0.7, # drug development planning parameters
c2 = 0.75, c3 = 1, c02 = 100, c03 = 150, # fixed/variable costs for phase II/III
K = Inf, N = Inf, S = -Inf, # set constraints
steps1 = 1, # define lower boundary for "small"
stepm1 = 0.95, # "medium"
stepl1 = 0.85, # and "large" treatment effect size categories
b1 = 1000, b2 = 2000, b3 = 3000, # expected 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