Skip to content
Prev 15100 / 20628 Next

metafor: estimate correlation between response variables (meta-analysis)

I have a hard time making sense of that toy example.

But if I understand you correctly, you have data like this:

study trt respvar yi vi
-----------------------
1     1   1       .  .
1     1   2       .  .
1     2   1       .  .
1     2   2       .  .
2     1   1       .  .
2     1   2       .  .
2     2   1       .  .
2     2   2       .  .
...

where 'yi' and 'vi' are the observed outcomes and corresponding variances.

Within studies, can we assume that 'yi' is independent for different treatments? Then V (the var-cov matrix of the 'yi' vector) will be block-diagonal, each block being a 2x2 matrix (since you only need to consider the covariance between 'yi' for respvar 1 and 'yi' for respvar 2). And the problem is that the covariances are unknown. Correct so far?

If so, the 'R' argument has nothing to do with this. If you want to approach this by means of a sensitivity analysis, then just impute the unknown covariances directly into 'V' and analyze by means of an appropriate multilevel/multivariate model. Something like this:

dat$study.trt <- interaction(dat$study, dat$trt)
rma.mv(yi, V, mods = ~ factor(trt) - 1, random = list(~ 1 | study, ~ respvar | study.trt), struct="UN", data=dat)

To impute the covariances, you may be able to use cor*sqrt(v1*v2), where 'cor' is some kind of assumed correlation (maybe constant across studies, maybe not). However, whether this is appropriate depends on your outcome measure. For example, this would be fine for means or mean differences, but the covariance between standardized mean differences cannot be computed that way (see Gleser & Olkin, 2009, for the correct equation).

Gleser, L. J., & Olkin, I. (2009). Stochastically dependent effect sizes. In H. Cooper, L. V. Hedges, & J. C. Valentine (Eds.), The handbook of research synthesis and meta-analysis (2nd ed., pp. 357-376). New York: Russell Sage Foundation.

Best,
Wolfgang