
Decision criterion based on posterior probability
Source:R/criterion_posterior.R
criterion_posterior.RdSpecifies a Go/NoGo decision criterion based on the posterior probability of the treatment effect \(\theta\) (the difference between the treatment and control groups, or their hazard ratio for a time-to-event endpoint) given the proof-of-concept data \(D\).
Usage
criterion_posterior(
theta_tv,
theta_mav,
gamma_go,
gamma_nogo,
go_regions = 1L,
nogo_regions = 9L,
rule = c("joint", "and", "or"),
direction = "greater"
)Arguments
- theta_tv
Target value (TV) of the treatment effect: a number for one endpoint or a numeric vector of length 2 for two endpoints.
- theta_mav
Minimum acceptable value (MAV) of the treatment effect, of the same length as
theta_tv. Each element must be smaller than the corresponding element oftheta_tv(larger fordirection = "less").- gamma_go
Probability threshold for the Go criterion, strictly between 0 and 1. With
rule = "and"or"or", one threshold per endpoint (a single number is used for both).- gamma_nogo
Probability threshold for the NoGo criterion, strictly between 0 and 1, given in the same way as
gamma_go.- go_regions
Region numbers (from 1 to 9) forming the Go region for two endpoints with
rule = "joint". Ignored for one endpoint. The default, region 1, requires both effects to be beyond their target values in the favorable direction.- nogo_regions
Region numbers (from 1 to 9) forming the NoGo region for two endpoints with
rule = "joint". Ignored for one endpoint. The default, region 9, requires both effects to be at most their minimum acceptable values (at least, fordirection = "less").- rule
For two endpoints,
"joint"(the default; probabilities of unions of regions),"and"or"or"(marginal probabilities of each endpoint, combined with AND or OR). Ignored for one endpoint.- direction
"greater"(the default) if larger treatment effects are favorable, or"less"if smaller effects are favorable. For two endpoints, a single value for both or one value per endpoint.
Details
For one endpoint, the Go region is \(\theta > \theta_{TV}\) and the NoGo region is \(\theta \le \theta_{MAV}\). The Go criterion is \(\Pr(\theta > \theta_{TV} \mid D) \ge \gamma_{go}\) and the NoGo criterion is \(\Pr(\theta \le \theta_{MAV} \mid D) \ge \gamma_{nogo}\). In the notation of Kang et al. (2026), where the NoGo criterion is \(\Pr(\theta > \theta_{MAV} \mid D) \le \gamma_2\), this corresponds to \(\gamma_{nogo} = 1 - \gamma_2\).
By default, larger effects are favorable (direction = "greater",
with \(\theta_{TV} > \theta_{MAV}\)), as for most efficacy endpoints.
For an endpoint on which smaller effects are favorable, such as the rate
of an adverse event or a hazard ratio, direction = "less" reverses
the inequalities (with \(\theta_{TV} < \theta_{MAV}\)): the Go region
is \(\theta < \theta_{TV}\), the NoGo region is
\(\theta \ge \theta_{MAV}\), and the criteria are
\(\Pr(\theta < \theta_{TV} \mid D) \ge \gamma_{go}\) and
\(\Pr(\theta \ge \theta_{MAV} \mid D) \ge \gamma_{nogo}\).
For two endpoints, the target values and minimum acceptable values divide
the plane of \((\theta_1, \theta_2)\) into nine regions (see
qdm_regions). The Go criterion is that the posterior
probability of the union of go_regions is at least
\(\gamma_{go}\), and the NoGo criterion is that the posterior probability
of the union of nogo_regions is at least \(\gamma_{nogo}\)
(Yamaguchi et al., submitted, equations 2 and 3). With rule = "and"
or "or", the criteria are instead based on the marginal posterior
probabilities of each endpoint (equations 4 and 5): the Go criterion is
\(\Pr(\theta_1 > \theta_{TV1} \mid D) \ge \gamma_{go1}\) and (or)
\(\Pr(\theta_2 > \theta_{TV2} \mid D) \ge \gamma_{go2}\), and the NoGo
criterion is \(\Pr(\theta_1 \le \theta_{MAV1} \mid D) \ge
\gamma_{nogo1}\) and (or)
\(\Pr(\theta_2 \le \theta_{MAV2} \mid D) \ge \gamma_{nogo2}\).
With two endpoints, direction can differ between the endpoints,
for example an efficacy endpoint ("greater") and a safety endpoint
("less"). The regions are then defined on the favorable side of
each endpoint: region 1 has both effects beyond their target values in
the favorable direction (see qdm_regions).
The decision is Go if only the Go criterion is met, NoGo if only the NoGo criterion is met, Gray if neither is met, and Miss if both are met. For one endpoint, Miss can occur only when \(\gamma_{go} + \gamma_{nogo} \le 1\).
References
Kang, R., Yamaguchi, Y. and Han, C. (2026). Bayesian quantitative decision-making framework in cell and gene therapy development for rare diseases. Journal of Biopharmaceutical Statistics. doi:10.1080/10543406.2026.2655410
Yamaguchi, Y., Hu, H., Huang, Y., Han, C., Homma, G. and Wang, A. (submitted). Bivariate Bayesian quantitative decision-making for two endpoints in rare disease drug development.
See also
Other criteria:
criterion_predictive()
Examples
# One endpoint
criterion_posterior(theta_tv = 0.2, theta_mav = 0.1,
gamma_go = 0.5, gamma_nogo = 0.8)
#> Posterior probability criterion
#> Go: P(theta > 0.2 | data) >= 0.5
#> NoGo: P(theta <= 0.1 | data) >= 0.8
# Two endpoints
criterion_posterior(theta_tv = c(0.2, 0.15), theta_mav = c(0.1, 0.05),
gamma_go = 0.3, gamma_nogo = 0.4)
#> Posterior probability criterion
#> Go: P(regions {1} | data) >= 0.3
#> NoGo: P(regions {9} | data) >= 0.4
#> TV = (0.20, 0.15), MAV = (0.10, 0.05)
# Two endpoints, marginal criteria combined with AND
criterion_posterior(theta_tv = c(0.2, 0.15), theta_mav = c(0.1, 0.05),
gamma_go = c(0.6, 0.5), gamma_nogo = 0.7, rule = "and")
#> Posterior probability criterion, marginal rule "and"
#> Go: P(theta1 > 0.2 | data) >= 0.6 and P(theta2 > 0.15 | data) >= 0.5
#> NoGo: P(theta1 <= 0.1 | data) >= 0.7 and P(theta2 <= 0.05 | data) >= 0.7
# Rate of an adverse event: Go if it is likely to be reduced by more than
# 0.1, NoGo if it is likely not to be reduced
criterion_posterior(theta_tv = -0.1, theta_mav = 0, gamma_go = 0.6,
gamma_nogo = 0.7, direction = "less")
#> Posterior probability criterion
#> Go: P(theta < -0.1 | data) >= 0.6
#> NoGo: P(theta >= 0 | data) >= 0.7
# Efficacy (larger is better) and safety (smaller is better) endpoints
criterion_posterior(theta_tv = c(0.2, -0.1), theta_mav = c(0.1, 0),
gamma_go = 0.5, gamma_nogo = 0.5,
direction = c("greater", "less"))
#> Posterior probability criterion
#> Go: P(regions {1} | data) >= 0.5
#> NoGo: P(regions {9} | data) >= 0.5
#> TV = (0.2, -0.1), MAV = (0.1, 0.0)
#> Favorable direction: theta1 greater, theta2 less