[R-meta] question on scatter plot of estimates (Fisher's Z) against the standard error
Gabriel Cotlier
g@b|k|m01 @end|ng |rom gm@||@com
Fri Jul 21 08:28:32 CEST 2023
Dear Greta,
Thank you very much.
The code you provided for the funnel plot is exactly what I was looking
for.
I just changed my refline to zero and adjusted the xlim to the interval [-4
6], so it is exactly the same as the metafor::funnel plot but without all
the background, keeping only the scattering of the points.
Thanks a lot again.
Kind regards,
Gabriel
On Thu, Jul 20, 2023 at 11:21 PM Dr. Gerta Rücker <
gerta.ruecker using uniklinik-freiburg.de> wrote:
> Dear Gabriel,
>
> Both plots are correct and equivalent (though I like the metafor plot much
> more). If it is only to get rid of the confidence region, why don't you use
> the funnel() function of metafor and suppress all elements you don't want?
> For example, try (object funnel_all taken from your R code, fictitious
> data coming from me, as you did not provide them!)
>
> ri <- c(0.5, 0.6, 0.7, 0.8, 0.9)
> ni <- c(100,110,150,200,250)
> dat <-escalc(measure = "ZCOR", ri = ri, ni = ni)
>
> funnel_all <- rma.mv(yi, vi, data=dat)
> funnel(funnel_all, back = "white", shade = "white", level = 0, xlim =
> c(0.5,1.6), refline = 2)
>
> The xlim argument is used to fix the x-axis range, while putting the
> refline outside the visible region (simply a trick, I couldn't find an
> argument to determine the refline's color). You may also change the y-axis
> range, e.g.,
>
> funnel(funnel_all, back = "white", shade = "white", level = 0, xlim =
> c(0.5,1.6), refline = 2, ylim = c(0.06, 0.105))
>
> if you think this makes sense. With respect to the inverted axis, see
> Michael's post.
>
> Best,
> Gerta
>
>
>
> UNIVERSITÄTSKLINIKUM FREIBURG
> Institute for Medical Biometry and Statistics
>
> Dr. Gerta Rücker
> Guest Scientist
>
> Stefan-Meier-Straße 26 · 79104 Freiburg
> gerta.ruecker using uniklinik-freiburg.de
>
> https://www.uniklinik-freiburg.de/imbi-en/employees.html?imbiuser=ruecker
>
>
> -----Ursprüngliche Nachricht-----
> Von: R-sig-meta-analysis <r-sig-meta-analysis-bounces using r-project.org> Im
> Auftrag von Gabriel Cotlier via R-sig-meta-analysis
> Gesendet: Donnerstag, 20. Juli 2023 16:28
> An: Michael Dewey <lists using dewey.myzen.co.uk>
> Cc: Gabriel Cotlier <gabiklm01 using gmail.com>; R Special Interest Group for
> Meta-Analysis <r-sig-meta-analysis using r-project.org>
> Betreff: Re: [R-meta] question on scatter plot of estimates (Fisher's Z)
> against the standard error
>
> Dear Michael,
> Here is the code below:
> Thanks a lot.
> Kind regards,
> Gabriel
>
> ## Transformation of Pearson's Product-moment correlation coefficient (r)
> to Fisher's Z
> dat <-escalc(measure = "ZCOR",
> ri = ri,
> ni = ni,
> data = dat)
>
> ##
> funnel_all <- rma.mv(yi,
> vi,
> # mods = ~ Type,
> random = ~ 1 | Article / Sample_ID,
> data=dat)
>
> funnel_all
> ## funnel plot form metafor
> funnel(funnel_all)
>
> ## Variance : from general model extracted
> vi_data <-funnel_all$vi
>
> ## Estimates : from general model extracted estimates
> yi_data <-funnel_all$yi[1:150]
>
> ## calculate standard error SE: square root of the variance
> SE<- sqrt(vi_data)
>
> # estimates
> E <-funnel_all$yi
>
> ## construct data frame
> df <- data.frame (Estimates = c(E), Standsrd_Error = c(SE))
> View(df)
> library(ggplot2)
> ## Scatter plot
> scaleFUN <- function(x) sprintf("%.2f", x)
> p<- ggplot(df, aes(x=Estimates, y=Standsrd_Error)) +
> geom_point(aes(size = Estimates), alpha=0.7, color="#2568E6")+
> scale_size_area() +
> labs(x = "Fisher's z",
> y = "Standard Error (SE)")+
> theme(plot.title = element_text(hjust = 0.5))+
> # theme(plot.margin = unit(2 ,8, 8, 2), "cm"))+
> scale_y_continuous(n.breaks = 12,labels=scaleFUN)+
> scale_x_continuous(n.breaks = 12,labels=scaleFUN)+
> geom_vline(xintercept = 0)+
> theme(axis.text.y = element_text(size = 15))+
> theme(axis.text.x = element_text(size = 15))+
> theme(axis.title.y = element_text(size = 15))+
> theme(axis.title.x = element_text(size = 15))+
> ggtitle( "Fisher's z vs. Standard Error")+
> theme(plot.title = element_text(size = 17, face = "bold"))+
> theme(legend.text = element_text(size = 15))
> p
> png(filename = "myplot.png", width = 28, height = 18 ,units = "cm" , res
> =100 )
> print(p)
> dev.off()
>
>
>
> On Thu, Jul 20, 2023 at 4:51 PM Michael Dewey <lists using dewey.myzen.co.uk>
> wrote:
>
> > Dear Gabriel
> >
> > Comments in-line
> >
> > On 20/07/2023 05:55, Gabriel Cotlier wrote:
> > > Dear Michael,
> > >
> > > I think you are completely right, in the fact, the plot I am producing
> > > is indeed valid for the purpose for which I want to use it, meaning it
> > > is representative of the relationship I want to show. Therefore, I
> > > assume that the plot I am getting, is supposed to be sufficient.
> > >
> > > However, I receive from the function metafore:: funnel (model), for a
> > > model without modierators, a very nice representation of the scarring
> of
> > > the observed outcomes or the estimates (x axis), as a function of the
> SE
> > > (e.i., square root of the sampling variance, SE assumef to have a
> pseudo
> > > confidence interval region drawn around each of its values). While,
> when
> > > I plot by myself
> > > x = observed outcomes
> > > y = square root of the sampling variance,
> > >
> > > Then the plot shows that:
> > > a. the scattering of the points appears upside down with respect to
> the
> > > output of the function metafore:: funnel (model),
> >
> > I have already answered that one in a previous post. It is just the
> > convention
> >
> > > b. the scale of the y axis, instead of having a defined top at zero and
> > > from there values are represented downwards, the scale is different.
> > >
> >
> > Without your code it is hard to tell but I suspect you are not plotting
> > what you think you are. Are you plotting the inverse of the se?
> >
> > Michael
> >
> > >
> > > Anyways, I started thinking that in any case, such a difference in the
> > > plot I am doing by myself is not necessarily wrong, but is just a
> > > different way of representing the data. Just the scattering of the
> > > points in one case looks like the upside down scattering of the other.
> > > And I assume this is because maybe the function metafore::funnel()
> > > applies some operation on the square root of the mean (y axis) that I
> > > presume is the calculation of the aforementioned pseudo confidence
> > > interval for each value, but I am not sure.
> > >
> > > Thanks a lot for your response.
> > > Kind regards,
> > > Gabriel
> > >
> > > On Wed, Jul 19, 2023 at 7:20 PM Michael Dewey <lists using dewey.myzen.co.uk
> > > <mailto:lists using dewey.myzen.co.uk>> wrote:
> > >
> > > I am sorry Gabriel but I do not understand why the plot you say you
> > > produced fails to do what you say you want.
> > >
> > > Michael
> > >
> > > On 19/07/2023 10:59, Gabriel Cotlier wrote:
> > > > Hello Michael,
> > > > Thank you very much for your response.
> > > > I just would like to show that the of data set I have has high
> > > > uncertainty given that no possible pattern is observable or
> > > detectable
> > > > and no order is possible to visulize in the scattering,
> > > > I thought that a plot with x axis = fisher's z observed
> > > > outcomes (estimates) and y axis = standard error or any
> > > other measure of
> > > > uncertainty could at least visually demostrate that assumption.
> > > > If such a lack of pattern or high uncertainty in the data set
> can
> > > also
> > > > be demonstrated numerically, even better.
> > > > Kind regards,
> > > > Gabriel
> > > >
> > > > On Wed, Jul 19, 2023 at 12:29 PM Michael Dewey
> > > <lists using dewey.myzen.co.uk <mailto:lists using dewey.myzen.co.uk>
> > > > <mailto:lists using dewey.myzen.co.uk
> > > <mailto:lists using dewey.myzen.co.uk>>> wrote:
> > > >
> > > > Dear Gabriel
> > > >
> > > > I am not realy sure what you are trying to do but one point
> > which
> > > > occurs
> > > > to me is that forest plots are conventional plotted with
> small
> > > > values of
> > > > standard error at the top.
> > > >
> > > > Michael
> > > >
> > > > On 19/07/2023 06:07, Gabriel Cotlier via R-sig-meta-analysis
> > > wrote:
> > > > > Dear all,
> > > > >
> > > > > I have already posted this question with no response.
> > > > > Maybe this time I am luckier and someone with more
> > > knowledge than
> > > > me in the
> > > > > Metafor package can answer me.
> > > > >
> > > > > In a nutshell, what I would like is to be able to
> produce a
> > > > scatter plot of
> > > > > the observed oucomes or the estimates, in my case
> Fisher's
> > > z for
> > > > the x axis
> > > > > and the standard error in the y axis, with the standard
> > error
> > > > (SE) the
> > > > > same as it appears when running the funnel() function
> for a
> > > > funnel plot
> > > > > with the model (without moderators) as the input
> argument.
> > > > Actually, it is
> > > > > a funnel plot without the background of the funnel
> > > distribution
> > > > but just
> > > > > the scatter of points, that is suppressing the funnel
> > > distribution on
> > > > > the background.
> > > > >
> > > > > I tried to do so in agreement with the definition of SE
> > > used for
> > > > the funnel
> > > > > plot in the package Vignette published at Journal of
> > > Scientific
> > > > software in
> > > > > page 26:
> > > > >
> > > > > "*For models without moderators, the figure shows the
> > observed
> > > > outcomes on
> > > > > the horizontal axis against their corresponding standard
> > > errors
> > > > (i.e., the
> > > > > square root of the sampling variances) on the vertical
> > axis. A
> > > > vertical
> > > > > line indicates the **estimate based on the model. A
> pseudo
> > > confidence
> > > > > interval region is drawn around this value with bounds
> > > equal to
> > > > ±1.96 · SE,
> > > > > where SE is the standard error value from the vertical
> > axis.*"
> > > > >
> > > > >
> > > > > I tried to reproduce the vertical axis (y) using the
> > > square root
> > > > of the
> > > > > sampling variable, but the result was an upside down
> > > scaling of the
> > > > > observed outcomes or estimates on a different y scale for
> > > the x
> > > > ticks. The
> > > > > plot seems to have similarities with the funnel plot from
> > the
> > > > funnel()
> > > > > function, but it is not exactly the same without the
> > > background
> > > > of the
> > > > > funnel distribution graphic. Maybe the problem could be
> > > that in the
> > > > > funnel() function, contrary to my simple attempt to
> > imitate it
> > > > with the
> > > > > square root of the sampling variable, the pseudo
> confidence
> > > > interval is
> > > > > estimated for each value? Could this be the reason?
> > > > >
> > > > >
> > > > > If so, how could I reproduce the funnel () function plot
> > > without
> > > > the funnel
> > > > > distribution graphic in the background and just the
> > > scattering of the
> > > > > points using the same pseudo-confidence interval?
> > > > >
> > > > >
> > > > > Thanks a lot for your help and assistance.
> > > > >
> > > > > Kind regards,
> > > > >
> > > > > Gabriel
> > > > >
> > > > > [[alternative HTML version deleted]]
> > > > >
> > > > > _______________________________________________
> > > > > R-sig-meta-analysis mailing list @
> > > > R-sig-meta-analysis using r-project.org
> > > <mailto:R-sig-meta-analysis using r-project.org>
> > > > <mailto:R-sig-meta-analysis using r-project.org
> > > <mailto:R-sig-meta-analysis using r-project.org>>
> > > > > To manage your subscription to this mailing list, go to:
> > > > >
> https://stat.ethz.ch/mailman/listinfo/r-sig-meta-analysis
> > > <https://stat.ethz.ch/mailman/listinfo/r-sig-meta-analysis>
> > > > <https://stat.ethz.ch/mailman/listinfo/r-sig-meta-analysis
> > > <https://stat.ethz.ch/mailman/listinfo/r-sig-meta-analysis>>
> > > > >
> > > >
> > > > --
> > > > Michael
> > > > http://www.dewey.myzen.co.uk/home.html
> > > <http://www.dewey.myzen.co.uk/home.html>
> > > > <http://www.dewey.myzen.co.uk/home.html
> > > <http://www.dewey.myzen.co.uk/home.html>>
> > > >
> > > >
> > > >
> > > <
> >
> http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient
> > <
> >
> http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient
> >>
> > Virus-free.www.avg.com <http://Virus-free.www.avg.com> <
> >
> http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient
> > <
> >
> http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient
> > >>
> > > >
> > > > <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
> > >
> > > --
> > > Michael
> > > http://www.dewey.myzen.co.uk/home.html
> > > <http://www.dewey.myzen.co.uk/home.html>
> > >
> >
> > --
> > Michael
> > http://www.dewey.myzen.co.uk/home.html
> >
>
> [[alternative HTML version deleted]]
>
> _______________________________________________
> R-sig-meta-analysis mailing list @ R-sig-meta-analysis using r-project.org
> To manage your subscription to this mailing list, go to:
> https://stat.ethz.ch/mailman/listinfo/r-sig-meta-analysis
>
[[alternative HTML version deleted]]
More information about the R-sig-meta-analysis
mailing list