[R-meta] inner-outer-grouping-factor-structure for multiple treatment studies

Vivien Bonnesoeur bonnesoeur.vivien at gmail.com
Fri Sep 1 02:48:17 CEST 2017


Dear Wolfgang
first of all, thank you very much for your quick and kind answer. I'm new
in this community and I find your work very useful. I'm sure I will manage
to perform this analysis with your help but for the moment I still have a
few difficulties.

I've been changing the way I'm computing the effect size and I have been
using the standardised mean difference instead of the log ratio of the mean
to be able to use the code from "gleser 2009".  In this code, the
covariance is :
matrix <http://stat.ethz.ch/R-manual/R-devel/library/base/html/matrix.html>(
1/x$n2i[1] + outer
<http://stat.ethz.ch/R-manual/R-devel/library/base/html/outer.html>(x$yi,
x$yi, "*")/(2*x$Ni[1]), nrow
<http://stat.ethz.ch/R-manual/R-devel/library/base/html/nrow.html>=nrow
<http://stat.ethz.ch/R-manual/R-devel/library/base/html/nrow.html>(x), ncol
<http://stat.ethz.ch/R-manual/R-devel/library/base/html/ncol.html>=nrow
<http://stat.ethz.ch/R-manual/R-devel/library/base/html/nrow.html>(x))
where n2i is the control group reused. I used this code because N was equal
for the treatment and reference group. There is only the study from Rhoade
where I'm not sure of the application of this formula because in this case
the treatment and the reference are reused once.
I was able to get the variance-covariance V matrix and I used the
metamodel3 <- rma.mv(yi, ], mods = ~ Land_use_change - 1, random = ~
factor(trial) | article, rho=1/2, data=ma.grass) to fit the model and I get
the error message :







*Error in .ll.rma.mv <http://ll.rma.mv>(opt.res$par, reml = reml, Y = Y, M
= V, A = A, X.fit = X,  :   Final variance-covariance matrix not positive
definite.De plus : Warning messages:1: In rma.mv <http://rma.mv>(yi, V[k,
k], mods = ~Luchange - 1, random = ~factor(trial) |  :  'V' appears to be
not positive definite.2: In rma.mv <http://rma.mv>(yi, V[k, k], mods =
~Luchange - 1, random = ~factor(trial) |  :  Redundant predictors dropped
from the model.*

after some tests restricting the matrix to individual studies, it appears
that the sub-matrix from the study Farle is not positive definite.
Could you give a little more help to solve this problem and to confirm that
the code I used was appropriate?
I would like not dropping this study which is quite important in the
meta-analysis.

Thanks in advance
Vivien


On Thu, Aug 31, 2017 at 2:18 PM, Wolfgang Viechtbauer <
wolfgang.viechtbauer at maastrichtuniversity.nl> wrote:

