Abstract
Mixed effects (ME) models inform a vast array of problems in the physical and social sciences, and are pervasive in meta-analysis. We consider ME models where the random effects component is linear. We then develop an efficient approach for a broad problem class that allows nonlinear measurements, priors, and constraints, and finds robust estimates in all of these cases using trimming in the associated marginal likelihood. The software accompanying this article is disseminated as an open-source Python package called LimeTr. LimeTr is able to recover results more accurately in the presence of outliers compared to available packages for both standard longitudinal analysis and meta-analysis, and is also more computationally efficient than competing robust alternatives. Supplementary materials that reproduce the simulations, as well as run LimeTr and third party code are available online. We also present analyses of global health data, where we use advanced functionality of LimeTr, including constraints to impose monotonicity and concavity for dose–response relationships. Nonlinear observation models allow new analyses in place of classic approximations, such as log-linear models. Robust extensions in all analyses ensure that spurious data points do not drive our understanding of either mean relationships or between-study heterogeneity.
Supplementary Materials
LimeTr package: Python package LimeTr containing code to perform robust estimation of mixed effects models, for both meta-analysis and simple longitudinal analysis. Available online through github: https://github.com/zhengp0/limetr.
Experiments: Set of script files available online to produce simulated data and run LimeTr and third party code: https://github.com/zhengp0/limetr/tree/paper/experiments.
Settings.R: R code to Specifies folder structure and simulation parameters.
functions.R: R code for auxiliary functions for simulating data and aggregating results.
0_create_sim_data.R: R code to create simulated data.
1_limetr.py: Python code to run LimeTr.
2_metafor.R: R code to run metafor package.
3_robumeta.R: R code to run robumeta package.
4_metaplus.R: R code to run metaplus package.
5_lme4.R: R code to run lme4 package.
6_robustlmm.R: R code to run robustlmm package.
7_heavy.R: R code to run heavy package.
Acknowledgments
The authors are very grateful to the referees for insightful questions and suggestions that have improved exposition and extended the scope of the article.