Hi @guido-s ,
I am working on a jamovi meta-analysis module that uses meta package, and I noticed a possible labelling issue in the automatically generated smlab for forest.meta() with layout = "RevMan5" and layout = "BMJ".
For metabin(method = "MH"), the object stores:
m$method
# "MH"
m$method.random
# "Inverse"
The printed summary is clear about this:
Details of meta-analysis methods:
- Mantel-Haenszel method (common effect model)
- Inverse variance method (random effects model)
However, the generated smlab in the RevMan5/BMJ branches is built from x$method. So a random-effects-only forest plot can show:
although the random-effects method stored in the object is "Inverse".
Small reprex:
library(meta)
#> Loading required package: metabook
#> Warning: package 'metabook' was built under R version 4.5.3
#> Loading 'meta' package (version 8.5-1).
#> Type 'help(meta)' for a brief overview.
data(Fleiss1993bin)
m <- metabin(
d.asp, n.asp,
d.plac, n.plac,
data = Fleiss1993bin,
studlab = paste(study, year),
sm = "OR",
method = "MH",
common = TRUE,
random = TRUE
)
m$method
#> [1] "MH"
m$method.random
#> [1] "Inverse"
summary(m)
#> OR 95% CI %W(common) %W(random)
#> MRC-1 1974 0.7197 [0.4890; 1.0593] 3.2 9.3
#> CDP 1976 0.6808 [0.4574; 1.0132] 3.1 8.9
#> MRC-2 1979 0.8029 [0.6065; 1.0629] 5.7 14.2
#> GASP 1979 0.8007 [0.4863; 1.3186] 1.8 6.3
#> PARIS 1980 0.7981 [0.5526; 1.1529] 3.2 10.0
#> AMIS 1980 1.1327 [0.9347; 1.3728] 10.2 20.5
#> ISIS-2 1988 0.8950 [0.8294; 0.9657] 72.9 30.8
#>
#> Number of studies: k = 7
#> Number of observations: o = 28003 (o.e = 14186, o.c = 13817)
#> Number of events: e = 4414
#>
#> OR 95% CI z p-value
#> Common effect model 0.8969 [0.8405; 0.9570] -3.29 0.0010
#> Random effects model 0.8683 [0.7559; 0.9973] -2.00 0.0457
#>
#> Quantifying heterogeneity (with 95% CIs):
#> tau^2 = 0.0147 [0.0000; 0.1145]; tau = 0.1214 [0.0000; 0.3384]
#> I^2 = 39.7% [0.0%; 74.6%]; H = 1.29 [1.00; 1.99]
#>
#> Test of heterogeneity:
#> Q d.f. p-value
#> 9.95 6 0.1269
#>
#> Details of meta-analysis methods:
#> - Mantel-Haenszel method (common effect model)
#> - Inverse variance method (random effects model)
#> - Restricted maximum-likelihood estimator for tau^2
#> - Q-Profile method for confidence interval of tau^2 and tau
#> - Calculation of I^2 based on Q
forest(m, layout = "RevMan5", common = FALSE, random = TRUE)

Created on 2026-06-14 with reprex v2.1.1
This is mostly a special issue for Mantel-Haenszel in metabin(). When method = "MH", the common-effect estimate uses the Mantel-Haenszel method, but the random-effects estimate uses inverse-variance weighting. In most cases, the random-effects result is therefore the same as with method = "Inverse". The main exception is the Cochrane/RevMan-style case with method = "MH" and method.tau = "DL", where the Mantel-Haenszel estimate is used in the Q statistic for estimating tau-squared. The generated smlab does not currently reflect this distinction.
Would it make sense for the generated smlab to use x$method.random when only the random-effects model is printed? For example:
For plots showing both common and random models, I am less sure what the best design is. Maybe the generated smlab should show both methods when they differ, for example:
Fixed: MH + Random: IV, 95% CI
There is also a small related issue: the same method-label map does not include SSW, although SSW is available in metabin(). It may also be worth adding LRP if this map is intended to cover all current binary methods.
I understand this is partly a design choice. If you think this direction is acceptable, I would be happy to open a pull request.
Hi @guido-s ,
I am working on a jamovi meta-analysis module that uses
metapackage, and I noticed a possible labelling issue in the automatically generatedsmlabforforest.meta()withlayout = "RevMan5"andlayout = "BMJ".For
metabin(method = "MH"), the object stores:The printed summary is clear about this:
However, the generated
smlabin the RevMan5/BMJ branches is built fromx$method. So a random-effects-only forest plot can show:although the random-effects method stored in the object is
"Inverse".Small reprex:
Created on 2026-06-14 with reprex v2.1.1
This is mostly a special issue for Mantel-Haenszel in
metabin(). Whenmethod = "MH", the common-effect estimate uses the Mantel-Haenszel method, but the random-effects estimate uses inverse-variance weighting. In most cases, the random-effects result is therefore the same as withmethod = "Inverse". The main exception is the Cochrane/RevMan-style case withmethod = "MH"andmethod.tau = "DL", where the Mantel-Haenszel estimate is used in the Q statistic for estimating tau-squared. The generatedsmlabdoes not currently reflect this distinction.Would it make sense for the generated
smlabto usex$method.randomwhen only the random-effects model is printed? For example:For plots showing both common and random models, I am less sure what the best design is. Maybe the generated
smlabshould show both methods when they differ, for example:There is also a small related issue: the same method-label map does not include
SSW, althoughSSWis available inmetabin(). It may also be worth addingLRPif this map is intended to cover all current binary methods.I understand this is partly a design choice. If you think this direction is acceptable, I would be happy to open a pull request.