Skip to contents

The optimal_multitrial_normal function enables planning of phase II/III drug development programs with several phase III trials for the same normally distributed endpoint. Its main output values are 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 (Delta). The assumed true treatment effects can be assumed fixed or modelled by a prior distribution.

Usage

optimal_multitrial_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,
  b1,
  b2,
  b3,
  case,
  strategy = TRUE,
  fixed = 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 Delta1 in terms of sample size, see here for details

in2

amount of information for Delta2 in terms of sample size, see here for details

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. 1 - beta is the power for calculation of the sample size for phase III

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

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 $

case

choose case: "at least 1, 2 or 3 significant trials needed for approval"

strategy

choose strategy: "conduct 1, 2, 3 or 4 trials in order to achieve the case's goal"; TRUE calculates all strategies of the selected case

fixed

choose if true treatment effects are fixed or following a prior distribution, if TRUE Delta1 is used as fixed effect

num_cl

number of clusters used for parallel computing, default: 1

Value

The output of the function is a data.frame object containing the optimization results:

Strategy

Strategy: "number of trials to be conducted in order to achieve the goal of the case"

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; 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 (lower boundary in HR scale is set to 0, as proposed by Cohen (1988))

sProg2

probability of a successful program with "medium" treatment effect in phase III (lower boundary in HR scale is set to 0.5, as proposed Cohen (1988))

sProg3

probability of a successful program with "large" treatment effect in phase III (lower boundary in HR scale is set to 0.8, as proposed Cohen (1988))

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 time of the optimization procedure. The attribute attr(,"trace") returns the utility values of all parameter combinations visited during optimization.

Details

The R Shiny application prior visualizes the prior distributions used in this package. Fast computing is enabled by parallel programming.

Effect sizes

In other settings, the definition of "small", "medium" and "large" effect sizes can be user-specified using the input parameters steps1, stepm1 and stepl1. Due to the complexity of the multitrial setting, this feature is not included for this setting. Instead, the effect sizes were set to to predefined values as explained under sProg1, sProg2 and sProg3 in the Value section.

References

Cohen, J. (1988). Statistical power analysis for the behavioral sciences.

Examples

# Activate progress bar (optional)
if (FALSE) progressr::handlers(global = TRUE) # \dontrun{}
# Optimize
# \donttest{
optimal_multitrial_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 and variable costs for phase II/III
  K = Inf, N = Inf, S = -Inf,                         # set constraints
  b1 = 3000, b2 = 8000, b3 = 10000,                   # expected benefit for each effect size                                         
  case = 1, strategy = TRUE,                          # chose Case and Strategy
  fixed = TRUE,                                       # true treatment effects are fixed/random
  num_cl = 1)                                         # number of cores for parallelized computing
#> Optimization result with 1 significant trial(s) needed, strategy 1:
#>  Utility: 1768.13
#>  Sample size:
#>    phase II: 100, phase III: 460, total: 560
#>  Probability to go to phase III: 0.92
#>  Total cost:
#>    phase II: 82, phase III: 350, cost constraint: Inf
#>  Fixed cost:
#>    phase II: 15, phase III: 20
#>  Variable cost per patient:
#>    phase II: 0.675, phase III: 0.72
#>  Effect size categories (expected gains):
#>   small: 0 (3000), medium: 0.5 (8000), large: 0.8 (10000)
#>  Success probability: 0.73
#>  Joint probability of success and observed effect of size ... in phase III:
#>    small: 0.73, medium: 0, large: 0
#>  Significance level: 0.025
#>  Targeted power: 0.9
#>  Decision rule threshold: 0.1 [Kappa] 
#>  Assumed true effect: 0.375 [Delta] 
#> 
#> Optimization result with 1 significant trial(s) needed, strategy 2:
#>  Utility: 1774.37
#>  Sample size:
#>    phase II: 100, phase III: 712, total: 812
#>  Probability to go to phase III: 0.88
#>  Total cost:
#>    phase II: 82, phase III: 548, cost constraint: Inf
#>  Fixed cost:
#>    phase II: 15, phase III: 20
#>  Variable cost per patient:
#>    phase II: 0.675, phase III: 0.72
#>  Effect size categories (expected gains):
#>   small: 0 (3000), medium: 0.5 (8000), large: 0.8 (10000)
#>  Success probability: 0.8
#>  Joint probability of success and observed effect of size ... in phase III:
#>    small: 0.79, medium: 0, large: 0
#>  Significance level: 0.025
#>  Targeted power: 0.9
#>  Decision rule threshold: 0.14 [Kappa] 
#>  Assumed true effect: 0.375 [Delta] 
#> 
  # }