> Dear Vivien,
>
> This can be thought of as a network meta-analysis, so indeed, the
> dat.hasselblad1998 and dat.senn2013 datasets and the corresponding code in
> the example section of the corresponding help files are quite relevant.
>
> The dataset as given is in the format for a 'contrast-based' analysis. And
> when you have studies where the same group is being reused for computing
> the outcomes, then this results in dependency in the sampling errors of
> those outcomes. You may want to study carefully:
>
> http://www.metafor-project.org/doku.php/analyses:gleser2009
>
> You are dealing with multiple treatment studies. The code given there
> illustrates the computation of the covariance of outcomes that share a
> common group. I do not cover measure="ROM" there, but the covariance is:
>
> sd^2/(n*mean^2)
>
> from the group whose data is being re-used. So, if you want to compute
> this programmatically, you will have to do some coding to make that work
> (and it's a bit more complex in your case, since sometimes the first and
> sometimes the second group appears to be the 'reference' group). But the
> idea is that you need to build the entire V matrix.
>
> And indeed, that will capture the higher dependency in such studies.
>
> Then you need to go back to help(dat.hasselblad1998) and
> help(dat.senn2013) to see how the modeling is done there using a
> contrast-based model. It is shown there, so I rather not repeat all of that
> here.
>
> A final note:
>
> escalc() does not have a 'method' argument, so the 'method = "REML"' part
> of your call to escalc() doesn't do anything.
>
> Best,
> Wolfgang
>
> --
> Wolfgang Viechtbauer, Ph.D., Statistician | Department of Psychiatry and
> Neuropsychology | Maastricht University | P.O. Box 616 (VIJV1) | 6200 MD
> Maastricht, The Netherlands | +31 (43) 388-4170 | http://www.wvbauer.com
>
> On 08/31/2017 05:07 PM, Vivien Bonnesoeur wrote:
> Hi,
> I would need help about the way to model mutliple treatment studies.
> I have been posting a question on
> https://stats.stackexchange.com/questions/300425/metafor-rma
> -mv-function-inner-outer-grouping-factor-structure
> and was told to write to this list :
>
> I would like to know how to use the inner/outer grouping factor structure
> when my data set present some multiple treatment studies (e.g., when
> multiple treatment groups are compared with a common control/reference
> group, such that the data from the control/reference group is used multiple
> times to compute the effect sizes or outcomes)? I have been practicing the
> metafor examples "dat.hasselblad1998" and "dat.senn2013" where such
> multiple treatment studies exist but I could not understood exactly how the
> reference group was designated.
>
> I'm performing a meta-analysis on the impact of reforestation/forest cover
> change on the soil organic matter content. Here is the dataset I'm using
> (sep=";") :
>
>     1.
>   article;Land_use_change;forest_N;forest_mean;forest_sd;ref_
> N;ref_mean;ref_sd;inner_group_struct
>     2. Hes;Forestation – native forest;5;2,5;0,6;5;8,5;3,1;1
>     3. Hes;Forestation – native forest;5;9,1;1,2;5;22,4;3,2;2
>     4. Hes;Forestation – native forest;5;9,9;1,2;5;13,0;2,7;3
>     5. Hes;Afforestation – ungrazed grassland;5;0,6;0,2;5;0,6;0,0;4
>     6. Hes;Afforestation – ungrazed grassland;5;1,6;0,4;5;2,8;1,2;5
>     7. Henr;Afforestation – ungrazed grassland;3;6,0;0,5;3;7,0;0,4;6
>     8. Henr;Afforestation – grazed grassland;3;6,0;0,5;3;5,9;1,0;6
>     9. Henr;Afforestation – grazed grassland;3;5,9;3,2;3;5,6;4,8;7
>     10. Konin;Regrowth – grazed grassland;8;6,7;2,0;8;4,2;1,1;8
>     11. Konin;Regrowth – grazed grassland;8;9,0;3,3;8;6,4;1,7;9
>     12. Konin;Regrowth – grazed grassland;8;8,0;0,8;8;8,6;3,0;10
>     13. Konin;Regrowth – grazed grassland;8;6,3;1,6;8;5,3;0,9;11
>     14. Konin;Regrowth – grazed grassland;8;6,8;1,5;8;5,3;2,3;12
>     15. Dub;Afforestation – native forest;6;7,6;1,0;6;10,6;1,1;13
>     16. Dub;Afforestation – grazed grassland;6;7,6;1,0;6;13,5;0,8;13
>     17. Chaco;Afforestation – native forest;6;36,6;12,1;6;40,7;17,9;14
>     18. Chaco;Afforestation – grazed grassland;6;40,5;7,7;6;40,3;7,7;15
>     19. Rhoade;Forestation – native forest;10;9,2;4,1;10;11,3;2,5;16
>     20. Rhoade;Forestation – native forest;10;12,9;4,1;10;11,3;3,5;16
>     21. Rhoade;Regrowth – grazed grassland;10;9,2;4,1;10;9,3;2,7;16
>     22. Rhoade;Regrowth – grazed grassland;10;12,9;4,1;10;9,3;2,7;16
>     23. Schlatte;Forestation – native forest;10;14,3;3,1;12;12,6;2,9;17
>     24. Farle;Afforestation – ungrazed grassland;10;5,7;1,6;30;7,2;1,9;18
>     25. Farle;Afforestation – ungrazed grassland;30;6,0;0,9;30;7,2;1,9;18
>     26. Farle;Afforestation – ungrazed grassland;30;4,7;1,1;30;7,2;1,9;18
>     27. Nosett;Afforestation – ungrazed grassland;5;8,6;6,9;3;8,8;7,0;19
>     28. Nosett;Afforestation – grazed grassland;5;8,6;6,9;5;9,0;7,0;19
>     29. ManN;Afforestation – grazed grassland;24;7,5;0,8;24;5,7;1,0;20
>     30. Breme;Afforestation – grazed grassland;60;45,1;3,4;66;39,7;5,4;21
>
> article refers to the study where the data are extracted, Land-use change
> is the fixed effect I'm interested in. In each row, I'm comparing a
> forestation situation with the referent situation and I've used escalc to
> compute the effect size= log ratio of the means
>
> ma.grass=escalc(m1 = forest_mean, m2 = ref_mean,
>              sd1 = forest_sd, sd2 = ref_sd,
>              n1 = forest_N, n2 = ref_N,
>              method = "REML", measure = "ROM",slab=article,
>              )
>
> The articles "Dub", "Rhoade", "Farle" and "Nosett" are multiple treatment
> studies. For example in "Farle", the the soil matter content of 3 different
> pine plantations are compared to a single control. In the same time, an
> article like "Hes" gives 5 contrasts from 5 paired-site measurement. Indeed
> those 5 contrasts are not independent (same methodology, they come from the
> same region, etc...) but I believe the correlations between the contrast
> are less strong than between contrasts calculated from the same reference
> group as in the above multiple treatment studies. How can I model correctly
> these *a prior* different type of correlations within studies? My guess is
>
> I need to use article as the outer factor but I don't know what to write in
> the inner factor. I have been trying many different inner group factors but
> in any cases the results were satisfying. For example, like in
> "dat.hasselblad1998" and "dat.senn2013", I used :
>
> metamodel1=rma.mv
> (yi,vi,data=ma.grass,mods=~Land_use_change-1,random=~factor(
> id)|article,method="REML")
>
> but the results were not satisfying to me since the Land use change
> "Afforestation - ungrazed grassland" should be significantly <0
>
> I then created a "inner_group_struct"
>
> metamodel3=rma.mv(yi,vi,data=ma.grass,mods=~Land_use_change-
> 1,random=~factor(inner_group_struct)|article,struct="UN",method="REML")
>
> but it is still not satysfing : the Land.use_change "Forestation - native
> forest" is estimated to be >0 while almost all the raw Effect Size from
> this treatment apart 1 are negative.
>
> any help will be much appreciated for modeling the inner group structure.
> Kind regards
>
> --
> Vivien BONNESOEUR
> Docteur en biologie forestière
>



-- 
Vivien BONNESOEUR
Docteur en biologie forestière

	[[alternative HTML version deleted]]



More information about the R-sig-meta-analysis mailing list