[R-meta] Help with variance stabilizing transformation methods in Metafor

Todor Krastev dr.todor.krastev at gmail.com
Thu Jan 4 11:26:59 CET 2018

Dear all,

I have performed a meta-analysis of the incidence rates in 40 studies but
the results I get are a bit strange as the confidence intervals span <0
(which does not seem right).

I have been advised to use a more accurate method for esimating the
confidence intervals such as the exact binomial or a variance stabilizing
transformation such as the Freeman-Tukey (double arcsine). A the first one
seems fairly complex, I went on to attempt the Freeman-Tukey
transformation. Unfortunately I could not find much information online if
this was indeed the right transformation method.

I used the instructions in the Metafor webpage, which explained how to use
the Freeman-Tukey in detail for proportions.

On another page, I did find the functions to apply FT to incidence rates.

My main question essentially is:
1.  How to perform the back-transformation of incidence rates to be able to
present it in the forest plot?

My attempt so far has given me results that seem fair, but I am not sure if
the method is correct.

A second question is:
2. Am I using the right method in transforming proportion like values into
percentages (so forest plot shows incidence rates as 0.44% per year instead
of 0.044)?

Thank you in advance!


Here is my dataset and syntax:

#==== 1st try - No variance stabilizing transformation ====

dat <- read.table("ir.cancer.rec.csv", sep=";", header=TRUE)
dat <- escalc(measure="IR", xi=xi, ti=ti, data=dat)

# Because the incidence rate meta-analysis shows the incidence rates as
# i multiplied the effect x100 size to make it show the numbers as % per
dat$yi.p <-dat$yi*100
dat$vi.p <-dat$vi*10000

res <- rma(yi=yi.p, vi=vi.p, slab=dat$study, data=dat)

forest(res, xlab="Incidence rate of cancer recurrence",
       xlim=c(-10,18), alim=c(-5,10), ylim=c(-1,43), refline=0, digits=2,
text(-10, 42, "Study", pos=4, cex=0.8)
text( 18, 42, "% per year [95% CI]", pos=2, cex=0.8)

#=== NEW ANALYSIS - with FT ===============================
dat <- read.table("ir.cancer.rec.csv", sep=";", header=TRUE)
dat <- escalc(measure="IRFT", xi=xi, ti=ti, data=dat)

# Making them into percentages
dat$yi.p <-dat$yi*100
dat$vi.p <-dat$vi*10000

# Back-transforming
transf.irft(dat$yi, dat$ti)

# The following transformation was explained for proportion meta-analysis
(IPFT). Is it also applicable for incidence-rates (IRFT)?

res2 <- rma(yi=dat$yi, vi=dat$vi, method="FE", data=dat)
pred <- predict(res2, transf=transf.ipft.hm, targs=list(ni=dat$ni))

# Making them into %
pred.p <- pred$pred*1000
ci.lb.p <- pred$ci.lb*1000
ci.ub.p <- pred$ci.ub*1000

dat.back <- summary(dat, transf=transf.ipft, ni=dat$ni)

# Again, transforming the proportion into %
dat.back$yi.p <-dat.back$yi*100
dat.back$vi.p <-dat.back$vi*10000
dat.back$ci.lb.p <-dat.back$ci.lb*100
dat.back$ci.ub.p <-dat.back$ci.ub*100

forest(dat.back$yi.p, ci.lb=dat.back$ci.lb.p, ci.ub=dat.back$ci.ub.p,
       xlab="Incidence rate of cancer recurrence",
       xlim=c(-4,15), alim=c(0,10), ylim=c(-1,43), refline=NA, digits=2,
text(-4, 42, "Study", pos=4, cex=0.8)
text( 15, 42, "% per year [95% CI]", pos=2, cex=0.8)

# Using percentage values for the effect size estimate as well
addpoly(pred.p, ci.lb=ci.lb.p, ci.ub=ci.ub.p, row=-0.5, digits=2, mlab="RE
Model", cex=0.8)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://stat.ethz.ch/pipermail/r-sig-meta-analysis/attachments/20180104/f8f09a59/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: incidence.rates.ft.r
Type: application/octet-stream
Size: 2589 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-sig-meta-analysis/attachments/20180104/f8f09a59/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ir.cancer.rec.csv
Type: text/csv
Size: 1139 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-sig-meta-analysis/attachments/20180104/f8f09a59/attachment.csv>

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