Skip to contents

[Experimental]

Compute the predictive probability of trial success given current data. Success means that at the end of the trial the posterior probability is Pr(P_E > p) >= thetaT, where p is the fixed response rate threshold and P_E is the response rate in the treatment group or E group. Then the predictive probability for success is: pp = sum over i: Pr(Y=i|x,n)*I{Pr(P_E > p|x,Y=i)>=thetaT} where Y is the number of future responses in the treatment group and x is the current number of responses in the treatment group out of n. The prior for the response rate in the experimental arm is P_E ~ beta(a, b).

A table with the following contents will be included in the return output :

  • counts: Y = i, number of future successes in Nmax-n subjects.

  • density: Pr(Y = i|x) using beta-(mixture)-binomial distribution.

  • posterior: Pr(P_E > p | x, Y=i) using beta posterior.

  • success: indicator I(b > thetaT).

Usage

predprob(x, n, Nmax, p, thetaT, parE = c(1, 1), weights)

Arguments

x

(number):
number of successes.

n

(number):
number of patients.

Nmax

(number):
maximum number of patients at the end of the trial in the E group.

p

(number):
threshold on the response rate.

thetaT

(number):
threshold on the probability to be above p.

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 list is returned with names result for predictive probability and table of numeric values with counts of responses in the remaining patients, probabilities of these counts, corresponding probabilities to be above threshold, and trial success indicators.

References

Lee, J. J., & Liu, D. D. (2008). A predictive probability design for phase II cancer clinical trials. Clinical Trials, 5(2), 93-106. doi:10.1177/1740774508089279

Examples

# The original Lee and Liu (Table 1) example:
# Nmax = 40, x = 16, n = 23, beta(0.6,0.4) prior distribution,
# thetaT = 0.9. The control response rate is 60%:
predprob(
  x = 16, n = 23, Nmax = 40, p = 0.6, thetaT = 0.9,
  parE = c(0.6, 0.4)
)
#> $result
#> [1] 0.5655589
#> 
#> $table
#>    counts cumul_counts density   posterior success
#> 1       0           23  0.0000 0.005858397   FALSE
#> 2       1           24  0.0000 0.013782046   FALSE
#> 3       2           25  0.0001 0.029584325   FALSE
#> 4       3           26  0.0006 0.058130376   FALSE
#> 5       4           27  0.0021 0.104881818   FALSE
#> 6       5           28  0.0058 0.174328134   FALSE
#> 7       6           29  0.0135 0.267887754   FALSE
#> 8       7           30  0.0276 0.382146405   FALSE
#> 9       8           31  0.0497 0.508508727   FALSE
#> 10      9           32  0.0794 0.634871049   FALSE
#> 11     10           33  0.1129 0.748893301   FALSE
#> 12     11           34  0.1426 0.841482798   FALSE
#> 13     12           35  0.1587 0.908912106    TRUE
#> 14     13           36  0.1532 0.952764733    TRUE
#> 15     14           37  0.1246 0.978098514    TRUE
#> 16     15           38  0.0811 0.991013775    TRUE
#> 17     16           39  0.0381 0.996776597    TRUE
#> 18     17           40  0.0099 0.999003945    TRUE
#> 

# Lowering/Increasing the probability threshold thetaT of course increases
# /decreases the predictive probability of success, respectively:
predprob(
  x = 16, n = 23, Nmax = 40, p = 0.6, thetaT = 0.8,
  parE = c(0.6, 0.4)
)
#> $result
#> [1] 0.7081907
#> 
#> $table
#>    counts cumul_counts density   posterior success
#> 1       0           23  0.0000 0.005858397   FALSE
#> 2       1           24  0.0000 0.013782046   FALSE
#> 3       2           25  0.0001 0.029584325   FALSE
#> 4       3           26  0.0006 0.058130376   FALSE
#> 5       4           27  0.0021 0.104881818   FALSE
#> 6       5           28  0.0058 0.174328134   FALSE
#> 7       6           29  0.0135 0.267887754   FALSE
#> 8       7           30  0.0276 0.382146405   FALSE
#> 9       8           31  0.0497 0.508508727   FALSE
#> 10      9           32  0.0794 0.634871049   FALSE
#> 11     10           33  0.1129 0.748893301   FALSE
#> 12     11           34  0.1426 0.841482798    TRUE
#> 13     12           35  0.1587 0.908912106    TRUE
#> 14     13           36  0.1532 0.952764733    TRUE
#> 15     14           37  0.1246 0.978098514    TRUE
#> 16     15           38  0.0811 0.991013775    TRUE
#> 17     16           39  0.0381 0.996776597    TRUE
#> 18     17           40  0.0099 0.999003945    TRUE
#> 

predprob(
  x = 16, n = 23, Nmax = 40, p = 0.6, thetaT = 0.95,
  parE = c(0.6, 0.4)
)
#> $result
#> [1] 0.4068235
#> 
#> $table
#>    counts cumul_counts density   posterior success
#> 1       0           23  0.0000 0.005858397   FALSE
#> 2       1           24  0.0000 0.013782046   FALSE
#> 3       2           25  0.0001 0.029584325   FALSE
#> 4       3           26  0.0006 0.058130376   FALSE
#> 5       4           27  0.0021 0.104881818   FALSE
#> 6       5           28  0.0058 0.174328134   FALSE
#> 7       6           29  0.0135 0.267887754   FALSE
#> 8       7           30  0.0276 0.382146405   FALSE
#> 9       8           31  0.0497 0.508508727   FALSE
#> 10      9           32  0.0794 0.634871049   FALSE
#> 11     10           33  0.1129 0.748893301   FALSE
#> 12     11           34  0.1426 0.841482798   FALSE
#> 13     12           35  0.1587 0.908912106   FALSE
#> 14     13           36  0.1532 0.952764733    TRUE
#> 15     14           37  0.1246 0.978098514    TRUE
#> 16     15           38  0.0811 0.991013775    TRUE
#> 17     16           39  0.0381 0.996776597    TRUE
#> 18     17           40  0.0099 0.999003945    TRUE
#> 

# Mixed beta prior
predprob(
  x = 20, n = 23, Nmax = 40, p = 0.6, thetaT = 0.9,
  parE = rbind(c(1, 1), c(25, 15)),
  weights = c(3, 1)
)
#> $result
#> [1] 0.9874431
#> 
#> $table
#>    counts cumul_counts density posterior success
#> 1       0           23  0.0000 0.1560061   FALSE
#> 2       1           24  0.0000 0.2352310   FALSE
#> 3       2           25  0.0000 0.3303366   FALSE
#> 4       3           26  0.0000 0.4359140   FALSE
#> 5       4           27  0.0001 0.5449206   FALSE
#> 6       5           28  0.0003 0.6499804   FALSE
#> 7       6           29  0.0011 0.7446568   FALSE
#> 8       7           30  0.0031 0.8244101   FALSE
#> 9       8           31  0.0080 0.8870640   FALSE
#> 10      9           32  0.0177 0.9327462    TRUE
#> 11     10           33  0.0348 0.9634096    TRUE
#> 12     11           34  0.0613 0.9821219    TRUE
#> 13     12           35  0.0973 0.9923193    TRUE
#> 14     13           36  0.1394 0.9971675    TRUE
#> 15     14           37  0.1783 0.9991255    TRUE
#> 16     15           38  0.1964 0.9997794    TRUE
#> 17     16           39  0.1708 0.9999557    TRUE
#> 18     17           40  0.0913 0.9999932    TRUE
#>