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 .5*s1*s2 .5*s1*s3
AC .5*s1*s2 s2^2 .5*s3*s3
AD .5*s1*s3 .5*s2*s3 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.
### Begin example ###
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/(2*nT), 1/n1 + .3 * .3 / (2*nT), 1/n1 + 1/n2 + .3^2/(2*nT),
1/n1 + 1/n2 + .2^2/(2*nT), 1/n1 + .2 * .4 / (2*nT), 1/n1 + 1/n2 + .4^2/(2*nT),
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/(2*nT), 1/n1 + .1 * .5 / (2*nT), 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)