My colleagues and I were wondering if is OK to add a constant to the means in the log transformed ratio of means (known also as log response ratio).

The log response ratio and its variance are:

\begin{align} \newcommand{\var}{{\rm Var}} \ln R &= \ln(\bar{X}_{1})- \ln(\bar{X}_{2}) \\[8pt] \var(\ln R) &= \frac{(SD_{1})^2}{n_{1}\bar{X}_{1}^2}+\frac{(SD_{2})^2}{n_{2}\bar{X}_{2}^2} \end{align}

Hedges, L. V., Gurevitch, J., & Curtis, P. S. (1999). The meta-analysis of response ratios in experimental ecology. Ecology, 80(4), 1150-1156.

Adding a constant to the means I presume would results in the following formulae:

\begin{align} \ln Rk &= \ln(\bar{X}_{1}+k)- \ln(\bar{X}_{2}+k) \\[8pt] \var(\ln Rk) &= \frac{(SD_{1})^2}{n_{1}(\bar{X}_{1}+k)^2}+\frac{(SD_{2})^2}{n_{2}(\bar{X}_{2}+k)^2} \end{align}

It is also unclear if this constant should be added to all cases or only to cases with zero means.

So far we didn’t come yet across literature suggesting this practice. Also when trying to compute the ES and its variance using metaphor::escalc() function, even though there is an option to add a constant, there is no change taking place. Below is an example in R, but I couldn't find a way to make metaphor::escalc() add the constant.

m1i  <- 15.6
m2i  <- 12.2
n1i  <- 15
n2i  <- 20
sd1i <- 3.82
sd2i <- 3.22

log(m1i) - log(m2i)
# [1] 0.245835
log(m1i + .5) - log(m2i + .5)
# [1] 0.2372173

sd1i^2/(n1i * m1i^2) + sd2i^2/(n2i * m2i^2)
# [1] 0.007480549
sd1i^2/(n1i * (m1i + .5)^2) + sd2i^2/(n2i * (m2i + .5)^2)
# [1] 0.006967255

lnR <- escalc(measure="ROM", m1i=m1i, m2i=m2i, sd1i=sd1i, sd2i=sd2i, n1i=n1i, n2i=n2i)
lnRk <- escalc(measure="ROM", add=0.5, to="all", m1i=m1i, m2i=m2i, sd1i=sd1i, sd2i=sd2i, n1i=n1i, n2i=n2i)
lnR; lnRk
#       yi     vi
# 1 0.2458 0.0075
#       yi     vi
# 1 0.2458 0.0075
all.equal(lnR, lnRk)
# [1] TRUE

We came across literature against this practice though: Koricheva, Handbook of Meta-analysis:

"One should also not use a ratio as an effect size measure when either the numerator or denominator would be equal to zero; the transform is undefined and trying to adjust the values by adding a tiny fraction to the numerator and denominator usually results in abnormally large estimates of effect size"

If adding a constant to the means is a bad idea, then advice on other options dealing with zero means would be greatly appreciated.

We understand that Hedges’d (or g) would be maybe a better solution, but then we confront with some cases yielding extreme effect sizes. Unfortunately those cases are particularly interesting for our study and we would not want to drop them (e.g. dropping extreme Hedges’d was practiced in Golivets, M., & Wallin, K. F. (2018). Neighbour tolerance, not suppression, provides competitive advantage to non‐native plants. Ecology letters.)


1 Answer 1


The add and to arguments have no effect for measure="ROM" in the metafor package. help(escalc) indicates to which outcome measures these arguments apply.

I don't think adding a constant is an appropriate adjustment for measure="ROM". Consider what happens as the sample sizes of the two groups increase. Then m1i and m2i converge to the true means and hence log(m1i) - log(m2i) converges to the true log ratio of means, but that won't be true for log(m1i + .5) - log(m2i + .5) (except when the true means are equal to each other).

Since the log response ratio is only an appropriate outcome measure when the measurements are made on a ratio scale (so, the measurements must be $>= 0$), a zero mean implies that all of the measurements in that group were equal to 0. That seems a rather strange case, but I guess with a small number of measurements (and measurements that are possible rounded to some extent), that could happen. I don't know of any work that addresses this issue.

Just as an idea, one could consider what happens if we approach this from a Bayesian perspective and assume some kind of prior for $\mu_1$ and $\mu_2$. Since the prior should only have mass for values $>= 0$, the posterior will have a mode that is pushed away from 0 to some extent. So, in a way, the effect will be like adding a constant. But one would have to work through this properly and the constant won't be 0.5.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.