I'm wondering why I get slightly different estimates for a meta-analyzed set of effect sizes, when using the rma.mv function from the metafor package, compared to the meta3 function from the metaSEM package.
Here's a reproducible example:
#Install and call both packages
install.packages("metafor")
install.packages("metaSEM")
library(metafor)
library(metaSEM)
#Use example dataset from metafor package
dat <- get(data(dat.konstantopoulos2011))
#Fit multilevel meta model, with effect sizes nested in district
#Use maximum likelihood estimator (default is REML, but meta3 uses ML)
res <- rma.mv(yi, vi, random = ~ 1 | district, data=dat, method = "ML")
summary(res)
#Fit multilevel meta model, with effect sizes nested in district
res.alt = meta3(y = yi, v = vi, cluster = district, data=dat)
summary(res.alt)
Both approaches should be able to account for dependency between effect sizes in the dataset--in this example, they are standardized mean differences nested within school district.
But while I understand that rma.mv fits a 2-level model, and meta3 fits a three level model, I don't understand why the estimated mean effect size differs between the two approaches. Shouldn't the 3-level model just further partition the variance component from the 2-level model into an additional source? Why is the estimated mean also impacted?
At a more applied level, I suppose I am also wondering: how does one choose between the two approaches, when wanting to meta-analyze nested effect sizes?