Description Usage Arguments Details Value Note Author(s) References See Also Examples
The function mvmeta
performs fixed and random-effects multivariate and univariate meta-analysis and meta-regression, with various estimation methods. The function mvmeta.fit
is a wrapper for actual fitting functions based on different estimation methods, usually called internally. See mvmeta-package
for an overview.
1 2 3 4 |
Assuming a meta-analysis or meta-regression based on m studies, k outcomes and p predictors:
formula |
an object of class |
X |
a m x p design matrix containing the study-specific predictors. Usually produced internally by |
y |
a m-dimensional vector (for univariate models) or m x k matrix (for multivariate models) of outcomes. Usually produced internally by |
S |
series of within-study (co)variance matrices of the estimated outcomes for each one of the m studies. Accepted formats by |
data |
an optional data frame, list or environment (or object coercible by |
subset |
an optional vector specifying a subset of observations to be used in the fitting process. |
method |
estimation method: |
bscov |
a string defining the between-study (co)variance structure in likelihood based models. Default to |
model |
a logical value indicating whether the model frame should be included as a component of the returned value. See the |
contrasts |
an optional list. See the |
offset |
optionally, a m-dimensional numeric vector used to specify an a priori known component in the linear predictor. One or more |
na.action |
a function which indicates what should happen when the data contain |
control |
list of parameters for controlling the fitting process. These are passed to |
The function mvmeta
resembles standard regression functions in R (see lm
or glm
). This function defines the design matrix and the vector (for univariate models) or matrix (for multivariate models) of outcome responses, and calls the wrapper mvmeta.fit
to perform the actual fitting. The latter prepares the data and calls specific fitting functions, depending on the chosen method
. Functions other than mvmeta
are not expected to be called directly for model fitting.
The model is specified through a regression formula. Simple meta-analysis is specified with the formula y ~ 1
, where the left-hand side is a vector (in univariate models) or a matrix (in multivariate models), optionally of form cbind(y1,...,yk)
, with terms stored in data
. Alternatively, matrix or vector objects are allowed, and the formula is retrieved internally adding ~ 1
. In meta-regression, other terms are added in the right-hand side of the formula, defining the linear predictor common to all outcomes. Factors, variable transformations and interactions are allowed, following the standard formula specification. Labels are automatically retrieved from the objects in formula
. See formula
for further details. See lm
or glm
for info on the other arguments.
The within-study (co)variances are provided through the argument S
, usually as a matrix. If the correlations are available, each of the m row represents the k(k+1)/2 vectorized entries of the lower triangle of the related (co)variance matrix, taken by column (see xpndMat
). If correlations are not available, each row represents the k variances, and the correlations are inputted internally through the argument Scor
of the control
list. See inputcov
.
Different estimator are available in the package mvmeta
and chosen through the argument method
. In the current version, the options are:
method="fixed"
: Fixed-effects estimator
method="ml"
: Maximum likelihood (ML) estimator
method="reml"
: Restricted maximum likelihood (REML) estimator
method="mm"
: Method of moments estimator
method="vc"
: Variance components estimator
Specific fitting functions are called internally. Likelihood-based methods allow alternative (co)variance structures
for the between-study random effects through the argument bscov
. See their help pages for further details on the estimation methods, following the links above.
Missing values are allowed in both sides of formula
. In the case of missing predictors (right-hand side of formula
), the related study is entirely excluded from estimation. In contrast, a study still contributes to estimation if at least outcome is non-missing. This behaviour is different than in standard regression functions such as lm
or glm
. Before the call to mvmeta.fit
, studies matching such missing definition are removed from the the model frame. The missing pattern in S
must be consistent with that in y
. See further details on handling missing values
in mvmeta
.
The fitting procedure can be controlled through the additional terms specified in control
, which are passed to the function mvmeta.control
.
The mvmeta
function typically returns a list object of class "mvmeta"
representing the meta-analytical model fit, as described in mvmetaObject
. When method="data.frame"
, the model is not fitted and the model frame is returned, namely a data frame with special attributes (see the default method model.frame
) and, in this case, the additional class "data.frame.mvmeta"
.
The wrapper function mvmeta.fit
is usually called internally in mvmeta
, and returns an intermediate list object with some of the components expected in the "mvmeta"
class.
Several method functions for regression objects are available, either default or specifically-written for the "mvmeta"
class. See mvmetaObject
for a complete list.
In the current version, the same linear predictor specified in formula
is set for all the outcomes.
Antonio Gasparrini, antonio.gasparrini@lshtm.ac.uk
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, Riley R, White IR (2011). Multivariate meta-analysis: Potential and promise. Statistics in Medicine. 30(20);2481–2498.
White IR (2009). Multivariate random-effects meta-analysis. Stata Journal. 9(1):40–56.
White IR (2011). Multivariate random-effects meta-regression: updates to mvmeta. Stata Journal. 11(2):255-270.
Berkey, CS, Hoaglin DC, et al. (1998). Meta-analysis of multiple outcomes by regression with random effects. Statistics in Medicine. 17(22):2537–2550.
See additional info on the estimation procedures at the related page of the fitting functions. See alternative (co)variance structures
for likelihood-based estimation methods. See handling of missing values
in mvmeta
. See lm
or glm
for standard regression functions. See mvmeta-package
for an overview of this modelling framework.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | ### BIVARIATE META-ANALYSIS, ESTIMATED THROUGH REML
# RUN THE MODEL
model <- mvmeta(cbind(PD,AL),S=berkey98[5:7],data=berkey98)
# SUMMARIZE THE RESULTS
summary(model)
# RESIDUALS AND FITTED VALUES
residuals(model)
fitted(model)
# LOG-LIKELIHOOD AND AIC VALUE
logLik(model)
AIC(model)
### BIVARIATE META-REGRESSION, ESTIMATED THROUGH METHOD OF MOMENTS
# RUN THE MODEL AND SUMMARIZE THE RESULTS
model <- mvmeta(cbind(PD,AL)~pubyear,S=berkey98[5:7],data=berkey98,method="mm")
summary(model)
# BLUP ESTIMATES AND 90% PREDICTION INTERVALS, AGGREGATED BY OUTCOME
blup(model,pi=TRUE,aggregate="y",pi.level=0.90)
# COCHRAN Q TEST FOR RESIDUAL HETEROGENEITY
qtest(model)
# PREDICTED AVERAGED OUTOCOMES AND STANDARD ERRORS FROM YEAR 1985 TO 1989
newdata <- data.frame(pubyear=1985:1989)
predict(model,newdata,se=TRUE)
# MODEL FRAME AND MODEL MATRIX
model.frame(model)
model.matrix(model)
### UNIVARIATE META-REGRESSION, FIXED-EFFECTS MODEL
# RUN THE MODEL
model <- mvmeta(sbp~ish,S=sbp_se^2,data=hyp,method="fixed")
summary(model)
# RESIDUALS AND FITTED VALUES
residuals(model)
fitted(model)
# COCHRAN Q TEST FOR RESIDUAL HETEROGENEITY
qtest(model)
### MULTIVARIATE META-ANALYSIS WITH MORE THAN 2 OUTCOMES
# RUN THE MODEL
y <- as.matrix(fibrinogen[2:5])
S <- as.matrix(fibrinogen[6:15])
model <- mvmeta(y,S)
summary(model)
### IN THE PRESENCE OF MISSING VALUES
# RUN THE MODEL
y <- as.matrix(smoking[11:13])
S <- as.matrix(smoking[14:19])
model <- mvmeta(y,S)
summary(model)
# MODEL FRAME: SEE help(na.omit.data.frame.mvmeta) FOR MORE EXAMPLES
model.frame(model)
### WHEN WITHIN-STUDY COVIARIANCES ARE NOT AVAILABLE AND/OR NEED TO BE INPUTTED
# GENERATE S
(S <- inputcov(hyp[c("sbp_se","dbp_se")],cor=hyp$rho))
# RUN THE MODEL
model <- mvmeta(cbind(sbp,dbp),S=S,data=hyp)
# INPUTTING THE CORRELATION DIRECTLY IN THE MODEL
model <- mvmeta(cbind(y1,y2),cbind(V1,V2),data=p53,control=list(Scor=0.95))
summary(model)
# SEE help(hyp) AND help(p53) FOR MORE EXAMPLES
### STRUCTURING THE BETWEEN-STUDY (CO)VARIANCE
# DIAGONAL
S <- as.matrix(hsls[5:10])
model <- mvmeta(cbind(b1,b2,b3),S,data=hsls,bscov="diag")
summary(model)
model$Psi
# COMPOUND SYMMETRY
model <- mvmeta(cbind(b1,b2,b3),S,data=hsls,bscov="cs")
summary(model)
model$Psi
# SEE help(mvmetaCovStruct) FOR DETAILS AND ADDITIONAL EXAMPLES
### USE OF THE CONTROL LIST
# PRINT THE ITERATIONS AND CHANGE THE DEFAULT FOR STARTING VALUES
y <- as.matrix(smoking[11:13])
S <- as.matrix(smoking[14:19])
model <- mvmeta(y,S,control=list(showiter=TRUE,igls.iter=20))
# SEE help(mvmeta.control) FOR FURTHER DETAILS
|
This is mvmeta 0.4.11. For an overview type: help('mvmeta-package').
Call: mvmeta(formula = cbind(PD, AL) ~ 1, S = berkey98[5:7], data = berkey98)
Multivariate random-effects meta-analysis
Dimension: 2
Estimation method: REML
Fixed-effects coefficients
Estimate Std. Error z Pr(>|z|) 95%ci.lb 95%ci.ub
PD 0.3534 0.0588 6.0057 0.0000 0.2381 0.4688 ***
AL -0.3392 0.0879 -3.8589 0.0001 -0.5115 -0.1669 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Between-study random-effects (co)variance components
Structure: General positive-definite
Std. Dev Corr
PD 0.1083 PD
AL 0.1807 0.6088
Multivariate Cochran Q-test for heterogeneity:
Q = 128.2267 (df = 8), p-value = 0.0000
I-square statistic = 93.8%
5 studies, 10 observations, 2 fixed and 3 random-effects parameters
logLik AIC BIC
2.0823 5.8353 6.2325
PD AL
Pihlstrom 0.11657183 0.01921518
Lindhe -0.15342817 -0.26078482
Knowles 0.04657183 0.21921518
Ramfjord -0.09342817 0.02921518
Becker 0.20657183 -0.05078482
PD AL
Pihlstrom 0.3534282 -0.3392152
Lindhe 0.3534282 -0.3392152
Knowles 0.3534282 -0.3392152
Ramfjord 0.3534282 -0.3392152
Becker 0.3534282 -0.3392152
'log Lik.' 2.08233 (df=5)
[1] 5.83534
Call: mvmeta(formula = cbind(PD, AL) ~ pubyear, S = berkey98[5:7],
data = berkey98, method = "mm")
Multivariate random-effects meta-regression
Dimension: 2
Estimation method: Method of moments
Fixed-effects coefficients
PD :
Estimate Std. Error z Pr(>|z|) 95%ci.lb 95%ci.ub
(Intercept) -8.8707 46.1532 -0.1922 0.8476 -99.3293 81.5878
pubyear 0.0047 0.0233 0.2000 0.8415 -0.0409 0.0503
AL :
Estimate Std. Error z Pr(>|z|) 95%ci.lb 95%ci.ub
(Intercept) 22.9574 83.1515 0.2761 0.7825 -140.0165 185.9314
pubyear -0.0117 0.0419 -0.2802 0.7793 -0.0939 0.0704
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Between-study random-effects (co)variance components
Structure: General positive-definite
Std. Dev Corr
PD 0.1547 PD
AL 0.2947 0.6518
Multivariate Cochran Q-test for residual heterogeneity:
Q = 125.7557 (df = 6), p-value = 0.0000
I-square statistic = 95.2%
5 studies, 10 observations, 4 fixed and 1 random-effects parameters
$PD
blup pi.lb pi.ub
Pihlstrom 0.4355768 0.25946372 0.6116899
Lindhe 0.2192879 0.04345623 0.3951195
Knowles 0.3984823 0.17154266 0.6254220
Ramfjord 0.2820318 0.08119015 0.4828735
Becker 0.4782037 0.21669406 0.7397134
$AL
blup pi.lb pi.ub
Pihlstrom -0.3230295 -0.5906907 -0.05536839
Lindhe -0.5955841 -0.8504571 -0.34071109
Knowles -0.1226953 -0.5160019 0.27061135
Ramfjord -0.3078871 -0.6398150 0.02404076
Becker -0.3756841 -0.8270924 0.07572418
Multivariate Cochran Q-test for residual heterogeneity
Overall test:
Q = 125.756 (df = 6), p-value = 0.000
Tests on single outcome parameters:
Q df p-value
PD 13.955 3 0.003 **
AL 108.449 3 0.000 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
$fit
PD AL
1 0.3683018 -0.3590716
2 0.3729563 -0.3708180
3 0.3776107 -0.3825643
4 0.3822651 -0.3943107
5 0.3869195 -0.4060570
$se
PD AL
1 0.08436464 0.1493505
2 0.09608780 0.1703640
3 0.11149501 0.1981331
4 0.12927569 0.2302262
5 0.14858018 0.2650773
cbind(PD, AL).PD cbind(PD, AL).AL pubyear
Pihlstrom 0.47 -0.32 1983
Lindhe 0.20 -0.60 1982
Knowles 0.40 -0.12 1979
Ramfjord 0.26 -0.31 1987
Becker 0.56 -0.39 1988
(Intercept) pubyear
Pihlstrom 1 1983
Lindhe 1 1982
Knowles 1 1979
Ramfjord 1 1987
Becker 1 1988
attr(,"assign")
[1] 0 1
Call: mvmeta(formula = sbp ~ ish, S = sbp_se^2, data = hyp, method = "fixed")
Univariate fixed-effects meta-regression
Dimension: 1
Fixed-effects coefficients
Estimate Std. Error z Pr(>|z|) 95%ci.lb 95%ci.ub
(Intercept) -9.1049 0.1131 -80.5146 0.0000 -9.3266 -8.8833 ***
ish -0.4500 0.2123 -2.1195 0.0340 -0.8660 -0.0339 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Univariate Cochran Q-test for residual heterogeneity:
Q = 154.2734 (df = 8), p-value = 0.0000
I-square statistic = 94.8%
10 studies, 10 observations, 2 fixed and 0 random-effects parameters
logLik AIC BIC
-84.2261 172.4522 173.0574
1 2 3 4 5 6 7
2.4449103 -5.0650897 -3.7750897 0.3949103 0.4049103 -1.4950897 -2.2550897
8 9 10
-8.3751295 3.0048705 -0.7051295
1 2 3 4 5 6 7 8
-9.10491 -9.10491 -9.10491 -9.10491 -9.10491 -9.10491 -9.10491 -9.55487
9 10
-9.55487 -9.55487
Univariate Cochran Q-test for residual heterogeneity
Q = 154.273 (df = 8), p-value = 0.000
Call: mvmeta(formula = y ~ 1, S = S)
Multivariate random-effects meta-analysis
Dimension: 4
Estimation method: REML
Fixed-effects coefficients
Estimate Std. Error z Pr(>|z|) 95%ci.lb 95%ci.ub
b2 0.1616 0.0754 2.1433 0.0321 0.0138 0.3093 *
b3 0.3926 0.0837 4.6901 0.0000 0.2285 0.5567 ***
b4 0.5620 0.0870 6.4602 0.0000 0.3915 0.7325 ***
b5 0.8973 0.0906 9.9086 0.0000 0.7198 1.0748 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Between-study random-effects (co)variance components
Structure: General positive-definite
Std. Dev Corr
b2 0.2273 b2 b3 b4
b3 0.2861 0.9895
b4 0.3083 0.9742 0.9966
b5 0.3274 0.7062 0.8010 0.8477
Multivariate Cochran Q-test for heterogeneity:
Q = 187.8831 (df = 120), p-value = 0.0001
I-square statistic = 36.1%
31 studies, 124 observations, 4 fixed and 10 random-effects parameters
logLik AIC BIC
-79.4891 186.9783 226.0031
Call: mvmeta(formula = y ~ 1, S = S)
Multivariate random-effects meta-analysis
Dimension: 3
Estimation method: REML
Fixed-effects coefficients
Estimate Std. Error z Pr(>|z|) 95%ci.lb 95%ci.ub
yB 0.3326 0.2162 1.5383 0.1240 -0.0912 0.7564
yC 0.6810 0.2025 3.3623 0.0008 0.2840 1.0780 ***
yD 0.8357 0.3414 2.4479 0.0144 0.1666 1.5049 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Between-study random-effects (co)variance components
Structure: General positive-definite
Std. Dev Corr
yB 0.3141 yB yC
yC 0.7498 0.9362
yD 0.7225 0.8559 0.6196
Multivariate Cochran Q-test for heterogeneity:
Q = 204.2165 (df = 28), p-value = 0.0000
I-square statistic = 86.3%
24 studies, 31 observations, 3 fixed and 6 random-effects parameters
logLik AIC BIC
-53.8269 125.6539 137.6437
y.yB y.yC y.yD
1 NA 1.05129302 0.12852758
2 0.39042714 0.39167172 0.61576045
3 -0.01596494 NA NA
4 0.39350453 NA NA
5 0.70294160 NA NA
6 NA 2.20228934 NA
7 NA 0.87035364 NA
8 NA 0.41564852 NA
9 NA 2.77968383 NA
10 NA 2.70539331 NA
11 NA 2.42518735 NA
12 NA 0.44361687 NA
13 NA 0.46459091 NA
14 NA -0.15581043 NA
15 NA -0.23997016 NA
16 NA 0.03895601 NA
17 NA 0.39041227 NA
18 NA 0.10633565 NA
19 NA 0.58339828 NA
20 NA NA 3.52251673
21 1.82566094 1.67397630 NA
22 0.06559721 NA 1.10908353
23 NA 0.52324808 1.20397270
24 NA 0.56580770 0.16034257
sbp_se.sbp_se dbp_se.sbp_se dbp_se.dbp_se
[1,] 0.5184 0.151632 0.0729
[2,] 22.3729 3.065040 2.0736
[3,] 106.2961 10.766733 3.1329
[4,] 0.0900 0.023100 0.0100
[5,] 0.0196 0.004620 0.0025
[6,] 0.3364 0.051156 0.0324
[7,] 0.0900 0.040500 0.0729
[8,] 33.8724 4.650762 1.7161
[9,] 0.1681 0.020295 0.0121
[10,] 0.0400 0.004080 0.0016
Call: mvmeta(formula = cbind(y1, y2) ~ 1, S = cbind(V1, V2), data = p53,
control = list(Scor = 0.95))
Multivariate random-effects meta-analysis
Dimension: 2
Estimation method: REML
Fixed-effects coefficients
Estimate Std. Error z Pr(>|z|) 95%ci.lb 95%ci.ub
y1 -0.2821 0.2587 -1.0905 0.2755 -0.7890 0.2249
y2 0.1036 0.3078 0.3366 0.7364 -0.4997 0.7069
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Between-study random-effects (co)variance components
Structure: General positive-definite
Std. Dev Corr
y1 0.4088 y1
y2 0.6195 1
Multivariate Cochran Q-test for heterogeneity:
Q = 24.1472 (df = 7), p-value = 0.0011
I-square statistic = 71.0%
6 studies, 9 observations, 2 fixed and 3 random-effects parameters
logLik AIC BIC
-6.4340 22.8679 22.5975
Call: mvmeta(formula = cbind(b1, b2, b3) ~ 1, S = S, data = hsls, bscov = "diag")
Multivariate random-effects meta-analysis
Dimension: 3
Estimation method: REML
Fixed-effects coefficients
Estimate Std. Error z Pr(>|z|) 95%ci.lb 95%ci.ub
b1 -0.0049 0.2239 -0.0218 0.9826 -0.4437 0.4339
b2 6.1379 0.3477 17.6549 0.0000 5.4565 6.8193 ***
b3 -0.6705 0.1597 -4.1994 0.0000 -0.9835 -0.3576 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Between-study random-effects (co)variance components
Structure: Diagonal
Std. Dev Corr
b1 0.3973 b1 b2
b2 0.5619 0
b3 0.0026 0 0
Multivariate Cochran Q-test for heterogeneity:
Q = 54.6278 (df = 21), p-value = 0.0001
I-square statistic = 61.6%
8 studies, 24 observations, 3 fixed and 3 random-effects parameters
logLik AIC BIC
-29.9165 71.8331 78.1002
b1 b2 b3
b1 0.1578589 0.000000 0.000000e+00
b2 0.0000000 0.315689 0.000000e+00
b3 0.0000000 0.000000 6.877923e-06
Call: mvmeta(formula = cbind(b1, b2, b3) ~ 1, S = S, data = hsls, bscov = "cs")
Multivariate random-effects meta-analysis
Dimension: 3
Estimation method: REML
Fixed-effects coefficients
Estimate Std. Error z Pr(>|z|) 95%ci.lb 95%ci.ub
b1 -0.0275 0.1980 -0.1388 0.8896 -0.4155 0.3606
b2 6.1728 0.3011 20.4989 0.0000 5.5826 6.7630 ***
b3 -0.7089 0.2173 -3.2622 0.0011 -1.1347 -0.2830 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Between-study random-effects (co)variance components
Structure: Compound symmetry
Std. Dev Corr
b1 0.3168 b1 b2
b2 0.3168 -0.139
b3 0.3168 -0.139 -0.139
Multivariate Cochran Q-test for heterogeneity:
Q = 54.6278 (df = 21), p-value = 0.0001
I-square statistic = 61.6%
8 studies, 24 observations, 3 fixed and 2 random-effects parameters
logLik AIC BIC
-31.0054 72.0108 77.2334
b1 b2 b3
b1 0.10038259 -0.01395693 -0.01395693
b2 -0.01395693 0.10038259 -0.01395693
b3 -0.01395693 -0.01395693 0.10038259
initial value 53.899100
iter 2 value 53.859722
iter 3 value 53.849546
iter 4 value 53.834476
iter 5 value 53.833280
iter 6 value 53.830873
iter 7 value 53.827743
iter 8 value 53.827269
iter 9 value 53.826965
iter 10 value 53.826929
iter 11 value 53.826928
iter 11 value 53.826928
iter 11 value 53.826928
final value 53.826928
converged
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.