Performs a Bayesian random-effects model for multivariate meta-analysis when the within-study correlations are known.
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)
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").
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.
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.
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
.
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.
the number of MCMC chains. The default is 3.
the number of iterations for burn-in period. The default is 10,000.
the total number of iterations in each MCMC chain after the burn-in period. The default is 10,000.
a positive integer specifying thinning rate. The default is 1.
a character string specifying the data name. This is used in the names of the generated files that contain results. The default is NULL
.
a logical value indicating whether to save trace plots for the overall effect sizes and between-study standard deviations. The default is FALSE
.
a logical value indicating whether to output MCMC posterior samples. The default is FALSE
.
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)\).
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")>
mvma
, mvma.hybrid
, mvma.hybrid.bayesian
# \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