Skip to content
Prev 129 / 5632 Next

[R-meta] Multivariate meta-analysis with unknown covariances?

Looks good.

A few points:

About the warning: "Some combinations of the levels of the inner factor never occurred. Corresponding rho value(s) fixed to 0." Indeed, this is a result of some pairs of outcomes never occurring within studies. Hence, it is not possible to estimate the correlation for such pairs.

With 24 different outcome measures for 28 effect sizes, struct="CS" is indeed the most you can do. Any more complex structure would either be a total overfit or will not converge. Note that struct="CS" implies that the amount of heterogeneity is the same for all outcomes and that the correlation between outcomes is the same, regardless of which pair of outcomes you are looking at. Obviously, the results from your model are then an approximation to a more complex reality.

In most cases, whether you use metafor or clubSandwich for the 'cluster robust' computations won't make much of a difference. The nice thing about clubSandwich is that it provides some refined robust methods (esp. vcov="CR2" and vcov="CR3") that should in principle lead to more accurate results in small samples. You might as well use them.

Note that cooks.distance() won't work with an object returned by robust(). So, you would have to directly apply cooks.distance() to 'MultiMeta'. But that should still be okay as a general diagnostic tool.

I would suggest to present the results with and without the outlier.

Also, you cannot get a test for (residual) heterogeneity based on (cluster) robust methods. A test for (residual) heterogeneity is based on a model that assumes that the only source of variability (and covariation) is contained/captured by V. But (cluster) robust methods try to approximate all source of variability (and covariation), not just those due to V. Given that V in your case is just a rough approximation, any test for (residual) heterogeneity should also be treated that way.

Best,
Wolfgang

-----Original Message-----
From: R-sig-meta-analysis [mailto:r-sig-meta-analysis-bounces at r-project.org] On Behalf Of schlegei
Sent: Thursday, August 17, 2017 15:23
To: r-sig-meta-analysis at r-project.org
Subject: Re: [R-meta] Multivariate meta-analysis with unknown covariances?

First of all: Thanks a lot to the two of you for your kind and very 
helpful answers!
What a fortunate coincidence that James Pustejovsky published his blog 
entry the same day I was asking how to deal with unknown covariances.
Does anyone know a published reference, in which the three steps are 
recommended? Until now, I couldn?t find one.


I want to share my R-Code with the list (some explanations included). 
Maybe someone more experienced might check if my specification is 
correct. And maybe it helps other clueless people with the same problem:

1. Calculation of the effect sizes:

data <- escalc(measure = "SMD", m1i = m12, sd1i = sd12, n1i = n12, m2i = 
m22, sd2i = sd22, n2i = n22, data = data, append = TRUE, replace = 
FALSE)
data <- escalc(measure = "PBIT", ai = a1, bi = b1, ci = c1, di = d1, 
data = data, append = TRUE, replace = FALSE)

I calculated the effect sizes with Hedges g (?SMD?) and transformed 
dichotomized data to standardized mean differences with the help of the 
probit transformed risk difference (?PBIT?).


2.  Imputation of the variance-covariance matrix:

Vlist <- impute_covariance_matrix(vi = data$vi, cluster = data$study, r 
= 0.7)

Right now, I fixed the correlation between all outcomes in the same 
study to 0.7. This is quite rough and I want to precise this guestimates 
(I asked most of the original autors if they can provide me with the 
correlations between the outcomes and will also precise this guestimate 
by substituting it with correlations from other studies that used the 
same outcomes).


3. Conduct the multivariate meta-analysis:

MultiMeta <- rma.mv(yi = yi, V = Vlist, mods =  ~ factor(controlgroup) 
-1, random = ~ factor(outcome)|study, struct = "CS", data = data)

I formulated a multivariate meta-analysis with random effects and 
included the imputed covariance matrix into the model. I had to fix the 
structure to a compound symmetric structure (?CS?), because with less 
restrictive structures I received the following warning message:
Fehler in rma.mv(yi = yi, V = VPostdicho, mods = ~factor(Kontrollgruppe) 
-  : Optimizer (nlminb) did not achieve convergence (convergence = 1).
Zus?tzlich: Warnmeldung: In .process.G.afterrmna(mf.g, g.nlevels, 
g.levels, struct[1], tau2, :Some combinations of the levels of the inner 
factor never occurred. Corresponding rho value(s) fixed to 0.
Probably the warning message is due to the fact that I have 24 different 
outcome measures for 28 effect sizes ? so there is no combination of 
outcomes that appears several times. In addition to that, I included a 
categorical moderator (mods =  ~ factor(controlgroup) -1) in the 
meta-analysis. When I set e.g. struct = ?UN?, the optimizer is not 
converging. With struct = ?CS?, it is.
So setting struct = ?CS? seems to be the only possiblity here?


4. Compute robust tests and confidence intervals:
I tried both options (in metafor as well as in club sandwich) to 
estimate robust standard errors and p-values:

metafor_robust <- robust.rma.mv(MultiMeta, cluster = data$study)
ClubSandwich_robust <- coef_test(MultiMeta, vcov = "CR2")

Both options result in similar (but not identical) values. Probably, for 
my research it is interchangeable which option I choose?

For further analysis (like Cook?s distance or Egger?s test) one uses 
exclusively the robust estimates, or?
In my case, the test for residual heterogenity in the model with the 
imputed covariance matrix is highly significant. When I exclude one 
effect size that is an outlier, the residual heterogenity is not 
significant anymore. May I present this result, although it refers to 
the model with the imputed covariance matrix? (There is no test for 
residual heterogenity for robust estimates)

Best regards,
Isabel Schlegel

Am 10.08.2017 21:23, schrieb Viechtbauer Wolfgang (SP):
_______________________________________________
R-sig-meta-analysis mailing list
R-sig-meta-analysis at r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-meta-analysis