Provides comprehensive methods to calculate posterior probabilities,
posterior predictive probabilities, and Go/NoGo/Gray decision probabilities
for quantitative decision-making under a Bayesian paradigm in clinical trials.
The package supports both single and two-endpoint analyses for binary and
continuous outcomes, with controlled, uncontrolled, and external designs.
For single continuous endpoints, three calculation methods are
available: numerical integration (NI), Monte Carlo simulation (MC), and
Moment-Matching approximation (MM). For two continuous endpoints, a bivariate
Normal-Inverse-Wishart conjugate model is implemented with MC and MM methods.
For two binary endpoints, a Dirichlet-multinomial model is implemented.
External designs incorporate historical data through power priors
using exact conjugate representations (Normal-Inverse-Chi-squared for single
continuous, Normal-Inverse-Wishart for two continuous, and Dirichlet for
binary endpoints), enabling closed-form posterior computation without Markov
chain Monte Carlo (MCMC) sampling. This approach significantly reduces
computational burden while preserving complete Bayesian rigor. The package
also provides grid-search functions to find optimal Go and NoGo thresholds
that satisfy user-specified operating characteristic criteria for all
supported endpoint types and study designs. S3 print() and plot() methods
are provided for all decision probability classes, enabling formatted display
and visualisation of Go/NoGo/Gray operating characteristics across treatment
scenarios.
See Kang, Yamaguchi, and Han (2026)
BayesianQDM provides a comprehensive framework for Bayesian Quantitative Decision-Making in clinical trials. The package enables researchers to compute posterior probabilities, posterior predictive probabilities, and Go/NoGo/Gray decision probabilities for both single and two-endpoint analyses with binary and continuous outcomes. The package also provides functions to find optimal Go/NoGo thresholds that satisfy user-specified operating characteristic criteria.
install.packages("BayesianQDM")
# install.packages("devtools")
devtools::install_github("gosukehommaEX/BayesianQDM")
| Function | Description |
|---|---|
pbayespostpred1bin() |
Posterior or predictive probability for a single binary endpoint |
pbayespostpred1cont() |
Posterior or predictive probability for a single continuous endpoint |
pbayespostpred2bin() |
Joint region probabilities for two binary endpoints |
pbayespostpred2cont() |
Joint region probabilities for two continuous endpoints |
| Function | Description |
|---|---|
pbayesdecisionprob1bin() |
Go/NoGo/Gray probabilities for a single binary endpoint |
pbayesdecisionprob1cont() |
Go/NoGo/Gray probabilities for a single continuous endpoint |
pbayesdecisionprob2bin() |
Go/NoGo/Gray probabilities for two binary endpoints |
pbayesdecisionprob2cont() |
Go/NoGo/Gray probabilities for two continuous endpoints |
| Function | Description |
|---|---|
getgamma1bin() |
Find optimal Go/NoGo thresholds for a single binary endpoint |
getgamma1cont() |
Find optimal Go/NoGo thresholds for a single continuous endpoint |
getgamma2bin() |
Find optimal Go/NoGo thresholds for two binary endpoints |
getgamma2cont() |
Find optimal Go/NoGo thresholds for two continuous endpoints |
| Function | Description |
|---|---|
print.pbayesdecisionprob1bin() |
Print method for pbayesdecisionprob1bin objects |
print.pbayesdecisionprob1cont() |
Print method for pbayesdecisionprob1cont objects |
print.pbayesdecisionprob2bin() |
Print method for pbayesdecisionprob2bin objects |
print.pbayesdecisionprob2cont() |
Print method for pbayesdecisionprob2cont objects |
plot.pbayesdecisionprob1bin() |
Plot method for pbayesdecisionprob1bin objects |
plot.pbayesdecisionprob1cont() |
Plot method for pbayesdecisionprob1cont objects |
plot.pbayesdecisionprob2bin() |
Plot method for pbayesdecisionprob2bin objects |
plot.pbayesdecisionprob2cont() |
Plot method for pbayesdecisionprob2cont objects |
plot.getgamma1bin() |
Plot method for getgamma1bin objects |
plot.getgamma1cont() |
Plot method for getgamma1cont objects |
plot.getgamma2bin() |
Plot method for getgamma2bin objects |
plot.getgamma2cont() |
Plot method for getgamma2cont objects |
| Function | Description |
|---|---|
pbetadiff() |
CDF for the difference of two independent Beta distributions |
pbetabinomdiff() |
Beta-binomial posterior predictive probability |
ptdiff_NI() |
CDF for the difference of two t-distributions via numerical integration |
ptdiff_MC() |
CDF for the difference of two t-distributions via Monte Carlo simulation |
ptdiff_MM() |
CDF for the difference of two t-distributions via Moment-Matching approximation |
rdirichlet() |
Random sampler for the Dirichlet distribution |
getjointbin() |
Joint binary probability from marginals and correlation |
allmultinom() |
Enumerate all multinomial outcome combinations |
Standard randomised controlled trials with concurrent treatment and control groups.
Single-arm studies using a hypothetical control distribution specified through prior parameters or a variance scaling factor.
Incorporates historical or external control and/or treatment data through power priors using exact conjugate representations, enabling efficient Bayesian computation without MCMC sampling.
For single continuous endpoints, three methods are available for computing the CDF of the difference between two independent t-distributions:
stats::integrate)For two continuous endpoints, MC and MM methods are available for computing joint rectangular region probabilities under a bivariate t-distribution approximation.
The getgamma family of functions finds optimal Go threshold $\gamma_go$ and NoGo threshold $\gamma_nogo$ by grid search, given user-specified target operating characteristics (e.g., Pr(Go) and Pr(NoGo) under specified true parameter scenarios). The search follows a two-stage precompute-then-sweep strategy for computational efficiency.
The package includes detailed vignettes with practical examples:
Getting Started
Single Endpoint Analysis
Two Endpoint Analysis
Access vignettes locally after installation:
vignette(package = "BayesianQDM")
vignette("overview", package = "BayesianQDM")
vignette("single-binary", package = "BayesianQDM")
vignette("single-continuous", package = "BayesianQDM")
vignette("two-binary", package = "BayesianQDM")
vignette("two-continuous", package = "BayesianQDM")
Visit the pkgdown website for interactive documentation and the full function reference.
To cite BayesianQDM in publications, please use:
Homma, G., Yamaguchi, Y. (2025). BayesianQDM: Bayesian Quantitative
Decision-Making Framework for Binary and Continuous Endpoints.
R package version 0.1.0.
This package is licensed under GPL (>= 2).
To report bugs or request features, please visit our GitHub repository.