Skip to contents

Introduction

A multiarm (or multi-treatment) trial assigns participants to three or more arms — typically a control and two or more active interventions. Including multiarm studies in a pairwise meta-analysis raises two problems:

  1. Unit of analysis error. Using each active arm as a separate comparison to control double-counts the shared control arm, inflating precision and producing correlated residuals.
  2. Missing comparisons. If only one arm-pair is extracted, information from the other arms is discarded.

The one-stage approach in bayesma handles both problems by modelling the full multiarm data structure jointly.

Model specification

Let study ii have AiA_i arms. Arm jj in study ii contributes rijr_{ij} events out of nijn_{ij} participants (binary outcome). The treatment indicator for arm jj is tij{0,1,,T}t_{ij} \in \{0, 1, \ldots, T\} where TT is the number of active treatments.

rijBinomial(nij,πij) r_{ij} \sim \text{Binomial}(n_{ij},\, \pi_{ij})

logit(πij)=γi+t=1Tθt𝟙[tij=t]+ϵij \text{logit}(\pi_{ij}) = \gamma_i + \sum_{t=1}^{T} \theta_t \cdot \mathbb{1}[t_{ij} = t] + \epsilon_{ij}

where:

  • γi\gamma_i is the study-specific baseline log-odds (control arm)
  • θt\theta_t is the pooled log-OR for treatment tt vs control
  • ϵij\epsilon_{ij} is a study-by-treatment random effect capturing heterogeneity

The ϵij\epsilon_{ij} for arms within the same study are correlated. bayesma uses an LKJ prior on the correlation matrix Ω\Omega among random effects:

𝛜i𝒩(𝟎,diag(𝛕)Ωdiag(𝛕)) \boldsymbol{\epsilon}_i \sim \mathcal{N}(\mathbf{0},\, \text{diag}(\boldsymbol{\tau}) \cdot \Omega \cdot \text{diag}(\boldsymbol{\tau}))

ΩLKJ(η) \Omega \sim \text{LKJ}(\eta)

The LKJ prior with η=1\eta = 1 is uniform over correlation matrices. Larger η\eta concentrates mass near the identity (i.e., independent arms).

Continuous outcomes

For continuous outcomes the model is analogous with a normal likelihood:

yij𝒩(γi+tθt𝟙[tij=t]+ϵij,σ2) y_{ij} \sim \mathcal{N}(\gamma_i + \sum_t \theta_t \cdot \mathbb{1}[t_{ij} = t] + \epsilon_{ij},\, \sigma^2)

Why the one-stage approach avoids unit-of-analysis error

In the one-stage model the control arm appears once per study (γi\gamma_i), and each active arm contributes an additional θt+ϵij\theta_t + \epsilon_{ij} term. The shared control arm enters the likelihood a single time, so its contribution to precision is not double-counted. The within-study correlation between arm-level estimates is handled through the covariance structure of 𝛜i\boldsymbol{\epsilon}_i.

Fitting multiarm models

fit <- bayesma(
  data,
  model_type = "random_effect",
  stage      = "one_stage",
  multiarm   = TRUE,
  rho_prior  = lkj(eta = 1)
)

The multiarm = TRUE flag activates the correlated random-effects structure. The data must include a arm column identifying each arm and a treatment column coding the treatment label.

Estimands from multiarm models

bayesma() returns a posterior for each θt\theta_t (treatment vs control). Pairwise treatment contrasts θaθb\theta_a - \theta_b can be derived from the joint posterior:

bayesma_extract(fit, contrast = c("treatment_a", "treatment_b"))

Limitations

  • The LKJ prior on Ω\Omega has limited influence when the number of multiarm studies is small (<5< 5). In this setting the within-study correlation is poorly estimated and the model reduces approximately to independent arm-level analyses.
  • Models with many treatments (T>4T > 4) may be better handled by network meta-analysis frameworks (e.g., gemtc, multinma).
  • Multiarm models are computationally heavier than pairwise models due to the correlation matrix. Increase adapt_delta (default 0.95 for multiarm) if divergent transitions occur.