[R] Metafor and forest(); not showing 'ilab' and text

Viechtbauer Wolfgang (STAT) wolfgang.viechtbauer at maastrichtuniversity.nl
Mon Aug 31 19:28:21 CEST 2015


Have you read help(rma.mv)? It describes in detail what "random = ~ 1 | author" does. Also, I think you may find some of these useful:

http://www.metafor-project.org/doku.php/analyses#multivariate_multilevel_meta-analysis_models

Especially: http://www.metafor-project.org/doku.php/analyses:konstantopoulos2011

Using "random = ~ 1 | author" is likely to be insufficient. You also need to add random effects at the observation level.

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    

> -----Original Message-----
> From: Marco Colagrossi [mailto:marco.colagrossi at gmail.com]
> Sent: Monday, August 31, 2015 18:37
> To: Michael Dewey
> Cc: Viechtbauer Wolfgang (STAT); r-help at r-project.org
> Subject: Re: [R] Metafor and forest(); not showing 'ilab' and text
> 
> The solution that you proposed works perfectly, thank you very much.
> 
> I'll wait for Wolfgang answer as I'm having few doubts about the models.
> 
> Thanks
> 
> On 31 August 2015 at 18:34, Michael Dewey <lists at dewey.myzen.co.uk>
> wrote:
> > Comments in line
> >
> > On 31/08/2015 16:08, Marco Colagrossi wrote:
> >>
> >> Thanks for your help,
> >>
> >> I got the mistake I was making and I managed to find a solution
> >> regarding those graphs; I don't want to abuse of your patience but I
> >> have three further questions:
> >>
> >> 1. Always regarding the forest plots, it is possible to make a
> >> cross-subset? I try to explain my self better; I have one dummy
> >> variable called pub and another variable called SIMiv that can take
> >> the values of "share", "loan", "number" and "duration". How can I
> >> subset my sample so that the forest shows only (for example) studies
> >> when the dummy takes the value of 1 and the SIMiv variable takes the
> >> values of "share" and "loan"?
> >> Something like this:
> >> forest(pc, var, ci95m, ci95p, slab = authoryear2, psize=1,
> >> subset=(pub==1, SIMiv=("share", "loan", "duration"))
> >>
> >
> > Do you not want something like
> > (pub == 1) & (SIMIv %in% c("share", "loan", "duration"))
> >
> >
> >> 2. I have few doubts regarding the multilevel modeling;
> >>      rma.mv(pc, var, random = ~ 1 | author, data=codebook)
> >>     if I'm correct this should be a multilevel model nested at
> "author"
> >> level; what I cannot understand If it is a varying intercept
> >> (Y=A+BjX), a varying slope (Y=Aj+BX) or a varying intercept&slope
> >> model (Y=Aj+BjX). Are there the formulas for it somewhere? So far I
> >> only found the formulas for the estimators included in the metafor
> >> package.
> >>
> >
> > I think it a random intercept but Wolfgang may correct me there.
> >
> >
> >> 3. metareg1 <- rma.mv(pc, var, random = ~ 1 | author, mods = ~ pub +
> >> SIMiv, data=codebook)
> >> Again, if I'm correct this should be a multilevel meta regression
> >> (correct me if I'm wrong); I have the same doubts as before.
> >>
> >> Thank you again
> >>
> >> Marco
> >>
> >> On 25 August 2015 at 19:24, Michael Dewey <lists at dewey.myzen.co.uk>
> wrote:
> >>>
> >>> Dear Marco
> >>>
> >>> When you change xlim it increases the width of the forest plot in the
> >>> sense
> >>> you describe. It does not push your text out of the way to make space
> for
> >>> it
> >>> but instead overprints it. You may like to use alim to truncate your
> >>> confidence interval whiskers to fit within the space you see or make
> your
> >>> labels shorter.
> >>>
> >>>
> >>> On 25/08/2015 17:25, Marco Colagrossi wrote:
> >>>>
> >>>>
> >>>> I think I've not explained myself well. When I say "the width of the
> >>>> forest plot" I mean the region above the observed outcome, the
> >>>> "actual" forest plot, not the plot as a whole. Even if I change
> values
> >>>> for Xlim, cex or ilab.xpos the width of that particular region
> within
> >>>> the plot doesn't change.
> >>>>
> >>>> Best,
> >>>>
> >>>> Marco
> >>>>
> >>>> On 25 August 2015 at 18:11, Viechtbauer Wolfgang (STAT)
> >>>> <wolfgang.viechtbauer at maastrichtuniversity.nl> wrote:
> >>>>>
> >>>>>
> >>>>> The 'xlim' argument does not change the actual width of the
> plotting
> >>>>> device. For that, you need to use the 'width' argument with
> whatever
> >>>>> device
> >>>>> you are actually using. You can then use the 'xlim' argument to
> create
> >>>>> appropriate spacing to the left/right of the part of the plot that
> >>>>> shows the
> >>>>> estimates and their CIs. Within that space, you can then add
> additional
> >>>>> columns with the 'ilab' argument. It's up to you to find an
> appropriate
> >>>>> combination of plotting device width, character/symbol expansion
> factor
> >>>>> ('cex' argument), 'xlim' values, and 'ilab.xpos' values to create a
> >>>>> nice
> >>>>> looking plot that has no overlapping text and no excessive white
> space.
> >>>>> An
> >>>>> example is this:
> >>>>>
> >>>>>
> >>>>> http://www.metafor-
> project.org/doku.php/plots:forest_plot_with_subgroups
> >>>>>
> >>>>> Note that it took me dozens of iterations to create that plot. You
> just
> >>>>> have to start experimenting.
> >>>>>
> >>>>> Best,
> >>>>> Wolfgang
> >>>>>
> >>>>>> -----Original Message-----
> >>>>>> From: Marco Colagrossi [mailto:marco.colagrossi at gmail.com]
> >>>>>> Sent: Tuesday, August 25, 2015 17:59
> >>>>>> To: Viechtbauer Wolfgang (STAT)
> >>>>>> Cc: r-help at r-project.org; Michael Dewey
> >>>>>> Subject: Re: [R] Metafor and forest(); not showing 'ilab' and text
> >>>>>>
> >>>>>> Thanks again for your help. I'm sorry to bother you but I don't
> get
> >>>>>> how to widen the forest plot; if I try to change the values of
> xlim or
> >>>>>> the ilab.xpos values the width of the forest plot region does not
> >>>>>> change, but only moves on the graphs. What I'm I missing?
> >>>>>>
> >>>>>>
> >>>>>> forest(pc, var, ci95m, ci95p, slab = authoryear, psize=1,
> >>>>>> subset=(pub==1),
> >>>>>>          xlim = c(-16, 6),
> >>>>>>          ilab = data.frame(SIMdv, SIMiv),
> >>>>>>          ilab.xpos = c(-7.5, -5.5), cex = 0.75)
> >>>>>> op <- par(cex=.75, font=2)
> >>>>>>         text(c(-7.5, -5.5), 54, c("DV", "IV"))
> >>>>>>         text(-16,                54, "Author(s) and Year",
> pos=4)
> >>>>>>         text(6,                  54, "Outcome [95% CI]", pos=2)
> >>>>>> par(op)
> >>>>>>>
> >>>>>>>
> >>>>>>> par("usr")[1:2]
> >>>>>>
> >>>>>>
> >>>>>> [1] -16   6


More information about the R-help mailing list