------------------------------------------------------------------------------- help for mvmeta Ian White -------------------------------------------------------------------------------

Multivariate random-effects meta-analysis


mvmeta performs multivariate random-effects meta-analysis on a data-set of point estimates, variances and (optionally) covariances.


mvmeta b V [if] [in] [, reml|ml|mm|fixed vars(varlist) corr(expression) start(expression) showstart showchol keepmat(bname Vname) nouncertainv eform(name) bscorr bscov missest(#) missvar(#) maximize_options ]

where the data are arranged with one line per study: the point estimates are held in variables b*, the variance of bx is held in variable Vxx, and the covariance of bx and by is held in variable Vxy. If you have individual participant data, you can use mvmeta_make to produce a datset of the required format.


reml specifies that restricted maximum likelihood is to be used for estimation (the default).

ml specifies that maximum likelihood is to be used for estimation. This is likely to underestimate the variance, so restricted maximum likelihood is usually preferred.

mm specifies that the multivariate method of moments procedure (Jackson et al, Biostatistics, submitted) is to be used for estimation. This is a multivariate generalisation of the procedure of DerSimonian and Laird (1986) and is faster than the likelihood-based methods.

fixed specifies that the fixed-effect model is to be used for estimation.

vars(varlist) specifies which variables are to be used. By default, all variables named b* are used, but any variable named b is ignored. Note that vars(b1 b2 b3) and vars(b3 b2 b1) specify the same model but a different parameterisation.

corr(expression) specifies the value of all within-study correlations. This means that covariance variables Vxy need not exist. (For any that do exist, corr() is ignored.)

start(matrix|matrix expression|mm) specifies a starting value for the between-studies variance, except that start(mm) specifies that the starting value is computed by the mm method. If start() is not specified, the starting value is the weighted between-study variance of the estimates, not allowing for the within-study variances. This ensures it is greater than zero: the iterative procedure never moves away from zero. start(0) uses a starting value of 0.001 times the default. The starting value for the between-studies mean is the fixed effects estimate.

showstart reports the starting values used.

showchol reports the estimated values of the basic parameters underlying the between-studies variance matrix (the Cholesky decomposition).

keepmat(bname Vname) saves the study-specific estimates and variance matrices for study i as bnamei and Vnamei.

nouncertainv also computes alternative (smaller) standard errors that ignore the uncertainty in the estimated variance-covariance matrix, and therefore agree with results produced by procedures such as SAS PROC MIXED (without the ddfm=kr option) and metareg. (Note however that confidence intervals do not agree because mvmeta uses a Normal approximation whereas the other procedures approximate the degrees of freedom of a t distribution.)

eform(name) exponentiates the reported mean parameters and reports them as name.

bscorr reports the between-studies variance-covariance matrix as the standard deviations and correlation matrix. This is the default if bscov is not specified.

bscov reports the between-studies variance-covariance matrix without transformation.

missest(#) specifies values to be used for missing point estimates; the default is 0. This is of minor importance because the variance of these values is specified to be very large.

missvar(#) is used in specifying the very large variance of missing point estimates. For a specific variable, the variance used is the largest observed variance multiplied by the specified value. The default is 1E4. This value is unlikely to need to be changed.

maximize_options are any options allowed by ml maximize: see ml.

Studies in which some quantities are unestimated

mvmeta handles studies in which some quantities are missing by replacing the point estimate by an arbitrary value and the estimated variance by a large value. mvmeta ignores variances and covariances specified for missing point estimates. Conversely, it expects non-missing variances and covariances to accompany non-missing point estimates. mvmeta_make automatically fills in missing values using the augmentation algorithm described above. In either case, the particular choice of large value should have minimal effect on the parameter estimates, but will affect the value of the maximised log-likelihod.


First stage, starting with individual participant data (fg has levels 1-5):

. xi: mvmeta_make stcox ages i.fg, strata(sex tr) nohr saving(FSCstage1) replace by(cohort) usevars(i.fg) names(b V) esave(N)

Second stage:

. use FSCstage1, clear

. mvmeta b V


The reml and ml methods use Newton-Raphson maximisation of the likelihood or restricted likelihood using ml. The between-studies variance matrix is parameterised via its Cholesky decomposition in order to ensure that it is non-negative definite.

mvmeta requires the additional program mvmeta_l.ado.

See also

mvmeta_make, metan, metareg.