Performs a Bayesian random-effects model for multivariate meta-analysis when the within-study correlations are known.
mvma.bayesian(ys, covs, n.adapt = 1000, n.chains = 3,
n.burnin = 10000, n.iter = 10000, n.thin = 1,
data.name = NULL, traceplot = FALSE, coda = FALSE)
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.
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
.
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").
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. <10.1214/ss/1177011136>
Jackson D, Riley R, White IR (2011). "Multivariate meta-analysis: potential and promise." Statistics in Medicine, 30(20), 2481--2498. <10.1002/sim.4172>
Lu G, Ades AE (2009). "Modeling between-trial variance structure in mixed treatment comparisons." Biostatistics, 10(4), 792--805. <10.1093/biostatistics/kxp032>
Pinheiro JC, Bates DM (1996). "Unconstrained parametrizations for variance-covariance matrices." Statistics and Computing, 6(3), 289--296. <10.1007/BF00140873>
Wei Y, Higgins JPT (2013). "Bayesian multivariate meta-analysis with multiple outcomes." Statistics in Medicine, 32(17), 2911--2934. <10.1002/sim.5745>
# NOT RUN {
data("dat.fib")
set.seed(12345)
## increase n.burnin and n.iter for better convergence of MCMC
out <- mvma.bayesian(ys = dat.fib$y, covs = dat.fib$S,
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