diff --git a/NEWS.md b/NEWS.md
index 4591268a..8382f3bd 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -281,6 +281,14 @@
* Improvement: `?set_agd` states what an aggregate Poisson row assumes about
exposure, and the `shoulder` and `caries` help pages describe their
reference comparison as an estimate rather than a known truth.
+* Improvement: The README and vignettes state that ML-UMR is for single-arm
+ indirect comparisons of fully disconnected evidence, and that each worked
+ example builds hypothetical single-arm trials from randomized trials only to
+ illustrate the method; randomized trials connected through a common arm call
+ for ML-NMR or another appropriate method. `vignette("count-outcomes")` explains why its SPFA rate
+ ratio is the same in both populations and at every covariate profile (a
+ directly transportable effect), and the README states that the marginal
+ hazard ratio varies over time even when both studies share one baseline shape.
* Feature: New hex-sticker logo with a broken-anchor motif.
## Dependencies
diff --git a/README.md b/README.md
index 5353674c..c1bb2ba0 100644
--- a/README.md
+++ b/README.md
@@ -14,12 +14,13 @@
***mlumr*** implements Multilevel Unanchored Meta-Regression (ML-UMR), a
-population-adjusted indirect treatment comparison for *disconnected* evidence
-networks: individual patient data (IPD) for one treatment, aggregate data (AgD)
-for the comparator, and no common reference arm (e.g., comparing single-arm
-studies). It estimates treatment effects while adjusting for cross-trial
-differences in prognostic factors, extending Multilevel Network
-Meta-Regression (ML-NMR; Phillippo et al., 2020) to the unanchored setting.
+population-adjusted single-arm indirect treatment comparison for treatments
+from *fully disconnected* evidence: individual patient data (IPD) for one
+treatment, aggregate data (AgD) for the comparator, and no common reference arm
+(e.g., comparing single-arm studies). It estimates treatment effects while
+adjusting for cross-trial differences in prognostic factors, extending
+Multilevel Network Meta-Regression (ML-NMR; Phillippo et al., 2020) to the
+single-arm, fully unanchored setting.
It provides four estimators behind one data interface, two of them ML-UMR
variants:
@@ -27,11 +28,11 @@ variants:
- **ML-UMR** (Bayesian): the shared prognostic factor assumption (SPFA) model
and the relaxed SPFA model, fitted via Stan with quasi-Monte Carlo
integration and a Gaussian copula for population adjustment
-- **STC** (frequentist): one-arm simulated treatment comparison via
+- **STC** (frequentist): unanchored simulated treatment comparison via
comparator-population G-computation, with delta-method standard errors for
binary, continuous, and count outcomes and a nonparametric bootstrap for
time-to-event
-- **Naive** (benchmark): unadjusted comparison of crude outcome summaries
+- **Naive** (benchmark): unadjusted comparison of outcomes across studies
Binary, continuous, count, and time-to-event outcomes are supported.
@@ -141,12 +142,23 @@ Kaplan-Meier curves. Neither choice is assumption-free, so fit both and report
which was used.
After marginalization the hazard ratio is generally time-varying in the SPFA
-and relaxed models alike, because each arm weights the covariate distribution
-by its own survival and the two risk sets diverge; study-specific shapes add
-the ratio of the baselines on top of that. The scalar marginal hazard ratio is
-therefore its value at one time, chosen with `at_time`, and the primary
-reported estimand should be the `loghr` curve or the collapsible RMST effects.
-See `vignette("survival-outcomes")`.
+and relaxed models alike, and this holds even when both studies share one
+baseline shape (`aux_by = "none"`). A shared shape makes the *conditional*
+hazard ratio constant over time, but each arm's marginal hazard averages over
+the patients still at risk, and the two arms lose their high-risk patients at
+different rates, so the covariate mix of the two risk sets diverges: the hazard
+ratio is not collapsible. With a common Weibull shape of 1.5, one standard
+normal prognostic covariate with a log hazard ratio of 0.8 and a conditional
+hazard ratio of 0.50, for example, the marginal hazard ratio rises from 0.50 at
+the start of follow-up to 0.66 later on. It stays constant only when no
+covariate is prognostic or the treatments do not differ. Study-specific shapes
+add the ratio of the baselines on top of that. The scalar marginal hazard ratio
+is therefore its value at one time. With study-specific shapes that is the first
+prediction time or the time chosen with `at_time`; with a shared shape it is the
+`t -> 0` limit, the only `at_time` accepted is 0, and for an SPFA fit it equals
+the conditional hazard ratio. The primary reported estimand should be the
+`loghr` curve (`predict(type = "loghr")`) or the collapsible RMST effects. See
+`vignette("survival-outcomes")`.
```r
# Index IPD with a Surv outcome; comparator from a digitized KM curve
@@ -179,10 +191,10 @@ predict(fit, type = "rmst") # restricted mean survival time
| Method | Data required | Type of ITC | Pairwise only | Type of treatment effect | Target population |
|--------|:------------:|:----------:|:-------------:|:------------------------:|:------------------:|
-| MAIC | IPD + AgD | Anchored or unanchored | Yes | Marginal | Comparator |
-| STC | IPD + AgD | Unanchored | Yes | Marginal | Comparator |
+| MAIC | IPD + AgD | Anchored or fully unanchored (single-arm) | Yes | Marginal | Comparator |
+| STC | IPD + AgD | Anchored or fully unanchored (single-arm) | Yes | Marginal | Comparator |
| ML-NMR | IPD + AgD | Anchored | No | Marginal or conditional | Any pre-specified target |
-| **ML-UMR** | IPD + AgD | Unanchored | Yes | Marginal or conditional | Any pre-specified target |
+| **ML-UMR** | IPD + AgD | Fully unanchored (single-arm) | Yes | Marginal or conditional | Any pre-specified target |
The **index population is the decision-relevant target** in most health
technology assessment (HTA) settings:
@@ -200,10 +212,19 @@ assumptions, and adequate covariate overlap.
ML-UMR is most appropriate when:
1. You have IPD for one treatment and AgD for the comparator
-2. No common reference arm connects the evidence (unanchored)
+2. Indirectly comparing treatments from single-arm trials (i.e., fully
+ disconnected evidence where no common reference arm connects the evidence)
3. Binary, continuous, count, or time-to-event outcomes are of interest
4. Covariate distributions differ between trial populations
+ML-UMR should only be used for fully unanchored, single-arm comparisons.
+Randomized trials that share a common arm, or are otherwise connected, should
+never be broken into single-arm evidence to fit it: connected evidence calls for
+ML-NMR (for example with multinma) or another appropriate method. The vignettes'
+worked examples do exactly that, creating hypothetical single-arm trials from
+randomized trials by dropping a common reference arm or by treating a trial's
+arms as separate sources, only to illustrate the method.
+
## Key functions
| Function | Purpose |
@@ -264,14 +285,15 @@ For survival, `aux_by = NULL` resolves to `".study"`; the mlumr-specific
`aux_by = "none"` shares one baseline shape across both studies.
The cleanest practice is still to **use one package per session**, matched to
-the network type (anchored connected → multinma; unanchored disconnected →
-mlumr). When both must be attached, disambiguate with the namespace prefix:
+the evidence (anchored, connected network → multinma; single-arm, fully
+disconnected evidence → mlumr). When both must be attached, disambiguate with
+the namespace prefix:
```r
library(multinma)
library(mlumr)
-# mlumr fits ML-UMR (disconnected, two-trial)
+# mlumr fits ML-UMR (single-arm, fully disconnected evidence)
fit_umr <- mlumr::mlumr(dat, model = "spfa")
# multinma fits ML-NMR (connected network)
@@ -305,7 +327,7 @@ Detailed tutorials are available as package vignettes, in reading order:
- `vignette("fitting-and-diagnostics")`: sampler control, backends, priors,
and MCMC diagnostics
- `vignette("choosing-a-method")`: assumptions, model comparison, and a
- decision guide for ML-UMR vs STC vs naive
+ decision guide for ML-UMR vs STC vs naive in single-arm indirect comparisons
- `vignette("subgroup-identification")`: how many jointly defined aggregate
subgroup rows the relaxed model needs, the geometry those rows must have, and
how to read `check_identification()`
@@ -331,7 +353,8 @@ mlumr implements multilevel unanchored meta-regression (ML-UMR):
>
ML-UMR is an adaptation of multilevel network meta-regression (ML-NMR) to the
-unanchored case, where no common comparator arm links the two studies:
+single-arm, fully unanchored case, where no common comparator arm links the two
+studies:
> Phillippo, D. M., Dias, S., Ades, A. E., Belger, M., Brnabic, A.,
> Schacht, A., Saure, D., Kadziola, Z., & Welton, N. J. (2020).
diff --git a/_pkgdown.yml b/_pkgdown.yml
index 9fcd8534..4a3a1265 100644
--- a/_pkgdown.yml
+++ b/_pkgdown.yml
@@ -52,7 +52,7 @@ navbar:
- text: Methods
- text: Fitting, priors, and diagnostics
href: articles/fitting-and-diagnostics.html
- - text: "Choosing a method: ML-UMR, STC, and naive"
+ - text: "Choosing a method for single-arm indirect comparisons"
href: articles/choosing-a-method.html
- text: Aggregate subgroup information for the relaxed model
href: articles/subgroup-identification.html
diff --git a/inst/REFERENCES.bib b/inst/REFERENCES.bib
index ee1f565f..fecb4341 100644
--- a/inst/REFERENCES.bib
+++ b/inst/REFERENCES.bib
@@ -129,10 +129,12 @@ @Article{Leahy2019
}
@Misc{ChandlerIshakTransport,
- author = {Chandler, Conor and Ishak, K. Jack},
- title = {Reframing Population-Adjusted Indirect Comparisons as a Transportability Problem: An Estimand-Based Perspective and Implications for Health Technology Assessment},
- year = {2026},
- note = {Manuscript},
+ author = {Chandler, Conor and Ishak, K. Jack},
+ title = {Reframing Population-Adjusted Indirect Comparisons as a Transportability Problem: An Estimand-Based Perspective and Implications for Health Technology Assessment},
+ year = {2026},
+ howpublished = {Preprint},
+ doi = {10.48550/arXiv.2602.17041},
+ url = {https://arxiv.org/abs/2602.17041},
}
@Misc{ChandlerIshak2025,
diff --git a/vignettes/binary-outcomes.Rmd b/vignettes/binary-outcomes.Rmd
index 1ec163a4..c557a363 100644
--- a/vignettes/binary-outcomes.Rmd
+++ b/vignettes/binary-outcomes.Rmd
@@ -35,6 +35,14 @@ package [@multinma]). It is the unanchored, two-study analogue of multinma's
> possible, which is not the problem this vignette is about. The unanchored
> framing is a construction for illustration; the section *Checking against the
> anchored comparison* below puts the omitted arms back to use.
+>
+> **Hypothetical single-arm trials.** UNCOVER-2 and FIXTURE are randomized
+> trials. Dropping their common reference arms (placebo and etanercept) turns
+> them into hypothetical single-arm trials and leaves fully disconnected
+> evidence; we do this only to illustrate ML-UMR. In practice, randomized
+> trials should never be analyzed this way: ML-NMR (for example with
+> `multinma`) or another appropriate method should be used for them. ML-UMR
+> should only be used for fully unanchored, single-arm comparisons.
## The clinical question
diff --git a/vignettes/binary-outcomes.Rmd.orig b/vignettes/binary-outcomes.Rmd.orig
index a2974fb5..6499f47a 100644
--- a/vignettes/binary-outcomes.Rmd.orig
+++ b/vignettes/binary-outcomes.Rmd.orig
@@ -57,6 +57,14 @@ package [@multinma]). It is the unanchored, two-study analogue of multinma's
> possible, which is not the problem this vignette is about. The unanchored
> framing is a construction for illustration; the section *Checking against the
> anchored comparison* below puts the omitted arms back to use.
+>
+> **Hypothetical single-arm trials.** UNCOVER-2 and FIXTURE are randomized
+> trials. Dropping their common reference arms (placebo and etanercept) turns
+> them into hypothetical single-arm trials and leaves fully disconnected
+> evidence; we do this only to illustrate ML-UMR. In practice, randomized
+> trials should never be analyzed this way: ML-NMR (for example with
+> `multinma`) or another appropriate method should be used for them. ML-UMR
+> should only be used for fully unanchored, single-arm comparisons.
## The clinical question
diff --git a/vignettes/binary-outcomes.html b/vignettes/binary-outcomes.html
index 8edde31a..bd41c23e 100644
--- a/vignettes/binary-outcomes.html
+++ b/vignettes/binary-outcomes.html
@@ -396,6 +396,14 @@ Binary outcomes: an unanchored PASI 75
which is not the problem this vignette is about. The unanchored framing
is a construction for illustration; the section Checking against the
anchored comparison below puts the omitted arms back to use.
+Hypothetical single-arm trials. UNCOVER-2 and
+FIXTURE are randomized trials. Dropping their common reference arms
+(placebo and etanercept) turns them into hypothetical single-arm trials
+and leaves fully disconnected evidence; we do this only to illustrate
+ML-UMR. In practice, randomized trials should never be analyzed this
+way: ML-NMR (for example with multinma) or another
+appropriate method should be used for them. ML-UMR should only be used
+for fully unanchored, single-arm comparisons.
The clinical question
@@ -467,26 +475,23 @@
The ML-UMR model
unanchored STC. The estimators still differ: ML-UMR fits a joint
likelihood in which the aggregate outcome informs the comparator
intercept, whereas STC regresses on the IPD alone.)
-
library(mlumr)
-library(ggplot2)
-
-# IPD + AgD bundled with mlumr (copied from multinma's plaque_psoriasis, GPL-3).
-data("psoriasis_ipd")
-data("psoriasis_agd")
-
-covs <- c("age", "bsa", "weight", "prevsys") # adjustment set for this example
-
-# --- Index IPD: UNCOVER-2, ixekizumab Q4W -----------------------------------
-ipd <- psoriasis_ipd
-ipd$bsa <- ipd$bsa / 100 # body-surface area: % -> proportion
-ipd <- ipd[ipd$study == "UNCOVER-2" & ipd$treatment == "IXE_Q4W", ]
-ipd <- ipd[stats::complete.cases(ipd[, c("pasi75", covs)]), ]
-
-# --- Comparator AgD: FIXTURE, secukinumab 300 mg ----------------------------
-agd <- psoriasis_agd
-agd$bsa_mean <- agd$bsa_mean / 100
-agd$bsa_sd <- agd$bsa_sd / 100
-agd <- agd[agd$study == "FIXTURE" & agd$treatment == "SEC_300", ]
+
# IPD + AgD bundled with mlumr (copied from multinma's plaque_psoriasis, GPL-3).
+data("psoriasis_ipd")
+data("psoriasis_agd")
+
+covs <- c("age", "bsa", "weight", "prevsys") # adjustment set for this example
+
+# --- Index IPD: UNCOVER-2, ixekizumab Q4W -----------------------------------
+ipd <- psoriasis_ipd
+ipd$bsa <- ipd$bsa / 100 # body-surface area: % -> proportion
+ipd <- ipd[ipd$study == "UNCOVER-2" & ipd$treatment == "IXE_Q4W", ]
+ipd <- ipd[stats::complete.cases(ipd[, c("pasi75", covs)]), ]
+
+# --- Comparator AgD: FIXTURE, secukinumab 300 mg ----------------------------
+agd <- psoriasis_agd
+agd$bsa_mean <- agd$bsa_mean / 100
+agd$bsa_sd <- agd$bsa_sd / 100
+agd <- agd[agd$study == "FIXTURE" & agd$treatment == "SEC_300", ]
A glimpse of the individual patient data (one row per patient) and
the single aggregate comparator row:
knitr::kable(head(ipd[, c("study", "treatment", "pasi75", covs)]),
@@ -1793,7 +1798,7 @@ References
Chandler, Conor, and K. Jack Ishak. 2026. Reframing
Population-Adjusted Indirect Comparisons as a Transportability Problem:
An Estimand-Based Perspective and Implications for Health Technology
-Assessment.
+Assessment. Preprint. https://doi.org/10.48550/arXiv.2602.17041.
Gelman, Andrew, Aleks Jakulin, Maria Grazia Pittau, and Yu-Sung Su.
diff --git a/vignettes/choosing-a-method.Rmd b/vignettes/choosing-a-method.Rmd
index 6c884fdd..3a23cce6 100644
--- a/vignettes/choosing-a-method.Rmd
+++ b/vignettes/choosing-a-method.Rmd
@@ -1,5 +1,5 @@
---
-title: "Choosing a method: ML-UMR, STC, and naive"
+title: "Choosing a method for single-arm indirect comparisons: ML-UMR, STC, and naive"
output: rmarkdown::html_vignette
bibliography: ../inst/REFERENCES.bib
link-citations: yes
@@ -14,10 +14,15 @@ library(ggplot2)
options(mc.cores = parallel::detectCores())
```
-Unanchored indirect comparisons rest on strong, partly untestable assumptions,
-so running several methods and comparing them is itself a sensitivity analysis.
-mlumr offers four estimators behind one data interface; this vignette explains
-what each assumes, how to compare them, and which to report. For the mechanics of
+Every method in this vignette is a method for **single-arm indirect
+comparisons**: fully unanchored comparisons of fully disconnected evidence, where
+IPD for one treatment and AgD for the other share no common reference arm. If
+the evidence is connected through a common arm, none of them is the right tool;
+see the decision guide below. Single-arm indirect comparisons rest on strong,
+partly untestable assumptions, so running several methods and comparing them is
+itself a sensitivity analysis. mlumr offers four estimators for this setting
+behind one data interface; this vignette explains what each assumes, how to
+compare them, and which to report. For the mechanics of
fitting see `vignette("fitting-and-diagnostics")`; for family-specific worked
examples see the per-outcome vignettes. We illustrate with the real
plaque-psoriasis binary endpoint (PASI 75; UNCOVER-2 ixekizumab vs FIXTURE
@@ -26,7 +31,7 @@ secukinumab) [@Griffiths2015; @Langley2014].
| Method | Adjustment | Framework | Key assumption | Target population |
|--------|-----------|-----------|----------------|-------------------|
| Naive | none | frequentist | populations exchangeable | none (unstandardized contrast) |
-| STC | one-arm outcome regression (G-computation) | frequentist | correct, applicable IPD outcome model | comparator |
+| STC | unanchored outcome regression (G-computation) | frequentist | correct, applicable IPD outcome model | comparator |
| ML-UMR SPFA | joint Bayesian model | Bayesian | shared prognostic effects (SPFA) | index *and* comparator |
| ML-UMR relaxed | joint Bayesian model | Bayesian | correct + identified treatment-specific effects | index *and* comparator |
@@ -44,7 +49,17 @@ overlap, and the stated cross-treatment assumptions.
All four estimators run from the same `mlumr_data` object, so we build it once,
the plaque-psoriasis PASI 75 endpoint (UNCOVER-2 ixekizumab vs FIXTURE
-secukinumab) with three prognostic covariates:
+secukinumab) with three prognostic covariates.
+
+> **Hypothetical single-arm trials.** UNCOVER-2 and FIXTURE are randomized
+> trials. Dropping their common reference arms (placebo and etanercept) turns
+> them into hypothetical single-arm trials and leaves fully disconnected
+> evidence; we do this only to illustrate ML-UMR. In practice, randomized
+> trials should never be analyzed this way: ML-NMR (for example with
+> `multinma`) or another appropriate method should be used for them. ML-UMR
+> should only be used for fully unanchored, single-arm comparisons.
+
+The single-arm IPD and AgD for this comparison:
``` r
@@ -87,7 +102,7 @@ the distribution of a variable unrelated to the outcome does not by itself
induce bias. **STC** fits an
outcome regression on the IPD and predicts outcomes under the index treatment
in the comparator population by G-computation. The response-scale averaging
-follows Ren et al.'s one-arm unanchored STC and the marginalization order used
+follows Ren et al.'s unanchored single-arm STC and the marginalization order used
by Remiro-Azocar et al. [@Ren2024; @RemiroAzocar2022]. The non-survival
delta-method SE is conditional on the supplied
integration grid and reported covariate summaries; it does not reproduce Ren et
@@ -181,7 +196,7 @@ fit_relaxed <- mlumr(dat, model = "relaxed",
## A comparison table
-All four methods, on the **log odds ratio**. ML-UMR is reported in **both**
+All four single-arm methods, on the **log odds ratio**. ML-UMR is reported in **both**
target populations. STC has a comparator-population estimand by construction;
naive has no single standardized target and is labeled accordingly. Neither has
an index-population row to show. Which of them is
@@ -343,8 +358,10 @@ the comparator evidence and can be optimistic when the AgD is clustered.
1. **Is there a common comparator arm?** If the two trials share an arm, run an
*anchored* analysis instead: a network meta-analysis, or ML-NMR via
`multinma` when the populations differ. Randomization is doing work there
- that nothing below replaces. Reserve ML-UMR for evidence that is genuinely
- unanchored. `vignette("binary-outcomes")` and `vignette("survival-outcomes")`
+ that nothing below replaces, so trials connected through a common arm should
+ never be broken into single-arm evidence. Reserve ML-UMR, and every method in
+ this vignette, for single-arm indirect comparisons of fully disconnected
+ evidence. `vignette("binary-outcomes")` and `vignette("survival-outcomes")`
each end by restoring the common arm their example discards and checking the
unanchored answer against two anchored ones, a Bucher indirect comparison and
an ML-NMR fitted with `multinma`, each in both a prognostic-only and a
diff --git a/vignettes/choosing-a-method.Rmd.orig b/vignettes/choosing-a-method.Rmd.orig
index 21d2b760..20d3f341 100644
--- a/vignettes/choosing-a-method.Rmd.orig
+++ b/vignettes/choosing-a-method.Rmd.orig
@@ -1,5 +1,5 @@
---
-title: "Choosing a method: ML-UMR, STC, and naive"
+title: "Choosing a method for single-arm indirect comparisons: ML-UMR, STC, and naive"
output: rmarkdown::html_vignette
bibliography: ../inst/REFERENCES.bib
link-citations: yes
@@ -36,10 +36,15 @@ library(ggplot2)
options(mc.cores = parallel::detectCores())
```
-Unanchored indirect comparisons rest on strong, partly untestable assumptions,
-so running several methods and comparing them is itself a sensitivity analysis.
-mlumr offers four estimators behind one data interface; this vignette explains
-what each assumes, how to compare them, and which to report. For the mechanics of
+Every method in this vignette is a method for **single-arm indirect
+comparisons**: fully unanchored comparisons of fully disconnected evidence, where
+IPD for one treatment and AgD for the other share no common reference arm. If
+the evidence is connected through a common arm, none of them is the right tool;
+see the decision guide below. Single-arm indirect comparisons rest on strong,
+partly untestable assumptions, so running several methods and comparing them is
+itself a sensitivity analysis. mlumr offers four estimators for this setting
+behind one data interface; this vignette explains what each assumes, how to
+compare them, and which to report. For the mechanics of
fitting see `vignette("fitting-and-diagnostics")`; for family-specific worked
examples see the per-outcome vignettes. We illustrate with the real
plaque-psoriasis binary endpoint (PASI 75; UNCOVER-2 ixekizumab vs FIXTURE
@@ -48,7 +53,7 @@ secukinumab) [@Griffiths2015; @Langley2014].
| Method | Adjustment | Framework | Key assumption | Target population |
|--------|-----------|-----------|----------------|-------------------|
| Naive | none | frequentist | populations exchangeable | none (unstandardized contrast) |
-| STC | one-arm outcome regression (G-computation) | frequentist | correct, applicable IPD outcome model | comparator |
+| STC | unanchored outcome regression (G-computation) | frequentist | correct, applicable IPD outcome model | comparator |
| ML-UMR SPFA | joint Bayesian model | Bayesian | shared prognostic effects (SPFA) | index *and* comparator |
| ML-UMR relaxed | joint Bayesian model | Bayesian | correct + identified treatment-specific effects | index *and* comparator |
@@ -66,7 +71,17 @@ overlap, and the stated cross-treatment assumptions.
All four estimators run from the same `mlumr_data` object, so we build it once,
the plaque-psoriasis PASI 75 endpoint (UNCOVER-2 ixekizumab vs FIXTURE
-secukinumab) with three prognostic covariates:
+secukinumab) with three prognostic covariates.
+
+> **Hypothetical single-arm trials.** UNCOVER-2 and FIXTURE are randomized
+> trials. Dropping their common reference arms (placebo and etanercept) turns
+> them into hypothetical single-arm trials and leaves fully disconnected
+> evidence; we do this only to illustrate ML-UMR. In practice, randomized
+> trials should never be analyzed this way: ML-NMR (for example with
+> `multinma`) or another appropriate method should be used for them. ML-UMR
+> should only be used for fully unanchored, single-arm comparisons.
+
+The single-arm IPD and AgD for this comparison:
```{r data}
data("psoriasis_ipd") # bundled with mlumr (from multinma, GPL-3)
@@ -108,7 +123,7 @@ the distribution of a variable unrelated to the outcome does not by itself
induce bias. **STC** fits an
outcome regression on the IPD and predicts outcomes under the index treatment
in the comparator population by G-computation. The response-scale averaging
-follows Ren et al.'s one-arm unanchored STC and the marginalization order used
+follows Ren et al.'s unanchored single-arm STC and the marginalization order used
by Remiro-Azocar et al. [@Ren2024; @RemiroAzocar2022]. The non-survival
delta-method SE is conditional on the supplied
integration grid and reported covariate summaries; it does not reproduce Ren et
@@ -138,7 +153,7 @@ fit_relaxed <- mlumr(dat, model = "relaxed",
## A comparison table
-All four methods, on the **log odds ratio**. ML-UMR is reported in **both**
+All four single-arm methods, on the **log odds ratio**. ML-UMR is reported in **both**
target populations. STC has a comparator-population estimand by construction;
naive has no single standardized target and is labeled accordingly. Neither has
an index-population row to show. Which of them is
@@ -243,8 +258,10 @@ the comparator evidence and can be optimistic when the AgD is clustered.
1. **Is there a common comparator arm?** If the two trials share an arm, run an
*anchored* analysis instead: a network meta-analysis, or ML-NMR via
`multinma` when the populations differ. Randomization is doing work there
- that nothing below replaces. Reserve ML-UMR for evidence that is genuinely
- unanchored. `vignette("binary-outcomes")` and `vignette("survival-outcomes")`
+ that nothing below replaces, so trials connected through a common arm should
+ never be broken into single-arm evidence. Reserve ML-UMR, and every method in
+ this vignette, for single-arm indirect comparisons of fully disconnected
+ evidence. `vignette("binary-outcomes")` and `vignette("survival-outcomes")`
each end by restoring the common arm their example discards and checking the
unanchored answer against two anchored ones, a Bucher indirect comparison and
an ML-NMR fitted with `multinma`, each in both a prognostic-only and a
diff --git a/vignettes/choosing-a-method.html b/vignettes/choosing-a-method.html
index 81c93ab5..c31d82c0 100644
--- a/vignettes/choosing-a-method.html
+++ b/vignettes/choosing-a-method.html
@@ -12,7 +12,7 @@
-
Choosing a method: ML-UMR, STC, and naive
+Choosing a method for single-arm indirect comparisons: ML-UMR, STC, and naive