Hi metaSEM users,
I'm currently trying to use metaSEM to implement a network meta-analysis (i.e., a meta-analysis of different treatment comparisons; see Salanti, 2012). One important aspect of multivariate implementations of network meta-analysis is that the between-studies takes on a particular structure (see Lu & Ades, 2004). For example, given AB, AC, and AD, one common way to constrain the matrix is to do the following (basically, set the correlation between any two treatment comparisons equal to .5):
AB AC AD
AB s1^2 .5s1s2 .5s1s3
AC .5s1s2 s2^2 .5s3s3
AD .5s1s3 .5s2s3 s3^2
It looks like the way to impose this structure is through the RE.constraints argument. However, I'm a little in the dark about how to force the covariances to essentially be a function of the variances. Can anyone help me?
Code sample pasted below for reference.
AB <- c(.5, .3, .2, .2, NA, NA, .1)
AC <- c(NA, .3, .4, NA, .2, .1, .5)
ys <- data.frame(AB, AC)
n1 <- 50
n2 <- 50
nT <- 150 # Assuming equal N per study arm; N = 50
vars <- matrix(c(1/n1 + 1/n2 + .5^2/(2(n1 + n2)), NA, NA,
1/n1 + 1/n2 + .3^2/(2nT), 1/n1 + .3 * .3 / (2nT), 1/n1 + 1/n2 + .3^2/(2nT),
1/n1 + 1/n2 + .2^2/(2nT), 1/n1 + .2 * .4 / (2nT), 1/n1 + 1/n2 + .4^2/(2nT),
1/n1 + 1/n2 + .2^2/(2(n1 + n2)), NA, NA,
NA, NA, 1/n1 + 1/n2 + .2^2/(2(n1 + n2)),
NA, NA, 1/n1 + 1/n2 + .1^2/(2(n1 + n2)),
1/n1 + 1/n2 + .1^2/(2nT), 1/n1 + .1 * .5 / (2nT), 1/n1 + 1/n2 + .5^2/(2*nT)),
nrow = 7, ncol = 3, byrow = T)
con <- matrix(0, ncol = 2, nrow = 2)
diag(con) <- "2*a"
What to do with the covariances?
mod <- meta(y = ys, v = vars, RE.constraints = con)