Skip to contents

Specifies a proof-of-concept study with one normally distributed endpoint: the sample sizes, the prior distributions, the external data, the form of the control group, the decision criterion and the method used to compute the probabilities. The design is used by qdm_decide, qdm_oc and qdm_calibrate.

Usage

design_continuous(
  n_t,
  n_c,
  prior_t,
  prior_c = NULL,
  criterion,
  external_t = NULL,
  external_c = NULL,
  hypothetical_c = NULL,
  fixed_c = NULL,
  method = c("NI", "MM", "MC"),
  nMC = 10000L
)

Arguments

n_t

Number of subjects in the treatment group (a whole number of at least 2).

n_c

Number of subjects in the concurrent control group: 0 (no concurrent control group) or a whole number of at least 2.

prior_t, prior_c

Prior distributions of the mean and variance of the treatment and control groups, created by prior_nix or prior_vague. prior_c must be NULL (the default) for a hypothetical or fixed control and is required otherwise.

criterion

Decision criterion for one endpoint, created by criterion_posterior or criterion_predictive. Its argument direction sets whether larger or smaller effects are favorable.

external_t, external_c

External data of the treatment and control groups, created by borrow with data_continuous, or NULL (no external data).

hypothetical_c

Hypothetical control, created by hypothetical with mean (of length 1) and r, or NULL. It can be used only when n_c = 0.

fixed_c

Fixed control mean, a number, or NULL. It can be used only when n_c = 0.

method

Method used to compute the probabilities: "NI" (numerical integration, the default), "MM" (moment-matching approximation, which requires the distributions of both group means to have more than 4 degrees of freedom) or "MC" (Monte Carlo simulation). See ptdiff. Numerical integration is exact up to a small numerical error but is the slowest of the deterministic methods: for operating characteristics, which need the probabilities for many simulated studies, "MM" is faster by about two orders of magnitude and is suited to exploring designs, and "NI" can be used to confirm the chosen design. The computing time of "MC" is proportional to nMC.

nMC

Number of Monte Carlo draws for method = "MC".

Value

An object of class c("qdm_design_continuous", "qdm_design"), a list with the arguments and the element control ("concurrent", "external", "hypothetical" or "fixed").

Details

The outcomes of group \(k\) (\(k = t, c\)) follow \(N(\mu_k, \sigma_k^2)\), and the treatment effect is \(\theta = \mu_t - \mu_c\). With the Normal-Inverse-chi-squared prior (prior_nix), the posterior distribution of \((\mu_k, \sigma_k^2)\) is Normal-Inverse-chi-squared with parameters \((\mu_{nk}, \kappa_{nk}, \nu_{nk}, \sigma_{nk}^2)\), and the posterior distribution of the mean is \(t_{\nu_{nk}}(\mu_{nk}, \sigma_{nk}^2 / \kappa_{nk})\). With the vague prior (prior_vague) and \(n_k\) subjects with sample mean \(\bar y_k\) and standard deviation \(s_k\), it is \(t_{n_k - 1}(\bar y_k, s_k^2 / n_k)\).

External data enter through a power prior with weight \(a_0\): data with \(n_e\) subjects, mean \(\bar y_e\) and standard deviation \(s_e\) are combined with the prior as if they were \(a_0 n_e\) subjects with the same mean and the sum of squares \(a_0 (n_e - 1) s_e^2\). The posterior distribution then has a closed form (Huang et al., submitted). With the vague prior and external data, the posterior distribution of the mean has \(a_0 n_e + n_k - 1\) degrees of freedom.

The control group takes one of four forms.

Concurrent control

n_c is at least 2. External control data can be added through external_c.

External control only

n_c = 0 and external_c is given. The distribution of \(\mu_c\) is the posterior distribution given the external control data. With the vague prior, \(a_0 n_e\) must be greater than 1.

Hypothetical control

