Skip to content

[R-meta] Freeman-Tukey double arcsine transformation and harmonic mean

3 messages · Naike Wang, Viechtbauer Wolfgang (STAT)

#
Hi all,
I have two questions.
1) In this article
<https://mail.jjay.cuny.edu/owa/redir.aspx?C=jnnID1xyBS33HM9BECtjC_Z23ilF54mDEf0zdCS88qMPhZkvMsXUCA..&URL=http%3a%2f%2fwww.metafor-project.org%2fdoku.php%2fanalyses%3amiller1978>,
Dr. Wolfgang Viechtbauer used the harmonic mean of the sample sizes to
back-transform the estimated average transformed proportion (the pooled
proportion). If I don't want to use the harmonic mean,  is it possible to
use the *transf.ipft*, instead of the *transf**=**transf.ipft.hm
<http://transf.ipft.hm>*, to get the pooled proportion? If so, how do I do
that?

2) One of the reasons I asked the question is due to this article:
Meta-analysis
of prevalence
<https://drive.google.com/open?id=0B41wTxciaMqtNXVSNEFGazdPWFU>. The
authors of this article developed an Exel-based meta-analysis add-in
(MetaXL). MetaXL uses a different method to perform the double arcsine
transformation. The differences are two-fold.
First, MetaXL uses a different definition of  the Freeman-Tukey
transformation. The PFT values (yi) are twice as large as the values
computed by metafor and the variances (vi) are four times as large. The
different definitions are also explained here
<http://www.metafor-project.org/doku.php/faq#how_is_the_freeman-tukey_trans>
.
Second, it does not use the harmonic mean to perform the
back-transformation. According to the authors, it is better not to use the
harmonic mean because their simulation studies suggest that the harmonic
mean is not stable.
Basically, I'm asking how to get metafor to get the same results as
obtained in MetaXL? Do you agree with the MetaXL authors that it is better
not to use the harmonic mean?

I hope my questions make sense. Feel free to ask me anything if you don't
understand.

P.S. Dowload MetaXL here: http://www.epigear.com/index_files/metaxl.html
P.S.S. After you install MetaXL, open example "SchizophreniaPrev" to get a
sense of how it performs meta-analysis of proportions.

Cheers,
Naike
#
Hi Naike,

The first linked got mangled up. It is: http://www.metafor-project.org/doku.php/analyses:miller1978

The exact back/inverse transformation of the Freeman-Tukey (double arcsine) transformation requires that we specify the sample size for the transformed value. So:

library(metafor)
dat <- escalc(measure="PFT", xi=4, ni=10)
yi     vi
1 0.6936 0.0238

transf.ipft(dat$yi, ni=10)

yields a proportion of 0.4 as expected.

Now if you synthesize a whole bunch of transformed values and you want to back-transform that value to a proportion, you still need to specify some value for the sample size if you want to use the exact back-transformation. Miller (1978), who derived the back-transformation, suggested to use the harmonic mean of the sample sizes. That is what transf.ipft.hm() does. Using the harmonic mean of the sample sizes is a rather heuristic method that may or may not work so well. I would be interested in any published papers that show this to be a problem.

I don't know what MetaXL does for the back-transformation, but maybe it just pretends that the values are arcsine-square-root transformed proportions and then uses the back-transformation for that -- which does not require one to specify the sample size. The difference is typically negligible:

transf.iarcsin(dat$yi)

yields 0.4086998. But then, one might as well just do the meta-analysis directly with the AS transformed proportions:

dat <- escalc(measure="PAS", xi=4, ni=10)
dat
yi     vi
1 0.6847 0.0250

transf.iarcsin(dat$yi)

gives back 0.4 exactly.

Or one could go directly to a logistic mixed-effects model for the analysis. You can do that with rma.glmm().

Best,
Wolfgang
#
Thank you for your answer, Dr. Viechtbauer.
I think you were right. MetaXL seems to apply the inverse transformation of
the arcsine transformation to double arcsine transformed proportions in
order to pool an average proportion. I tested this assumption with
the example dataset "SchizophreniaPrev" built in MetaXL and yielded very
similar results.
Here's my code:

dat=read.csv("your working directory\\schizophreniaprev.c
sv",header=T,sep=",")
transf.ies=escalc(measure="PFT",xi=cases,ni=total,data=dat, add=0) #computing
individual transformed proportions using the double arcsine transformation
transf.pes=rma(yi,vi,data=transf.ies,method="DL",weighted=TRUE) #pooling
transformed proportions under the random effect size model
pes=predict(transf.pes,transf=transf.iarcsin) #back-transforming
with inverse of the arcsine transformation
print(pes,digits=4)
pred         ci.lb       ci.ub
0.5856    0.5089   0.6603
pred         ci.lb       ci.ub
0.5875 0.5098   0.6632

Thank you again for your time.

Cheers,
Naike

2017-07-07 9:41 GMT-04:00 Viechtbauer Wolfgang (SP) <
wolfgang.viechtbauer at maastrichtuniversity.nl>:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://stat.ethz.ch/pipermail/r-sig-meta-analysis/attachments/20170707/31e19a8d/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: schizophreniaprev.csv
Type: text/csv
Size: 82 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-sig-meta-analysis/attachments/20170707/31e19a8d/attachment-0001.csv>