Skip to content

Using Metafor package: how to backtransform model coefficients when Freeman Tukey double arcine transformation is used

2 messages · Bruijning-Verhagen, P.C.J.L., Viechtbauer Wolfgang (STAT)

#
Dear Patricia,

I was recently asked the exact same question, so the answer is yes, but it takes a little bit of extra work and the newest version of the metafor package (version 1.5-0, which was submitted to CRAN yesterday and which should hopefully be ready for download in a few days).

I'll briefly describe the additional difficulty that comes with this transformation and the solution. The inverse of the Freeman Tukey double arcine transformation is described in: Miller, J. J. (1978). The inverse of the Freeman-Tukey double arcsine transformation. American Statistician, 32(4), 138. It's a bit messy, but it works just fine:
xi ni   pi        yi         vi
1  0 10 0.00 0.1531387 0.02380952
2  1 10 0.10 0.3733940 0.02380952
3 12 20 0.60 0.8813361 0.01219512
4 38 40 0.95 1.3224900 0.00617284
5 40 40 1.00 1.4923885 0.00617284
[1] 0.00 0.10 0.60 0.95 1.00

Okay, so far so good. Note that in order to back-transform a Freeman Tukey transformed value, we not only need the transformed value itself (dat$yi), but also the corresponding n (dat$ni). This is why the transf.ipft() function takes two arguments.

Now we fit a fixed- (or random-) effects model to these data and then want to back-transform the estimated average, so we get an estimate in the original units (i.e., as a proportion). But what n should we use? After all, the n that applies to the estimated average is not the same as the n for any individual transformed value. Miller (1978) makes a suggestion here and proposes to use the harmonic mean of the n's. So, let's use that:
Fixed-Effects Model (k = 5)

Test for Heterogeneity: 
Q(df = 4) = 96.4471, p-val < .0001

Model Results:

estimate       se     zval     pval    ci.lb    ci.ub          
  1.1233   0.0452  24.8643   <.0001   1.0347   1.2118      *** 

---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
pred    se  ci.lb  ci.ub
 0.8306    NA 0.7529 0.8977

In order to use the transf.ipft.hm() function, you need to supply a list with the individual n's via the targs argument, so that the harmonic mean can be computed.

Okay, so that works as well. But if you now want to draw a forest plot, things get messy. For example, neither of these plots:
will work, since the individual values will also be back-transformed using the harmonic mean of the n's, which now yields the wrong back-transformed values.

So, here is what you need to do:
And this plot has the correct back-transformed values for the individual proportions and the estimated average.

Again, it will take a few days before the new version of the metafor package is available via CRAN. Then that will allow you to do this.

Best,