Skip to content
Prev 4200 / 5632 Next

[R-meta] Zero event

With a rare outcome like that, the usual method of handling 0 cells (adding 1/2's) is indeed not ideal. Alternatively, one could use methods based on exact likelihoods, such as logistic regression type models. For example, using the data below:

library(metafor)

dat <- read.table(header=TRUE, text = "
        ai      bi      ci      di
Study1  1       19      0       20
Study2  1       28      0       29
Study3  0       26      7       25
Study4  0       42      0       42")

res <- rma(measure="RR", ai=ai, bi=bi, ci=ci, di=di, data=dat, method="EE")
res
predict(res, transf=exp)

res <- rma.glmm(measure="RR", ai=ai, bi=bi, ci=ci, di=di, data=dat, method="EE")
res
predict(res, transf=exp)

The two approaches yield rather different results.

Notes:

1) I used an equal-effects model, because with 4 studies, trying to fit a random-effects model seems a bit 'ambitious'.

2) In the rma.glmm() approach, studies with 0 events in both arms are automatically dropped. This is because the likelihood is flat, at least when the outcome measure is the (log) odds ratio.

3) Using (log) risk ratios as the outcome measure with rma.glmm() is an experimental feature that I added recently. It seems to work ok here, but might fail in other cases.

One can also use methods like the Mantel-Haenszel and Peto's method here:

rma.mh(measure="RR", ai=ai, bi=bi, ci=ci, di=di, data=dat)
rma.peto(measure="RR", ai=ai, bi=bi, ci=ci, di=di, data=dat)

These yield quite similar results as the logistic regression approach.

But in the end, trying to squeeze something out of such little data is difficult, which is also reflected in the wide CIs.

Best,
Wolfgang