mvmeta.vc: Variance Components Estimator for mvmeta Models

Description Usage Arguments Details Value Note Author(s) References See Also Examples

View source: R/mvmeta.vc.R

Description

This function implements a variance components 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.

Usage

1
mvmeta.vc(Xlist, ylist, Slist, nalist, k, m, p, nall, control, ...)

Arguments

Assuming a meta-analysis or meta-regression based on m studies, k outcomes and p predictors:

Xlist

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.

ylist

a m-dimensional list of study-specific vectors of estimated outcomes. Entries corresponding to missing outcomes have been excluded.

Slist

a m-dimensional list of within-study (co)variance matrices of estimated outcomes. Rows and columns corresponding to missing outcomes have been excluded.

nalist

a m-dimensional list of k-dimensional study-specific logical vectors, identifying missing outcomes.

k, m, p, nall

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).

control

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.

Details

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 procedure is based on the estimate of the between-study (co)variance as the difference between the marginal (co)variance and the average within-study (co)variance. This in turn requires the estimate of the marginal (co)variance, obtained by the residuals of the fitted model. The procedure is iterative, with the current estimate of the between-study (co)variance plugged into a generalized least square (GLS) routine. Starting values are provided by a fixed-effects estimator (see mvmeta.fixed). The algorithm is fast and generally converges with few iterations.

Similar versions of this estimator has been previously proposed. Berkey and collaborators (1998) simply called it GLS method, and a non-iterative approach was proposed by Ritz and collaborators (2008), referred to as MVEE3. A non-iterative version for univariate models is discussed in Sidik and Jonkman (2007). The results from Berkey and collaborators (1998) are reproduced in the example below.

In the original approach, the estimate of the marginal (co)variance is obtained from the sum of the residual components using a denominator equal to m-p. Following the development proposed by Kauermann and Carroll (2001) and Fay and Graubard (2001) in the context of sandwich (co)variance estimators, then discussed by Lu and collaborators (2007), an adjusted denominator can be computed as a quantity derived from the hat matrix. This method is expected to perform better in the presence of missing values and small data sets. This alternative adjustment is chosen by default by setting vc.adj=TRUE in the control argument.

The variance component estimator is not bounded to provide a positive semi-definite between-study (co)variance matrix, as shown in the simulation study by Liu and colleagues (2009). Here positive semi-definiteness is forced by setting the negative eigenvalues of the estimated matrix to zero at each iteration. Little is known about the impact of such constraint.

Value

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".

Note

As stated earlier, this function is called internally by mvmeta.fit, and is not meant to be used directly. In particular, its code does not contain any check on the arguments provided, which are expected in specific formats. The function is however exported in the namespace and documented for completeness.

The arguments above are prepared by mvmeta.fit from its arguments X, y and S. The list structure, although requiring more elaborate coding, is computationally more efficient, as it avoids the specification of sparse block-diagonal matrices, especially for meta-analysis involving a large number of studies.

Some parameters of the fitting procedures are determined by the control argument, with default set by mvmeta.control. No missing values are accepted in the fitting functions. See details on missing values.

Author(s)

Antonio Gasparrini, antonio.gasparrini@lshtm.ac.uk

References

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].

Ritz J, Demidenko E, Spiegelman G (2008). Multivariate meta-analysis for data consortia, individual patient meta-analysis, and pooling projects. Journal of Statistical Planning and Inference. 139(7):1919–1933.

Berkey, CS, Hoaglin DC, et al. (1998). Meta-analysis of multiple outcomes by regression with random effects. Statistics in Medicine. 17(22):2537–2550.

Liu Q, Cook NR, Bergstrom A, Hsieh CC (2009). A two-stage hierarchical regression model for meta-analysis of epidemiologic nonlinear dose-response data. Computational Statistics and Data Analysis. 53(12):4157–4167

Sidik K, Jonkman JN (2007). A comparison of heterogeneity variance estimators in combining results of studies. Statistics in Medicine. 26(9):1964–81.

See Also

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 sumlist. See mvmeta-package for an overview of the package and modelling framework.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# VC ESTIMATOR: UNIVARIATE MODEL
model <- mvmeta(PD~pubyear,S=berkey98[,5],data=berkey98,method="vc")
summary(model)

# VC ESTIMATOR: MULTIVARIATE MODEL
model <- mvmeta(cbind(PD,AL)~pubyear,S=berkey98[5:7],data=berkey98,method="vc")
summary(model)

# VC ESTIMATOR: NON-ITERATIVE VERSION
model <- mvmeta(cbind(PD,AL)~pubyear,S=berkey98[5:7],data=berkey98,method="vc",
  control=list(maxiter=1))
