In this vignette it is shown how the results from Fujikawa et
al. (2020) can be reproduced using baskexact
. At first, we
have to set up a a design object, using either
setupOneStageBasket()
for a single-stage design or
setupTwoStageBasket()
for a two-stage design with one
interim analysis.
To get the results shown in Figure 1, basket_test()
can
be used, which computes posterior probabilities for a given
results-vector and also shows the pairwise weights and the parameters of
the Beta posterior distribution.
basket_test(design1, n = 15, r = c(1, 5, 7), lambda = 0.99,
weight_fun = weights_fujikawa, weight_params = list(epsilon = 2, tau = 0.5,
logbase = exp(1)))
# $weights
# Basket 1 Basket 2 Basket 3
# Basket 1 1 0.0000000 0.0000000
# Basket 2 0 1.0000000 0.7832585
# Basket 3 0 0.7832585 1.0000000
#
# $post_dist_noborrow
# Basket 1 Basket 2 Basket 3
# shape1 2 6 8
# shape2 15 11 9
#
# $post_dist_borrow
# Basket 1 Basket 2 Basket 3
# shape1 2 12.26607 12.69955
# shape2 15 18.04933 17.61584
#
# $post_prob_noborrow
# Basket 1 Basket 2 Basket 3
# 0.1407375 0.9183121 0.9929964
#
# $post_prob_borrow
# Basket 1 Basket 2 Basket 3
# 0.1407375 0.9942795 0.9965258
Note that at the moment it’s not possible to reproduce the results
from Table 1, as baskexact
currently doesn’t support
baskets with unequal sample sizes.
To reproduce the results from Table 2 we can use toer()
and pow()
. First, the results from the single-stage design
with two different choices of tuning parameter values. Fujikawa et al.’s
“Proposed design (i)” uses \(\varepsilon =
2\) and \(\tau = 0\), “Proposed
design (ii)” uses \(\varepsilon = 2\)
and \(\tau = 0.5\).
Note that the default value for the logbase parameter is 2, such that the weights are always bounded between 0 and 1, but Fujikawa et al. use the natural logarithm, which leads to a lower limit for the weights that is strictly greater than 0.
## p = (0.2, 0.2, 0.2)
# Proposed design (i)
toer(
design = design1, n = 24, lambda = 0.99,
weight_fun = weights_fujikawa, weight_params = list(epsilon = 2, tau = 0,
logbase = exp(1)), results = "group"
)
# $rejection_probabilities
# [1] 0.02158174 0.02158174 0.02158174
#
# $fwer
# [1] 0.03600149
# Proposed design (ii)
toer(
design = design1, n = 24, lambda = 0.99,
weight_fun = weights_fujikawa, weight_params = list(epsilon = 2, tau = 0.5,
logbase = exp(1)), results = "group"
)
# $rejection_probabilities
# [1] 0.03239555 0.03239555 0.03239555
#
# $fwer
# [1] 0.06315308
For the results from the two-stage design, we have to set up a different design object at first:
Fujikawa et al. use an interim analysis that allows stopping of individual baskets based on the posterior predictive probability.
## p = (0.2, 0.2, 0.2)
# Proposed design (i)
toer(
design = design2, n = 24, n1 = 15, lambda = 0.99,
interim_fun = interim_postpred, interim_params = list(prob_futstop = 0.1,
prob_effstop = 0.9), weight_fun = weights_fujikawa,
weight_params = list(logbase = exp(1), tau = 0, epsilon = 2),
results = "group"
)
# $rejection_probabilities
# [1] 0.01703198 0.01703198 0.01703198
#
# $fwer
# [1] 0.03722851
ess(
design = design2, n = 24, n1 = 15, lambda = 0.99,
interim_fun = interim_postpred, interim_params = list(prob_futstop = 0.1,
prob_effstop = 0.9), weight_fun = weights_fujikawa,
weight_params = list(logbase = exp(1), tau = 0, epsilon = 2)
)
# [1] 16.06847 16.06847 16.06847
# Proposed design (ii)
toer(
design = design2, n = 24, n1 = 15, lambda = 0.99,
interim_fun = interim_postpred, interim_params = list(prob_futstop = 0.1,
prob_effstop = 0.9), weight_fun = weights_fujikawa,
weight_params = list(logbase = exp(1), tau = 0.5, epsilon = 2),
results = "group"
)
# $rejection_probabilities
# [1] 0.02175429 0.02175429 0.02175429
#
# $fwer
# [1] 0.04955128
ess(
design = design2, n = 24, n1 = 15, lambda = 0.99,
interim_fun = interim_postpred, interim_params = list(prob_futstop = 0.1,
prob_effstop = 0.9), weight_fun = weights_fujikawa,
weight_params = list(logbase = exp(1), tau = 0.5, epsilon = 2)
)
# [1] 16.22526 16.22526 16.22526
To reproduce the rest of Table 2, p1
has to be changed
accordingly. Note that the results are slightly different, as Fujikawa
et al.’s results are based on simulation with \(n_{\text{sim}} = 5000\).
baskexact
calculates the results analytically.
Fujikawa, K., Teramukai, S., Yokota, I., & Daimon, T. (2020). A Bayesian basket trial design that borrows information across strata based on the similarity between the posterior distributions of the response probability. Biometrical Journal, 62(2), 330-338.