n_c = 0 and hypothetical_c is given by hypothetical(mean = mu0c, r = r). Following Kang et al. (2026, Section 4.2.4), the control mean has the same t distribution as the posterior distribution of the treatment mean, with location \(\mu_{0c}\) and squared scale multiplied by \(r\): \(\mu_c \sim t_{\nu_{nt}}(\mu_{0c}, r \sigma_{nt}^2 / \kappa_{nt})\). prior_c is not used and must be NULL.

Fixed control

n_c = 0 and fixed_c is given: the control mean is a known value \(\mu_c\), as in a single-arm study compared with a benchmark. The probabilities of the Go and NoGo regions are computed exactly from the t distribution of the treatment mean (posterior) or of the mean of \(m_t\) future subjects (posterior predictive), shifted by \(\mu_c\); method, nMC and m_c are not used. prior_c is not used and must be NULL.

For the posterior predictive criterion (criterion_predictive), the future effect is the difference between the sample means of \(m_t\) and \(m_c\) future subjects. The posterior predictive distribution of the mean of \(m\) future subjects of a group is \(t_{\nu_{n}}(\mu_{n}, \sigma_{n}^2 (1 / \kappa_{n} + 1 / m))\); for a hypothetical control it is \(t_{\nu_{nt}}(\mu_{0c}, r \sigma_{nt}^2 (1 / \kappa_{nt} + 1 / m_c))\).

The probabilities of the Go and NoGo regions are probabilities of the difference of two t variables, computed by ptdiff with the chosen method. With method = "MC", the probabilities of the two regions are estimated from the same nMC draws.

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

Huang, Y., Yamaguchi, Y., Homma, G., Takeda, K. and Maruo, K. (submitted). Conjugate representation of power priors for efficient Bayesian analysis of normal data.

Examples

# Concurrent control with external treatment and control data
design_continuous(
  n_t = 12, n_c = 12,
  prior_t = prior_vague(), prior_c = prior_vague(),
  criterion = criterion_posterior(theta_tv = 30, theta_mav = 15,
                                  gamma_go = 0.6, gamma_nogo = 0.7),
  external_t = borrow(data_continuous(n = 6, mean = 20, sd = 30), a0 = 0.5),
  external_c = borrow(data_continuous(n = 30, mean = -12, sd = 20),
                      a0 = 0.4)
)
#> Design: one continuous endpoint
#>   Treatment: n = 12, prior Vague
#>     External data: continuous, n = 6, mean = 20, sd = 30, a0 = 0.5
#>   Control: concurrent, n = 12, prior Vague
#>     External data: continuous, n = 30, mean = -12, sd = 20, a0 = 0.4
#> Posterior probability criterion
#>   Go:   P(theta > 30 | data) >= 0.6
#>   NoGo: P(theta <= 15 | data) >= 0.7
#> Probabilities: numerical integration

# Uncontrolled study with a hypothetical control
design_continuous(
  n_t = 12, n_c = 0, prior_t = prior_vague(),
  criterion = criterion_predictive(theta_null = 0, m_t = 50,
                                   gamma_go = 0.9, gamma_nogo = 0.7),
  hypothetical_c = hypothetical(mean = -10, r = 1),
  method = "MM"
)
#> Design: one continuous endpoint
#>   Treatment: n = 12, prior Vague
#>   Control: hypothetical
#>     Hypothetical control: mean = (-10), r = 1
#> Posterior predictive probability criterion (m_t = 50, m_c = 50)
#>   Go:   P(future theta > 0 | data) >= 0.9
#>   NoGo: P(future theta <= 0 | data) >= 0.7
#> Probabilities: moment-matching approximation

# Single-arm study compared with a fixed control mean of -10
design_continuous(
  n_t = 12, n_c = 0, prior_t = prior_vague(),
  criterion = criterion_posterior(theta_tv = 30, theta_mav = 15,
                                  gamma_go = 0.6, gamma_nogo = 0.7),
  fixed_c = -10
)
#> Design: one continuous endpoint
#>   Treatment: n = 12, prior Vague
#>   Control: fixed value -10
#> Posterior probability criterion
#>   Go:   P(theta > 30 | data) >= 0.6
#>   NoGo: P(theta <= 15 | data) >= 0.7
#> Probabilities: exact computation (fixed control)