The utility function calculates the expected utility of our drug development program and is given as gains minus costs and depends on the parameters and the expected probability of a successful program.
The utility is in a further step maximized by the optimal_multitrial_normal()
function.
utility2_normal(
n2,
kappa,
w,
Delta1,
Delta2,
in1,
in2,
a,
b,
alpha,
beta,
c2,
c3,
c02,
c03,
K,
N,
S,
b1,
b2,
b3,
case,
fixed
)utility3_normal(
n2,
kappa,
w,
Delta1,
Delta2,
in1,
in2,
a,
b,
alpha,
beta,
c2,
c3,
c02,
c03,
K,
N,
S,
b1,
b2,
b3,
case,
fixed
)
utility4_normal(
n2,
kappa,
w,
Delta1,
Delta2,
in1,
in2,
a,
b,
alpha,
beta,
c2,
c3,
c02,
c03,
K,
N,
S,
b1,
b2,
b3,
case,
fixed
)
The output of the functions utility2_normal(), utility3_normal() and utility4_normal() is the expected utility of the program when 2, 3 or 4 phase III trials are performed.
total sample size for phase II; must be even number
threshold value for the go/no-go decision rule
weight for mixture prior distribution
assumed true treatment effect for standardized difference in means
assumed true treatment effect for standardized difference in means
amount of information for Delta1
in terms of sample size
amount of information for Delta2
in terms of sample size
lower boundary for the truncation
upper boundary for the truncation
significance level
1-beta
power for calculation of sample size for phase III
variable per-patient cost for phase II
variable per-patient cost for phase III
fixed cost for phase II
fixed cost for phase III
constraint on the costs of the program, default: Inf, e.g. no constraint
constraint on the total expected sample size of the program, default: Inf, e.g. no constraint
constraint on the expected probability of a successful program, default: -Inf, e.g. no constraint
expected gain for effect size category "small"
expected gain for effect size category "medium"
expected gain for effect size category "large"
choose case: "at least 1, 2 or 3 significant trials needed for approval"
choose if true treatment effects are fixed or random
res <- utility2_normal(kappa = 0.1, n2 = 50, alpha = 0.025, beta = 0.1, w = 0.3,
Delta1 = 0.375, Delta2 = 0.625, in1 = 300, in2 = 600,
a = 0.25, b = 0.75,
c2 = 0.675, c3 = 0.72, c02 = 15, c03 = 20,
K = Inf, N = Inf, S = -Inf,
b1 = 3000, b2 = 8000, b3 = 10000,
case = 2, fixed = TRUE)
res <- utility3_normal(kappa = 0.1, n2 = 50, alpha = 0.025, beta = 0.1, w = 0.3,
Delta1 = 0.375, Delta2 = 0.625, in1 = 300, in2 = 600,
a = 0.25, b = 0.75,
c2 = 0.675, c3 = 0.72, c02 = 15, c03 = 20,
K = Inf, N = Inf, S = -Inf,
b1 = 3000, b2 = 8000, b3 = 10000,
case = 2, fixed = TRUE)
res <- utility4_normal(kappa = 0.1, n2 = 50, alpha = 0.025, beta = 0.1, w = 0.3,
Delta1 = 0.375, Delta2 = 0.625, in1 = 300, in2 = 600,
a = 0.25, b = 0.75,
c2 = 0.675, c3 = 0.72, c02 = 15, c03 = 20,
K = Inf, N = Inf, S = -Inf,
b1 = 3000, b2 = 8000, b3 = 10000,
case = 3, fixed = TRUE)
Run the code above in your browser using DataLab