Learn R Programming

altmeta (version 4.2)

mvma.bayesian: Bayesian Random-Effects Multivariate Meta-Analysis

Description

Performs a Bayesian random-effects model for multivariate meta-analysis when the within-study correlations are known.

Usage

mvma.bayesian(ys, covs, data, n.adapt = 1000, n.chains = 3,
              n.burnin = 10000, n.iter = 10000, n.thin = 1,
              data.name = NULL, traceplot = FALSE, coda = FALSE)

Value

This functions produces posterior estimates and Gelman and Rubin's potential scale reduction factor, and it generates several files that contain trace plots (if traceplot = TRUE) and MCMC posterior samples (if coda = TRUE) in users' working directory. In these results, mu represents the overall effect sizes, tau represents the between-study variances, R contains the elements of the correlation matrix, and theta represents the angle parameters (see "Details").

Arguments

ys

an n x p numeric matrix containing the observed effect sizes. The n rows represent studies, and the p columns represent the multivariate endpoints. NA is allowed for missing endpoints.

covs

a numeric list with length n. Each element is the p x p within-study covariance matrix. NA is allowed for missing endpoints in the covariance matrix.

data

an optional data frame containing the multivariate meta-analysis dataset. If data is specified, the previous arguments, ys and covs, should be specified as their corresponding column names in data.

n.adapt

the number of iterations for adaptation in the Markov chain Monte Carlo (MCMC) algorithm. The default is 1,000. This argument and the following n.chains, n.burnin, n.iter, and n.thin are passed to the functions in the package rjags.

n.chains

the number of MCMC chains. The default is 3.

n.burnin

the number of iterations for burn-in period. The default is 10,000.

n.iter

the total number of iterations in each MCMC chain after the burn-in period. The default is 10,000.

n.thin

a positive integer specifying thinning rate. The default is 1.

data.name

a character string specifying the data name. This is used in the names of the generated files that contain results. The default is NULL.

traceplot

a logical value indicating whether to save trace plots for the overall effect sizes and between-study standard deviations. The default is FALSE.

coda

a logical value indicating whether to output MCMC posterior samples. The default is FALSE.

Details

Suppose \(n\) studies are collected in a multivariate meta-analysis on a total of \(p\) endpoints. Denote the \(p\)-dimensional vector of effect sizes as \(\boldsymbol{y}_i\), and the within-study covariance matrix \(\mathbf{S}_i\) is assumed to be known. Then, the random-effects model is as follows: $$\boldsymbol{y}_i \sim N (\boldsymbol{\mu}_i, \mathbf{S}_i);$$ $$\boldsymbol{\mu}_i \sim N (\boldsymbol{\mu}, \mathbf{T}).$$ Here, \(\boldsymbol{\mu}_i\) represents the true underlying effect sizes in study \(i\), \(\boldsymbol{\mu}\) represents the overall effect sizes across studies, and \(\mathbf{T}\) is the between-study covariance matrix due to heterogeneity.

The vague priors \(N (0, 10^3)\) are specified for the fixed effects \(\boldsymbol{\mu}\). Also, this function uses the separation strategy to specify vague priors for the variance and correlation components in \(\mathbf{T}\) (Pinheiro and Bates, 1996); this technique is considered less sensitive to hyperparameters compared to specifying the inverse-Wishart prior (Lu and Ades, 2009; Wei and Higgins, 2013). Specifically, write the between-study covariance matrix as \(\mathbf{T} = \mathbf{D}^{1/2} \mathbf{R} \mathbf{D}^{1/2}\), where the diagonal matrix \(\mathbf{D} = diag(\mathbf{T}) = diag(\tau_1^2, \ldots, \tau_p^2)\) contains the between-study variances, and \(\mathbf{R}\) is the correlation matrix. Uniform priors \(U (0, 10)\) are specified for \(\tau_j\)'s (\(j = 1, \ldots, p\)). Further, the correlation matrix can be written as \(\mathbf{R} = \mathbf{L} \mathbf{L}^\prime\), where \(\mathbf{L} = (L_{ij})\) is a lower triangular matrix with nonnegative diagonal elements. Also, \(L_{11} = 1\) and for \(i = 2, \ldots, p\), \(L_{ij} = \cos \theta_{i2}\) if \(j = 1\); \(L_{ij} = (\prod_{k = 2}^{j} \sin \theta_{ik}) \cos \theta_{i, j + 1}\) if \(j = 2, \ldots, i - 1\); and \(L_{ij} = \prod_{k = 2}^{i} \sin \theta_{ik}\) if \(j = i\). Here, \(\theta_{ij}\)'s are angle parameters for \(2 \leq j \leq i \leq p\), and \(\theta_{ij} \in (0, \pi)\). Uniform priors are specified for the angle parameters: \(\theta_{ij} \sim U (0, \pi)\).

References

Gelman A, Rubin DB (1992). "Inference from iterative simulation using multiple sequences." Statistical Science, 7(4), 457--472. <tools:::Rd_expr_doi("10.1214/ss/1177011136")>

Jackson D, Riley R, White IR (2011). "Multivariate meta-analysis: potential and promise." Statistics in Medicine, 30(20), 2481--2498. <tools:::Rd_expr_doi("10.1002/sim.4172")>

Lu G, Ades AE (2009). "Modeling between-trial variance structure in mixed treatment comparisons." Biostatistics, 10(4), 792--805. <tools:::Rd_expr_doi("10.1093/biostatistics/kxp032")>

Pinheiro JC, Bates DM (1996). "Unconstrained parametrizations for variance-covariance matrices." Statistics and Computing, 6(3), 289--296. <tools:::Rd_expr_doi("10.1007/BF00140873")>

Wei Y, Higgins JPT (2013). "Bayesian multivariate meta-analysis with multiple outcomes." Statistics in Medicine, 32(17), 2911--2934. <tools:::Rd_expr_doi("10.1002/sim.5745")>

See Also

mvma, mvma.hybrid, mvma.hybrid.bayesian

Examples

Run this code
# \donttest{
data("dat.fib")
set.seed(12345)
## increase n.burnin and n.iter for better convergence of MCMC
out <- mvma.bayesian(ys = y, covs = S, data = dat.fib,
  n.adapt = 1000, n.chains = 3, n.burnin = 100, n.iter = 100,
  n.thin = 1, data.name = "Fibrinogen")
out
# }

Run the code above in your browser using DataLab