[R-meta] Meta-analysis of multiple treatment studies
Viechtbauer Wolfgang (SP)
wolfgang.viechtbauer at maastrichtuniversity.nl
Mon Nov 6 15:13:44 CET 2017
Hi Jonas,
My preference would be Model 3, with random effects for "ID", "control group", and "experiment" (or only one of the latter two, especially if there are only few experiments with multiple control groups). You have all of the information needed to compute the covariances between ROM values sharing a common control group, so why ignore the covariances and then rely on cluster-robust inference methods to fix things up? You could still use that approach as a sensitivity analysis -- but I would base it on a good working model and that would be something along the lines of Model 3.
As for normality -- yes, if important moderators/predictors are omitted from the model, then this could lead to non-normally distributed standardized residuals.
Best,
Wolfgang
-----Original Message-----
From: R-sig-meta-analysis [mailto:r-sig-meta-analysis-bounces at r-project.org] On Behalf Of Jonas Duus Stevens Lekfeldt
Sent: Monday, 06 November, 2017 14:40
To: r-sig-meta-analysis at r-project.org
Subject: [R-meta] Meta-analysis of multiple treatment studies
Dear all
I am currently conducting a meta-analysis of results from a number (~140) pot and field experiments with plants (wheat, maize and tomato). We are basically analyzing if adding different types of bacteria, fungi, seaweed extracts etc. make the plants grow better (produce larger yields). I am using the log(response ratio) or "ROM" as the effect size.
In this analysis I have a multi-level data structure since in all experiments more than one specific treatment was compared to the same control. Furthermore an experiment may also include treatments which do not share a common control. I want to investigate the effect of a number of moderators (eg. type of organism added, plant species investigated etc.).
The data structure looks something like this (it is much longer this is just an example and I have omitted the moderator columns here for simplicity):
ID Treatment Experiment ControlName mean_control sd_control mean_treated sd_treated n1i n2i
1 TriP UHOH_2013 UHOH_2013_A number number number number number number
2 Pro UHOH_2013 UHOH_2013_A number number number number number number
3 RhVi UHOH_2013 UHOH_2013_A number number number number number number
4 TriP UCPH_2013 UCPH_2013_A number number number number number number
5 BioDC UCPH_2013 UCPH_2013_A number number number number number number
6 TriP UCPH_2013 UCPH_2013_B number number number number number number
7 BioDC UCPH_2013 UCPH_2013_B number number number number number number
8 E FiBL_2013 FiBL_2013_A number number number number number number
9 F FiBL_2013 FiBL_2013_A number number number number number number
10 G FiBL_2013 FiBL_2013_A number number number number number number
Where
m1i: mean of control (shared between some of the treatments)
sd1i: standard deviation of control
m2i: mean of the treated
sd2i: standard deviation of treated
n1i: sample size of control
n2i: sample size of control
It should be noted that the sample sizes n1i and n2i normally are 5 or smaller.
I have considered three different models:
Model 1:
So far I have used the rma.uni() function and then the robust() function with the cluster argument indicating groups of observations that are sharing a common control (cluster="ControlName") to model the data
However, I am not sure if this is correct since as I see it doing it this way the model does not include the random effects of "control groups" and "experiment" when calculating the overall effect only in the calculation of the CI. Did I understand this correctly?
One thing I just discovered with this model is that the data do not seem to be normally distributed when I use the function qqnorm.rma.uni() when looking at a simple model without moderators. Is this a serious problem? And if moderators are significant (for instance different effect in different crops) would you not expect the data to deviate from normality when running a simple model without moderators. Or am I missing something?
I have considered to model the data using rma.mv() instead. I have considered the following two models:
Model 2:
Including "ID", "control group" and "experiment" (or only "ID" and "control group") as random variables in rma.mv() and then subsequently use robust() to correct the CI for the dependence on a common control treatment within experiments.
Model 3:
Including a calculated variance-covariance matrix (V argument in rma.mv()). Here I ran into problems with the var-covar matrix when all data were included.
Which of the three Models (if any) would people in the forum advise me to use? Is model 1 completely wrong?
Best regards
Jonas Duus Stevens Lekfeldt
More information about the R-sig-meta-analysis
mailing list