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.