Comparing non-independent metaanalytic effect sizes I am running a random-effects meta-analysis on a collection of placebo controlled trials. Each trial reports on the effects of the drug and placebo on 'positive symptoms' and 'negative symptoms'.  I have calculated effect size estimates for drug-placebo differences for both positive and negative symptoms separately. I would like to know if it is possible to compare these two effect sizes to say whether the drug is more effective in treating positive compared to negative symptoms.
I imagine that this approach: http://www.metafor-project.org/doku.php/tips:comp_two_independent_estimates would not be appropriate given that the estimates are not independent.
Any advice very much appreciated,
Thanks
Rob
 A: These answers were provided at https://stat.ethz.ch/pipermail/r-sig-meta-analysis/2018-October/001228.html
Estimated a covariance matrix using the ClubSandwich package, and run the analysis with a range of values for ‘r’:
Vlist <- impute_covariance_matrix(vi = mydata_multi$vi, cluster = 
mydata_multi$studyid, r=0.5 )

Where yi is the calculated effect size, ‘posneg’ is the label describing whether the results of that row refers to positive or negative symptoms, and ‘studyid’  is a separate label for each study.
MultiMeta <- rma.mv(yi = yi, V = Vlist, mods = ~factor(posneg)-1, 
random = ~factor(posneg)|studyid, struct = "UN", data = mydata_multi) 

Using struct="CS" assumes that the amount of heterogeneity is the same for positive and negative symptoms, which may not be the case. 
To test for a difference between positive and negative symptoms, you can compute the contrast between the two estimates with: 
anova(MultiMeta, L=c(-1,1)) 

Alternatively, fit the model with 'mods = ~factor(posneg)'. Then one of the two levels becomes the reference level (and hence the intercept) and the coefficient for the other level is the difference between the two levels. You should get the same p-value for this coefficient as when computing the contrast as shown above. 
To add to Wolfgang's suggestions, it's also possible to test for differences between positive and negative symptoms using robust variance estimation. The advantage of doing so is that the hypothesis test/confidence interval is not predicated on having accurately imputed the within-study correlations between effect size estimates. Example code below.
James
library(clubSandwich)

# Separate intercepts model
MultiMeta <- rma.mv(yi = yi, V = Vlist, mods = ~factor(posneg)-1, 
random = ~factor(posneg)|studyid, struct = "UN", data = mydata_multi)
Wald_test(MultiMeta, constraints = matrix(c(-1,1), 1), vcov = "CR2")

# With reference level
MultMeta <- rma.mv(yi = yi, V = Vlist, mods = ~factor(posneg), random = 
~factor(posneg)|studyid, struct = "UN", data = mydata_multi)
coef_test(MultMeta, vcov = "CR2")
conf_int(MultMeta, vcov = "CR2")  

