[R-meta] Profile likelihood for metafor::rma.mv()

Viechtbauer, Wolfgang (NP) wo||g@ng@v|echtb@uer @end|ng |rom m@@@tr|chtun|ver@|ty@n|
Thu Oct 26 08:42:55 CEST 2023


Dear Yuhang,

I don't know the specifics of the model and how complex it is (in terms of the random effects structure and number of parameters it entails), but yes, model fitting can fail (non-convergence or convergence to a local optimum). The profile() function actually does a check if the log likelihood is higher for one of the values it profiles over compared to the value it found during the model fitting, so I assume you received the corresponding warning about this being the case here.

One of the first things I would do in this case is to try out fitting the model with various different optimizers. It is very easy to switch to different optimizers:

https://wviechtb.github.io/metafor/reference/rma.mv.html#note-1

and there are close to 20 different options available. Some of them may fail completely, but there isn't one that is always best (nlminb, which is the default, is still a good default option in my opinion, but BFGS and others can work better under certain circumstances).

Hopefully, switching to a different optimizer avoids the local optimum and some of the non-convergence problems in the profiling.

One can also try to adjust the starting values for the model fitting algorithm and many optimizers have additional settings one can adjust, but messing with these settings is tedious.

Best,
Wolfgang

> -----Original Message-----
> From: R-sig-meta-analysis <r-sig-meta-analysis-bounces using r-project.org> On Behalf
> Of Yuhang Hu via R-sig-meta-analysis
> Sent: Wednesday, October 25, 2023 21:23
> To: R meta <r-sig-meta-analysis using r-project.org>
> Cc: Yuhang Hu <yh342 using nau.edu>
> Subject: [R-meta] Profile likelihood for metafor::rma.mv()
>
> Hello All,
>
> I have a profile log-likelihood for a parameter in my 'rma.mv()' model that
> looks like this (where lack of x in the middle denotes non-convergence):
>   z
> y    x
>
>                x x x
> --------------------
> The parameter estimate returned by rma.mv() is "y", but there clearly is
> another estimate, "z", that has a larger log-likelihood value than "y".
>
> So, the parameter estimate returned by rma.mv() is not the best. But in
> this situation, can I report "z" as the correct estimate and disregard "y"?
>
> Thanks,
> Yuhang



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