```

References

Load packages

library(magrittr)
library(ggplot2)

Explanation

A constant effect across two strata on the additive (difference) scale implies differences are constant. Therefore, no effect measure modification on the additive (difference) scale means you get two parallel lines on the natural scale graph (left ones).

A constant effect across two strata on the multiplicative (ratio) scale implies the ratios are constant. If the ratios are constant on the natural scale, on the log scale they translate into constant differences. Therefore, you get parallel lines on the log scale graph (right ones) if there is no effect measure modification on the multiplicative (ratio) scale.

Thus, no effect measure modification on one scale implies effect measure modification on the other scale. Also, observing effect measure modification on one scale does not tell you much about the effect modification on the other scale.

However, there are several exceptions.

EM only on the difference scale

dat <- data.frame(rate = c(6,9,60,90),
                  agecat = c(0,0,1,1),
                  male = c(1,0,1,0))

g1 <- ggplot(data = dat, mapping = aes(x = agecat, y = rate, group = male)) +
    layer(geom = "line") +
    layer(geom = "point") +
    theme_bw() + theme(legend.key = element_blank())
g2 <- ggplot(data = dat, mapping = aes(x = agecat, y = log(rate), group = male)) +
    layer(geom = "line") +
    layer(geom = "point") +
    theme_bw() + theme(legend.key = element_blank())
gridExtra::grid.arrange(g1,g2, ncol = 2)

EM only on the ratio scale

dat$rate <- c(6,9,60,63)

g1 <- ggplot(data = dat, mapping = aes(x = agecat, y = rate, group = male)) +
    layer(geom = "line") +
    layer(geom = "point") +
    theme_bw() + theme(legend.key = element_blank())
g2 <- ggplot(data = dat, mapping = aes(x = agecat, y = log(rate), group = male)) +
    layer(geom = "line") +
    layer(geom = "point") +
    theme_bw() + theme(legend.key = element_blank())
gridExtra::grid.arrange(g1,g2, ncol = 2)

Qualitative effect measure modification

dat$rate <- c(9,6,60,90)

g1 <- ggplot(data = dat, mapping = aes(x = agecat, y = rate, group = male)) +
    layer(geom = "line") +
    layer(geom = "point") +
    theme_bw() + theme(legend.key = element_blank())
g2 <- ggplot(data = dat, mapping = aes(x = agecat, y = log(rate), group = male)) +
    layer(geom = "line") +
    layer(geom = "point") +
    theme_bw() + theme(legend.key = element_blank())
gridExtra::grid.arrange(g1,g2, ncol = 2)

Null vs non-null effects

dat$rate <- c(6,6,60,90)

g1 <- ggplot(data = dat, mapping = aes(x = agecat, y = rate, group = male)) +
    layer(geom = "line") +
    layer(geom = "point") +
    theme_bw() + theme(legend.key = element_blank())
g2 <- ggplot(data = dat, mapping = aes(x = agecat, y = log(rate), group = male)) +
    layer(geom = "line") +
    layer(geom = "point") +
    theme_bw() + theme(legend.key = element_blank())
gridExtra::grid.arrange(g1,g2, ncol = 2)

Null vs null effects

dat$rate <- c(6,6,60,60)

g1 <- ggplot(data = dat, mapping = aes(x = agecat, y = rate, group = male)) +
    layer(geom = "line") +
    layer(geom = "point") +
    theme_bw() + theme(legend.key = element_blank())
g2 <- ggplot(data = dat, mapping = aes(x = agecat, y = log(rate), group = male)) +
    layer(geom = "line") +
    layer(geom = "point") +
    theme_bw() + theme(legend.key = element_blank())
gridExtra::grid.arrange(g1,g2, ncol = 2)