View source: R/mvma.bayesian.R
mvma.bayesian | R Documentation |
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)
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. |
covs |
a numeric list with length n. Each element is the p x p within-study covariance matrix. |
data |
an optional data frame containing the multivariate meta-analysis dataset. If |
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 |
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 |
traceplot |
a logical value indicating whether to save trace plots for the overall effect sizes and between-study standard deviations. The default is |
coda |
a logical value indicating whether to output MCMC posterior samples. The default is |
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{μ}_i, \mathbf{S}_i);
\boldsymbol{μ}_i \sim N (\boldsymbol{μ}, \mathbf{T}).
Here, \boldsymbol{μ}_i represents the true underlying effect sizes in study i, \boldsymbol{μ} 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{μ}. 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(τ_1^2, …, τ_p^2) contains the between-study variances, and \mathbf{R} is the correlation matrix. Uniform priors U (0, 10) are specified for τ_j's (j = 1, …, 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, …, p, L_{ij} = \cos θ_{i2} if j = 1; L_{ij} = (∏_{k = 2}^{j} \sin θ_{ik}) \cos θ_{i, j + 1} if j = 2, …, i - 1; and L_{ij} = ∏_{k = 2}^{i} \sin θ_{ik} if j = i. Here, θ_{ij}'s are angle parameters for 2 ≤q j ≤q i ≤q p, and θ_{ij} \in (0, π). Uniform priors are specified for the angle parameters: θ_{ij} \sim U (0, π).
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").
This function only implements the MCMC algorithm for the random-effects multivariate model, but not the fixed-effects model. Generally, the fixed-effects model can be easily implemented using the function mvma
. However, when using mvma
to fit the random-effects model, a large number of parameters need to be estimated, and the algorithm for maximizing (restricted) likelihood may not converge well. The Bayesian method in this function provides an alternative.
If a warning "adaptation incomplete" appears, users may increase n.adapt
.
Gelman A, Rubin DB (1992). "Inference from iterative simulation using multiple sequences." Statistical Science, 7(4), 457–472. <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. <doi: 10.1002/sim.4172>
Lu G, Ades AE (2009). "Modeling between-trial variance structure in mixed treatment comparisons." Biostatistics, 10(4), 792–805. <doi: 10.1093/biostatistics/kxp032>
Pinheiro JC, Bates DM (1996). "Unconstrained parametrizations for variance-covariance matrices." Statistics and Computing, 6(3), 289–296. <doi: 10.1007/BF00140873>
Wei Y, Higgins JPT (2013). "Bayesian multivariate meta-analysis with multiple outcomes." Statistics in Medicine, 32(17), 2911–2934. <doi: 10.1002/sim.5745>
mvma
, mvma.hybrid
, mvma.hybrid.bayesian
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
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.