Skip to content
Prev 315928 / 398503 Next

mixed effects meta-regression: nlme vs. metafor

Hello Christian,

First of all, it's good to see that you are well aware of the fact that lme() without lmeControl(sigma=1) will lead to the estimation of the residual variance component, which implies that the sampling variances specified via varFixed() are only assumed to be known up to a proportionality constant -- however, in the usual meta-analytic models, we assume that the sampling variances are exactly known. In fact, trying to disentangle that residual variance component from any random study effects is usually next to impossible. I mention this explicitly one more time, because I have seen some publications using lme() in exactly this way ...

Indeed, lmeControl(sigma=1) is an option only available in (at least some versions of) S-Plus (I know that it is available in version 6). Of course, that's not that helpful unless you happen to have a copy of S-Plus.

In fact, I ended up developing the metafor package (which started out with a function called mima() that is essentially the predecessor of the rma() function) for that very reason -- I needed a function to fit the meta-analytic random- and mixed-effects models.

As you are also aware of, right now, rma() adds a random effect per observation (i.e., observed effect or outcome), while you want a random effect per study (which of course only matters if you have more than one outcome per study -- as in your example). I have a function in the works that will allow you to do just that. It's not in the package yet, but it will be in the future. This essentially relates back to numerous requests I have received for adding functions to the metafor package that will handle multivariate meta-analytic models, dependent outcomes, and things like network meta-analyses. And to my shame, I have said numerous times: Yes, it's in the works, it will be in the package in the future, don't know yet when ("don't hold your breath"). It's probably just as frustrating for me not to find the time to work as much on the package as I would like as it is for those waiting for me to get around to actually adding that functionality to the package.

I actually have picked up quite a bit of steam in terms of working on the package recently. I am very close to releasing an updated version, the package website (http://www.metafor-project.org/ ) has been totally revamped (and is starting to become actually useful), and a bit of grant money is soon trickling in my direction that involves certain developments in the package. The updated version of the package still does not include that aforementioned function, but I may consider putting a pre-alpha version on the website so that the adventurous are able to try it out.

Alternatively, you could try taking a look at MCMCglmm (http://cran.r-project.org/web/packages/MCMCglmm/index.html), which should be able to fit the model that you want. Can't give you any details on how, but if you get stuck, try posting to R-sig-mixed-models and Jarrod Hadfield (the MCMCglmm package author) is very likely to help you further.

Best,
Wolfgang

--   
Wolfgang Viechtbauer, Ph.D., Statistician   
Department of Psychiatry and Psychology   
School for Mental Health and Neuroscience   
Faculty of Health, Medicine, and Life Sciences   
Maastricht University, P.O. Box 616 (VIJV1)   
6200 MD Maastricht, The Netherlands   
+31 (43) 388-4170 | http://www.wvbauer.com