```
library(magrittr)
library(ggplot2)
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.
One effect is null, but the other is not. The null effect is NOT scale dependent IRD = 0 <=> IRR = 1. Therefore, if you observe this on one scale, it is also true on the other scale.
One effect is protective, but the other is not. As log transormation is order preserving, the direction of the effect is preserved across scales. If something is protective on one scale, it is still protective on the other scale. The same is true for harmful effects. Therefore, if one stratum-specific effect is protective and the other is harmful, it express itself on either scale.
Both effects are null. There is no effect measure modification on either scale as the null is preserved.
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)
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)
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)
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)
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)