Decision cutpoints for boundary (based on predictive probability) for Decision 1 rule.
Source:R/boundsPredprob.R
boundsPredprob.Rd
This function is used to identify the efficacy boundary and futility boundary based on rules in @details.
Arguments
- looks
(
numeric
):
A vector of number of patients in each look.- Nmax
(
number
):
maximum number of patients at the end of the trial in theE
group.- p0
(
number
):
lower Futility threshold of response rate.- tT
(
number
):
threshold of which assumedtruep
exceeds acceptable threshold ofp0
.- phiL
(
number
):
lower threshold on the predictive probability.- phiU
(
number
):
upper threshold on the predictive probability.- parE
(
numeric
):
the beta parameters matrix, with K rows and 2 columns, corresponding to the beta parameters of the K components.- weights
(
numeric
):
the mixture weights of the beta mixture prior.
Value
A matrix for each same size in looks
. For each sample size, the following is returned:
xL
: the maximum number of responses that meet the futility threshold.pL
: response rate corresponding toxL
.predL
: predictive probability corresponding toxL
postL
: posterior probability corresponding toxL
.pL_upper_ci
: upper bound of one sided 95% CI for the response rate based on an exact binomial test.xU
: the minimal number of responses that meet the efficacy threshold.pU
: response rate corresponding toxU
.predU
: predictive probability corresponding toxU
.postU
: posterior probability corresponding toxU
.pU_lower_ci
: lower bound of one sided 95% CI for the response rate based on exact binomial test.
Details
see also predprob()
The following rules are Decision 1 rules:
Efficacy boundary: find minimum x (xU) where
Pr(Pr(RR > p0 | data) >= tT | x) >= phiU,
Futility boundary: find maximum x (xL) where
Pr(Pr(RR > p0 | data) >= tT | x) =< phiL
Examples
# 40 pts trial with interim looks after each 10 patients.
# 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 or
# Efficacy look Pr(Pr(RR > p0 | x, Y) >= tT | x) >= phiU,
# Interim futility decision if less than 10% predictive probability or
# Futility look Pr(Pr(RR > p0 | x, Y) >= tT | x) =< phiL
# Uniform prior (i.e. beta(1, 1)) on the ORR:
boundsPredprob(
looks = c(10, 20, 30, 40),
p0 = 0.20,
tT = 0.80,
phiL = 0.60,
phiU = 0.90
)
#> looks xL pL predL postL pL_upper_ci xU pU predU postU pU_lower_ci
#> 10 10 2 0.2000 0.4543 0.6174 0.5069 4 0.40 0.9287 0.9496 0.1500
#> 20 20 4 0.2000 0.3258 0.5860 0.4010 7 0.35 0.9600 0.9569 0.1773
#> 30 30 7 0.2333 0.4640 0.7300 0.3939 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
# 25 pts trial with interim looks at 7 and 15 pts.
# 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 or
# Efficacy look Pr(Pr(RR > p0 | x, Y) >= tT | x) >= phiU,
# Interim futility decision if less than 60% predictive probability or
# Futility look Pr(Pr(RR > p0 | x, Y) >= tT | x) =< phi
# with mixed prior and weights:
boundsPredprob(
looks = c(7, 15, 25),
p0 = 0.20,
tT = 0.80,
phiL = 0.60,
phiU = 0.90,
parE = cbind(c(1, 1), c(3, 10)),
weights = c(0.2, 0.8)
)
#> looks xL pL predL postL pL_upper_ci xU pU predU postU
#> 7 7 3 0.4286 0.5342 0.7006 0.7747 5 0.7143 0.9732 0.9753
#> 15 15 5 0.3333 0.4961 0.7211 0.5774 7 0.4667 0.9748 0.9512
#> 25 25 7 0.2800 0.0000 0.6786 0.4622 8 0.3200 1.0000 0.8166
#> pU_lower_ci
#> 7 0.3413
#> 15 0.2437
#> 25 0.1703