This function implements a method of moments estimator for multivariate and univariate random-effects meta-analysis and meta-regression. It is meant to be used internally and not directly run by the users.
mvmeta.mm(Xlist, ylist, Slist, nalist, k, m, p, nall, control, ...)
a \(m\)-dimensional list of study-specific design matrices for the fixed-effects part of the model. Rows corresponding to missing outcomes have been excluded.
a \(m\)-dimensional list of study-specific vectors of estimated outcomes. Entries corresponding to missing outcomes have been excluded.
a \(m\)-dimensional list of within-study (co)variance matrices of estimated outcomes. Rows and columns corresponding to missing outcomes have been excluded.
a \(m\)-dimensional list of \(k\)-dimensional study-specific logical vectors, identifying missing outcomes.
numeric scalars: number of outcomes, number of studies included in estimation (equal to the length of lists above), number of predictors (including the intercept), number of observations (excluding missing).
list of parameters for controlling the fitting process, usually internally set to default values by mvmeta.control
.
further arguments passed to or from other methods. Currently not used.
This function returns an intermediate list object, whose components are then processed by mvmeta.fit
. Other components are added later through mvmeta
to finalize an object of class "mvmeta"
.
The estimation involves \(kp\) fixed-effects coefficients and \(k(k+1)/2\) random-effects parameters, corresponding to the lower triangular entries of the between-study (co)variance matrix.
The approach implemented here represents the multivariate extension of the traditional estimator proposed by DerSimonian and Laird (1986), and simplifies to the standard method in the univariate case. This non-iterative routine forces the positive semi-definiteness of the estimated between-study (co)variance matrix by setting its negative eigenvalues to zero.
The specific method of moment estimator used here is described in Jackson and collaborators (2013), and represents a generalization of that developed by Chen and collaborators (2012). However, this general version is computationally more intensive, and may turn out to be slow when applied to meta-analysis of a relatively high number of studies. An alternative and computationally faster method of moment estimator was previously proposed by Jackson and collaborators (2010), although it is not invariant to reparameterization. This latter estimator is not implemented yet in mvmeta. See references below.
Sera F, Armstrong B, Blangiardo M, Gasparrini A (2019). An extended mixed-effects framework for meta-analysis.Statistics in Medicine. 2019;38(29):5429-5444. [Freely available here].
Gasparrini A, Armstrong B, Kenward MG (2012). Multivariate meta-analysis for non-linear and other multi-parameter associations. Statistics in Medicine. 31(29):3821--3839. [Freely available here].
Jackson D, White IR, Riley RD (2013). A matrix based method of moments for fitting the multivariate random effects model for meta-analysis and meta-regression. Biometrical Journal. 55(2):231-245.
Chen H, Manning AK, Dupuis J (2012). A method of moments estimator for random effect multivariate meta-analysis. Biometrics. 68(4):1278-1284.
Jackson D, White IR, Thompson SG (2010). Extending DerSimonian and Laird's methodology to perform multivariate random effects meta-analyses. Statistics in Medicine. 29(12):1282--1297.
DerSimonian R, Laird N (1986). Meta-analysis in clinical trials. Controlled Clinical Trials. 7(3):177-188.
See mvmeta
for the general usage of the functions. See mvmeta.control
to determine specific parameters of the fitting procedures. Use the triple colon operator (':::
') to access the code of the internal functions, such as fbtr
. See mvmeta-package
for an overview of the package and modelling framework.
# NOT RUN {
# MM ESTIMATOR: UNIVARIATE MODEL
model <- mvmeta(PD~pubyear,S=berkey98[,5],data=berkey98,method="mm")
summary(model)
# MM ESTIMATOR: REPRODUCE THE RESULTS IN CHEN ET AL. (2012)
S <- as.matrix(hsls[5:10])
model <- mvmeta(cbind(b1,b2,b3),S,data=hsls,method="mm")
summary(model)
# MM ESTIMATOR: REPRODUCE THE RESULTS IN JACKSON ET AL. (2013)
S <- inputcov(hyp[c("sbp_se","dbp_se")],cor=hyp$rho)
model <- mvmeta(cbind(sbp,dbp),S=S,data=hyp,method="mm")
summary(model)
# }
Run the code above in your browser using DataLab