Unit 10.03: Multiplies the odds, not the risk
Exponentiating a logistic coefficient gives an odds ratio, which almost everyone then reads as a risk ratio.
Multiplies the odds, not the risk
tidy(model, exponentiate = TRUE) converts log-odds coefficients into odds ratios, which are at least multiplicative and easier to talk about than log-odds.
An odds ratio of 1 means no association, so an interval crossing 1 is the logistic equivalent of a difference interval crossing 0.
The persistent error is reading 'the odds are 2.5 times higher' as '2.5 times as likely'. Those coincide only when the outcome is rare. When it is common the odds ratio is substantially further from 1 than the risk ratio, so the plain-English reading always overstates the effect.
This block reports the exponentiated model with intervals.
suppressPackageStartupMessages(library(broom))
set.seed(704)
n <- 600
tenure <- runif(n, 0, 48)
support <- rbinom(n, 1, 0.35)
churn <- rbinom(n, 1, 1 / (1 + exp(-(1.4 - 0.07 * tenure + 0.9 * support))))
model <- glm(churn ~ tenure + support, family = binomial)
or <- tidy(model, exponentiate = TRUE, conf.int = TRUE)
print(or[, c("term", "estimate", "conf.low", "conf.high", "p.value")])
cat("\nexponentiate = TRUE turns log-odds into ODDS RATIOS.\n")
s <- or[or$term == "support", ]
cat("Support contact: odds ratio", round(s$estimate, 3),
" 95% CI [", round(s$conf.low, 3), ",", round(s$conf.high, 3), "]\n\n")
cat("Read it as: contacting support multiplies the ODDS of churn by",
round(s$estimate, 2), ".\n")
cat("NOT: makes churn", round(s$estimate, 2), "times as likely. The observed\n")
cat("churn rate here is", round(mean(churn), 3),
"-- far from rare, so the odds ratio\n")
cat("overstates the risk ratio substantially.\n\n")
cat("An odds ratio of 1 means no association; the interval crossing 1 is the\n")
cat("equivalent of a difference interval crossing 0.\n")
Support contact has an odds ratio of 2.578 with a 95% interval from 1.763 to 3.804 โ clearly above 1. Tenure's odds ratio is 0.945 per month, below 1, meaning each additional month multiplies the odds of churn by 0.945. Crucially the observed churn rate here is 0.533 โ nowhere near rare โ so reading 2.578 as 'two and a half times as likely to churn' would substantially overstate the risk.
The mistake this prevents
The mistake is translating an odds ratio into 'times as likely'. With a common outcome that is simply a different and larger number.
Takeaway
Report odds ratios with their intervals and say explicitly that they are odds ratios. Give the baseline rate so a reader can judge how far the odds ratio sits from the risk ratio.
