[R-meta] [metafor] Mantel-Haenszel method - rma.mh vs meta(metabin)

Viechtbauer, Wolfgang (NP) wo||g@ng@v|echtb@uer @end|ng |rom m@@@tr|chtun|ver@|ty@n|
Tue Jan 31 20:08:09 CET 2023


Very nice, thanks for clarifying!

Best,
Wolfgang

>-----Original Message-----
>From: R-sig-meta-analysis [mailto:r-sig-meta-analysis-bounces using r-project.org] On
>Behalf Of Dr. Guido Schwarzer
>Sent: Tuesday, 31 January, 2023 15:18
>To: marc.harms using mh-analytics.eu; r-sig-meta-analysis using r-project.org
>Subject: Re: [R-meta] [metafor] Mantel-Haenszel method - rma.mh vs meta(metabin)
>
>Hi,
>
>The difference is actually due to using the Paule-Mandel estimator in metabin() -
>argument 'method.tau = "PM"' and the REML estimator in rma() - missing argument
>'method' which by default is equal to "REML".
>
>Using argument 'addyi = FALSE' in escalc() as suggested by Wolfgang and 'method =
>"PM"' in rma(), you get the exact same results (R code is provided below).
>
>In metabin(), the random effects version of the MH method is only used for the
>DerSimonian-Laird estimator (method.tau = "DL"). Like RevMan 5, the heterogeneity
>statistic Q  is then based on the MH estimator which is the main input to the
>DerSimonian-Laird estimator. This behaviour can be changed using argument
>'Q.Cochrane = FALSE'. I just noticed that this point is not clear on the help
>page for 'meta-package'. I will add some details on this.
>
>Best wishes,
>Guido
>
>
>library(readxl)
>library(meta)
>library(metafor)
>
>df <- read_xlsx("Breast-Cancer-SLN-detection-RD-Jan2023-2.xlsx")
>
>m.sln <- metabin(event.e = ICG_pos, n.e = ICG_total,
>  event.c = RI_pos, n.c = RI_total,
>  studlab = paste(Study, Year, sep = ", "), data = df,
>  sm = "RD", common = FALSE,
>  method.tau = "PM", method.random.ci = "HK",
>  title = "SLN detection rate")
>##
>m.sln$Q.Cochrane
>
>dat <- escalc(measure = "RD",
>  ai = ICG_pos, ci = RI_pos, n1i = ICG_total, n2i = RI_total,
>  slab = paste(Study, Year, sep = ", "),
>  addyi = FALSE, data = df)
>##
>summary(dat$yi - m.sln$TE)
>summary(dat$vi - m.sln$seTE^2)
>
>res <- rma(dat, method = "PM", test = "knha")
>
>m.sln$tau^2
>res$tau2
>
>data.frame(lower = round(m.sln$lower.random, 4),
>  upper = round(m.sln$upper.random, 4))
>predict(res)



More information about the R-sig-meta-analysis mailing list