Decision cutpoints for boundary (based on predictive probability)
Source:R/boundsPredprob.R
boundsPredprob.Rd
This function is used to identify the efficacy boundary and futility boundary based on predictive probabilities, i.e.: Efficacy boundary: find minimum x (xU) where Pr(Pr(P > p | x, Y) >= tT | x) > phiU, Futility boundary: find maximum x (xL) where Pr(Pr(P > p | x, Y) >= tT | x) < phiL
Usage
boundsPredprob(nvec, Nmax = max(nvec), p, tT, phiL, phiU, a, b)
Arguments
- nvec
a vector of number of patients
- Nmax
maximum number of patients at the end of the trial (default: maximum of
nvec
)- p
threshold on the response rate
- tT
threshold on the posterior probability to be above p
- phiL
futility boundary predictive probability threshold
- phiU
efficacy boundary predictive probability threshold
- a
the alpha parameter of a beta prior of treatment group
- b
the beta parameter of a beta prior of treatment group
Value
A matrix where for each sample size in nvec
, this function
returns the maximum number of responses that meet the futility
threshold (xL), its corresponding response rate (pL), predictive probability
(ppL) and posterior probability (postL), the upper bound of one
sided 95% CI for the response rate based on an
exact binomial test (UciL), and the same boundary parameters for efficacy:
the minimal number of responses that meet the efficacy threshold (xU),
the corresponding response rate (pU), predictive probability
(ppL) and posterior probability (postU), the lower bound of one sided
95% CI for the response rate based on exact binomial test (LciU).
Examples
## 40 pts trial with interim looks after each 10 pts.,
## final efficacy decision if more than 80% probability to be above 20% ORR,
## final futility decision otherwise.
## Interim efficacy decision if more than 90% predictive probability reach this,
## interim futility decision if less than 10% predictive probability.
## Uniform prior (i.e. beta(1, 1)) on the ORR:
boundsPredprob(
nvec = c(10, 20, 30, 40), p = 0.20, tT = 0.80,
phiL = 0.10, phiU = 0.90, a = 1, b = 1
)
#> nvec xL pL ppL postL UciL xU pU ppU postU LciU
#> 10 10 0 0.0000 0.0268 0.0859 0.2589 4 0.40 0.9287 0.9496 0.1500
#> 20 20 2 0.1000 0.0269 0.1787 0.2826 7 0.35 0.9600 0.9569 0.1773
#> 30 30 5 0.1667 0.0446 0.3931 0.3190 9 0.30 0.9604 0.9254 0.1663
#> 40 40 9 0.2250 0.0000 0.7040 0.3598 10 0.25 1.0000 0.8177 0.1424
## From this we see e.g. that at the first IA at 10 pts, we would stop for futility
## if no patient responded, and for efficacy if 4 or more pts responded.