ADR 0005: Mantel-Haenszel risk difference¶
- Status: Accepted
- Date: 2026-08-13
- Supersedes: the RD exclusion from the Mantel-Haenszel scope in ADR 0002
Context¶
ADR 0002 limited Mantel-Haenszel pooling to common-effect odds ratios and risk ratios while the risk-difference estimator and its variance convention were still undecided. This left inverse variance as the only pooling method for RD, although conventional R implementations provide a common-effect MH RD.
The point estimator is straightforward, but several variance estimators have appeared in the literature. The selected rule must work under both large- stratum and sparse-data limiting models, preserve treatment/control symmetry, and remain explicit in reports and cross-software validation.
Decision¶
PyMetaAnalysis supports measure="RD", method="MH", model="common". With
treatment total n1_i, control total n0_i, total N_i, and
w_i = n1_i n0_i / N_i, the estimate is:
RD_i = a_i / n1_i - c_i / n0_i
RD_MH = sum(w_i RD_i) / sum(w_i)
The normal confidence interval uses the Sato-Greenland-Robins sampling
variance. The resolved method options record
mh_rd_variance="Sato-Greenland-Robins".
Raw tables are used for MH pooling by default. mh_continuity_correction and
mh_correction_scope remain the only settings that alter MH pooling tables;
the separate study-effect correction continues to control displayed study
uncertainty and the inverse-variance heterogeneity calculation. The existing
rd_zero_variance policy determines whether boundary studies enter all
synthesis calculations. A non-positive pooled Sato variance raises a domain
error instead of silently adding a correction.
Random-effects MH remains unsupported. Random-effects RD continues to use inverse-variance pooling with an explicit tau-squared estimator.
Validation¶
- direct formula tests cover the estimate, Sato variance, weights, and normal interval;
- treatment/control swaps negate the estimate and mirror its interval without changing the standard error;
- row reordering and common count scaling preserve the expected invariants;
- extreme finite counts exercise the overflow-safe scaled implementation;
- boundary-policy, explicit-correction, subgroup, leave-one-out, and cumulative paths are covered; and
- fixed-version
metafor::rma.mh(measure="RD")fixtures cover ordinary, sparse, and explicitly corrected tables.
Consequences¶
- common-effect OR, RR, and RD all support MH or inverse-variance pooling;
- study-table MH weights for RD are proportional to
n1_i n0_i / N_i; - the selected RD variance convention is recoverable from method metadata and generated reports; and
- documentation must continue to distinguish MH RD from random-effects IV RD.