[R-meta] Why am I getting different means when conducting multilevel meta-analysis with factorial moderator vs. as subgroups?
Viechtbauer, Wolfgang (SP)
wolfgang.viechtbauer at maastrichtuniversity.nl
Wed Apr 18 18:36:49 CEST 2018
Hi Max,
It's difficult to say without the actual data, but here are a few observations/comments.
First of all, it seems to me that the 'subgroup' model is overparameterized. Notice that there are 7 levels for both studyid and sampleid, so unless these are crossed factors (which I assume they are not), then these two are the same. In fact, the estimated variances for these two random effects are identical (0.1307), so probably the actual variance due to this random effects is getting split between these two (or maybe the optimizer started with these values and got stuck there).
Second, the subgroup models allow for the variance components to differ across tasks, but the 'moderator' model does not. The latter also assumes that the correlation of effects within studies and samples for different tasks can only be positive and that the correlation is the same between all pairs of tasks. That may not be true.
You might try:
multi.task <- rma.mv(yi=g, V = var.g, data=df, random=list(~ factor(task.type) | sampleid, ~ factor(task.type) | studyid), mods=~factor(task.type)-1)
which does allows for a negative correlation. With struct="HCS" you could also allow for different variances across tasks. And with struct="UN" you could also allow for different correlations. But the latter estimates 8 variances and 12 correlations and that might be asking a bit much here.
Since studyid and sampleid have nearly the same number of levels, you might consider dropping one of those levels. Maybe you can get this to converge:
multi.task <- rma.mv(yi=g, V = var.g, data=df, random= ~ factor(task.type) | sampleid, struct="UN", mods=~factor(task.type)-1)
I suspect that things may start to look a bit more like the 'subgroup' models then.
Best,
Wolfgang
-----Original Message-----
From: R-sig-meta-analysis [mailto:r-sig-meta-analysis-bounces at r-project.org] On Behalf Of Maximilian Theisen
Sent: Wednesday, 18 April, 2018 18:09
To: r-sig-meta-analysis at r-project.org
Subject: [R-meta] Why am I getting different means when conducting multilevel meta-analysis with factorial moderator vs. as subgroups?
Hello!
I am conducting a multilevel meta-analysis using metafor in R. I have
effect sizes ("esid") nested within samples ("sampleid") nested within
publications ("studyid"). I have four subgroups ("task.type").
The mean effect sizes for each subgroup differ depending on whether I
use task.type as a moderator or run the rma.mv command for each subgroup
independently.
This is the code I use with task.type as moderator:
multi.task <- rma.mv(yi=g, V = var.g, data=df, random=list(~ 1 | esid,
~1 | sampleid, ~1 | studyid), mods=~factor(task.type)-1)
Multivariate Meta-Analysis Model (k = 142; method: REML)
Variance Components:
estim sqrt nlvls fixed factor
sigma^2.1 0.0942 0.3069 142 no esid
sigma^2.2 0.7769 0.8814 29 no sampleid
sigma^2.3 0.0000 0.0001 25 no studyid
Test for Residual Heterogeneity:
QE(df = 138) = 950.2971, p-val < .0001
Test of Moderators (coefficient(s) 1:4):
QM(df = 4) = 29.9283, p-val < .0001
Model Results:
estimate se zval pval ci.lb ci.ub
factor(task)1 0.6072 0.2360 2.5729 0.0101 0.1446 1.0697 *
factor(task)2 -0.5173 0.2559 -2.0212 0.0433 -1.0189 -0.0157 *
factor(task)3 0.5755 0.2048 2.8100 0.0050 0.1741 0.9769 **
factor(task)4 0.6173 0.4333 1.4246 0.1543 -0.2320 1.4665
This is the one I use when computing the model for each task.type
individually:
task.X <- rma.mv(yi=g, V = var.g, data=df, subset=(task=="X"),
random=list(~ 1 | esid, ~ 1 |sampleid, ~ 1 | studyid))
Task 1:
Multivariate Meta-Analysis Model (k = 27; method: REML)
Variance Components:
estim sqrt nlvls fixed factor
sigma^2.1 0.1685 0.4105 27 no esid
sigma^2.2 0.1307 0.3616 7 no sampleid
sigma^2.3 0.1307 0.3616 7 no studyid
Test for Heterogeneity:
Q(df = 26) = 115.1759, p-val < .0001
Model Results:
estimate se zval pval ci.lb ci.ub
-0.0649 0.2289 -0.2836 0.7767 -0.5135 0.3837
Task 2:
estimate se zval pval ci.lb ci.ub
0.3374 0.6983 0.4832 0.6290 -1.0312 1.7060
Task 3:
estimate se zval pval ci.lb ci.ub
0.3862 0.1254 3.0808 0.0021 0.1405 0.6319 **
Task 4:
estimate se zval pval ci.lb ci.ub
0.6126 0.3409 1.7971 0.0723 -0.0555 1.2807 .
Why are the results so different?
Best,
Max
More information about the R-sig-meta-analysis
mailing list