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

Michael Dewey lists at dewey.myzen.co.uk
Fri Sep 1 10:19:34 CEST 2017


Dear Vivien

Your email got rather scrambled I fear. Can you try re-sending it after 
setting your mailer to send plain text instead of HTML to see whether 
that fixes the problem?

Michael

On 01/09/2017 01:48, Vivien Bonnesoeur wrote:
> 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
>>
> 
> 
> 

-- 
Michael
http://www.dewey.myzen.co.uk/home.html



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