mvma.hybrid.bayesian {altmeta} | R Documentation |
Bayesian Hybrid Model for Random-Effects Multivariate Meta-Analysis
Description
Performs a multivariate meta-analysis using the Bayesian hybrid random-effects model when the within-study correlations are unknown.
Usage
mvma.hybrid.bayesian(ys, vars, data, n.adapt = 1000, n.chains = 3,
n.burnin = 10000, n.iter = 10000, n.thin = 1,
data.name = NULL, traceplot = FALSE, coda = FALSE)
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. |
vars |
an n x p numeric matrix containing the observed within-study variances. The n rows represent studies, and the p columns represent the multivariate endpoints. |
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 |
Details
Suppose studies are collected in a multivariate meta-analysis on a total of
endpoints. Denote the
-dimensional vector of effect sizes as
, and their within-study variances form a diagonal matrix
. However, the within-study correlations are unknown. Then, the random-effects hybrid model is as follows (Riley et al., 2008; Lin and Chu, 2018):
where represents the overall effect sizes across studies,
consists of the between-study variances, and
is the marginal correlation matrix. Although the within-study correlations are unknown, this model accounts for both within- and between-study correlations by using the marginal correlation matrix.
Uniform priors are specified for the between-study standard deviations
(
). The correlation matrix can be written as
, where
is a lower triangular matrix with nonnegative diagonal elements. Also,
and for
,
if
;
if
; and
if
(Lu and Ades, 2009; Wei and Higgins, 2013). Here,
's are angle parameters for
, and
. Uniform priors are specified for the angle parameters:
.
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").
References
Lin L, Chu H (2018), "Bayesian multivariate meta-analysis of multiple factors." Research Synthesis Methods, 9(2), 261–272. <doi: 10.1002/jrsm.1293>
Lu G, Ades AE (2009). "Modeling between-trial variance structure in mixed treatment comparisons." Biostatistics, 10(4), 792–805. <doi: 10.1093/biostatistics/kxp032>
Riley RD, Thompson JR, Abrams KR (2008), "An alternative model for bivariate random-effects meta-analysis when the within-study correlations are unknown." Biostatistics, 9(1), 172–186. <doi: 10.1093/biostatistics/kxm023>
Wei Y, Higgins JPT (2013). "Bayesian multivariate meta-analysis with multiple outcomes." Statistics in Medicine, 32(17), 2911–2934. <doi: 10.1002/sim.5745>
See Also
mvma
, mvma.bayesian
, mvma.hybrid
Examples
data("dat.pte")
set.seed(12345)
## increase n.burnin and n.iter for better convergence of MCMC
out <- mvma.hybrid.bayesian(ys = dat.pte$y, vars = (dat.pte$se)^2,
n.adapt = 1000, n.chains = 3, n.burnin = 100, n.iter = 100,
n.thin = 1, data.name = "Pterygium")
out