Skip to content
Prev 2466 / 5636 Next

[R-meta] rma, sandwich correction and very small data sets

Dear Valeria,

Unless you have very good reasons to assume that estimates within studies are homogeneous, you should always add a random effect at the estimate level to the model. See:

http://www.metafor-project.org/doku.php/analyses:konstantopoulos2011

and esp. the "A Common Mistake in the Three-Level Model" section.

So, I would do:

wb$ID_estimate <- 1:nrow(wb)

random = list(~ 1 | ID_estimate, ~ 1 | ID_study, ~ 1 | ID_database)

Also, if you use data=wb, you do not need wb$ in the model call.

Finally, SE_Influence sounds like this is a variable for the standard errors. The second argument of rma.mv() is for specifying the sampling *variances* (or an entire var-cov matrix).

So, to summarize:

eff1 <- rma.mv(yi=EFFECT_SIZE_Influence, V=SE_Influence^2, 
               random = list(~ 1 | ID_estimate, ~ 1 | ID_study, ~ 1 | ID_database), 
               tdist=TRUE, data=wb)

However, with the number of levels you show, I would indeed be worried about fitting such a complex model with so little data. You won't get precise estimates of the variance components and hence they can be all over the place.

Also, cluster-robust inference methods work asymptotically, that is, when the number of levels of the clustering variable gets large. With 5 or 7 levels for 'databases', I would say we are rather far away from 'asymptotically'. The clubSandwich package you are using for this includes small-sample corrections which should help a but, but I would still question the use of such methods with such low k at the clustering level. Maybe James Pustejovsky (the author of clubSandwich) can chime in here.

As for combining the results of multiple (independent) meta-analyses, see:

http://www.metafor-project.org/doku.php/tips:comp_two_independent_estimates

Best,
Wolfgang