Skip to contents

Specifies 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 of theta_tv (larger for direction = "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, for direction = "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.

Value

An object of class c("qdm_criterion_posterior", "qdm_criterion").

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