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?