summary(model)

# VARIANCE COMPONENTS ESTIMATOR: REPLICATE THE RESULTS IN BERKEY ET AL. (1998)
model <- mvmeta(cbind(PD,AL)~I(pubyear-1983),S=berkey98[5:7],
  data=berkey98,method="vc",control=list(vc.adj=FALSE))
summary(model)

Example output

This is mvmeta 0.4.11. For an overview type: help('mvmeta-package').
Call:  mvmeta(formula = PD ~ pubyear, S = berkey98[, 5], data = berkey98, 
    method = "vc")

Univariate random-effects meta-regression
Dimension: 1
Estimation method: Variance components

Fixed-effects coefficients
             Estimate  Std. Error        z  Pr(>|z|)  95%ci.lb  95%ci.ub   
(Intercept)   -9.0104     43.6785  -0.2063    0.8366  -94.6186   76.5979   
pubyear        0.0047      0.0220   0.2147    0.8300   -0.0384    0.0479   
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

Between-study random-effects (co)variance components
  Std. Dev
    0.1443

Univariate Cochran Q-test for residual heterogeneity:
Q = 11.8031 (df = 3), p-value = 0.0081
I-square statistic = 74.6%

5 studies, 5 observations, 2 fixed and 1 random-effects parameters

Call:  mvmeta(formula = cbind(PD, AL) ~ pubyear, S = berkey98[5:7], 
    data = berkey98, method = "vc")

Multivariate random-effects meta-regression
Dimension: 2
Estimation method: Variance components

Fixed-effects coefficients
PD : 
             Estimate  Std. Error        z  Pr(>|z|)  95%ci.lb  95%ci.ub   
(Intercept)   -9.9362     43.8402  -0.2266    0.8207  -95.8614   75.9890   
pubyear        0.0052      0.0221   0.2349    0.8143   -0.0381    0.0485   
AL : 
             Estimate  Std. Error        z  Pr(>|z|)  95%ci.lb  95%ci.ub   
(Intercept)   23.3783     53.0925   0.4403    0.6597  -80.6811  127.4376   
pubyear       -0.0120      0.0268  -0.4468    0.6550   -0.0644    0.0405   
---
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.1450      PD
AL    0.1771  0.4756

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

Warning message:
In mvmeta.fit(X, y, S, offset, method, bscov, control) :
  convergence not reached after maximum number of iterations
Call:  mvmeta(formula = cbind(PD, AL) ~ pubyear, S = berkey98[5:7], 
    data = berkey98, method = "vc", control = list(maxiter = 1))

Multivariate random-effects meta-regression
Dimension: 2
Estimation method: Variance components

Fixed-effects coefficients
PD : 
             Estimate  Std. Error        z  Pr(>|z|)  95%ci.lb  95%ci.ub   
(Intercept)   10.1212     16.2225   0.6239    0.5327  -21.6744   41.9168   
pubyear       -0.0050      0.0082  -0.6050    0.5452   -0.0210    0.0111   
AL : 
             Estimate  Std. Error        z  Pr(>|z|)  95%ci.lb  95%ci.ub   
(Intercept)   19.7802     12.8382   1.5407    0.1234   -5.3823   44.9427   
pubyear       -0.0102      0.0065  -1.5714    0.1161   -0.0229    0.0025   
---
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.1608      PD
AL    0.2420  0.4764

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

Call:  mvmeta(formula = cbind(PD, AL) ~ I(pubyear - 1983), S = berkey98[5:7], 
    data = berkey98, method = "vc", control = list(vc.adj = FALSE))

Multivariate random-effects meta-regression
Dimension: 2
Estimation method: Variance components

Fixed-effects coefficients
PD : 
                   Estimate  Std. Error       z  Pr(>|z|)  95%ci.lb  95%ci.ub
(Intercept)          0.3593      0.0751  4.7818    0.0000    0.2120    0.5066
I(pubyear - 1983)    0.0054      0.0224  0.2396    0.8107   -0.0385    0.0492
                      
(Intercept)        ***
I(pubyear - 1983)     
AL : 
                   Estimate  Std. Error        z  Pr(>|z|)  95%ci.lb  95%ci.ub
(Intercept)         -0.3360      0.0832  -4.0397    0.0001   -0.4990   -0.1730
I(pubyear - 1983)   -0.0114      0.0256  -0.4455    0.6560   -0.0617    0.0388
                      
(Intercept)        ***
I(pubyear - 1983)     
---
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.1470     PD
AL    0.1685  0.525

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

mvmeta documentation built on Dec. 10, 2019, 5:07 p.m.