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:
- 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.
- 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 have arms. Arm in study contributes events out of participants (binary outcome). The treatment indicator for arm is where is the number of active treatments.
where:
- is the study-specific baseline log-odds (control arm)
- is the pooled log-OR for treatment vs control
- is a study-by-treatment random effect capturing heterogeneity
The for arms within the same study are correlated. bayesma uses an LKJ prior on the correlation matrix among random effects:
The LKJ prior with is uniform over correlation matrices. Larger concentrates mass near the identity (i.e., independent arms).
Continuous outcomes
For continuous outcomes the model is analogous with a normal likelihood:
Why the one-stage approach avoids unit-of-analysis error
In the one-stage model the control arm appears once per study (), and each active arm contributes an additional 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 .
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 (treatment vs control). Pairwise treatment contrasts can be derived from the joint posterior:
bayesma_extract(fit, contrast = c("treatment_a", "treatment_b"))Limitations
- The LKJ prior on has limited influence when the number of multiarm studies is small (). In this setting the within-study correlation is poorly estimated and the model reduces approximately to independent arm-level analyses.
- Models with many treatments () 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.
