Hoofdstuk 12 · De odds ratio

Samenhang tussen twee ja/nee-variabelen · odds & odds ratio

De prikkel

Springfield, Massachusetts, 1986. In het Baystate Medical Center wordt bij elke bevalling een formulier ingevuld — honderdnegenentachtig keer, een jaar lang, echt opgeschreven.1 Van dat formulier lezen wij vandaag twee vakjes: rookte de moeder tijdens de zwangerschap (ja/nee), en woog de baby bij de geboorte te weinig (ja/nee).

Tel je de vakjes na, dan zie je dit: van de rokende moeders kreeg 41% een baby met een laag geboortegewicht; van de niet-rokende 25%. En in het artikel dat over zulke data geschreven wordt, staat dan één getal: 2.02“de odds zijn twee keer zo groot.”

Wacht eens even. 41 tegenover 25 — dat is toch helemaal geen verdubbeling? Waar komt die 2 vandaan? Overdrijft hier iemand?

Ja. En het gekke is: het getal klopt tóch. Trek even mee — we gaan uitzoeken wat een odds eigenlijk is, en waarom hij groter praat dan de kans.

Speel het

⬇ Download de data — geboortegewicht.csv

Eerst het telwerk. Haal de 189 baby’s binnen en zet de twee ja/nee-kolommen tegen elkaar af in een kruistabel.

OpmerkingIn R · trek eraan
bw <- read.csv("geboortegewicht.csv")

t <- table(bw$roken, bw$laag_geboortegewicht)
t                                    # rokers: 30 ja, 44 nee · niet-rokers: 29 ja, 86 nee

30 / 44                              # odds op laag gewicht bij rokers     → 0.68
29 / 86                              # odds op laag gewicht bij niet-rokers → 0.34
(30/44) / (29/86)                    # de odds ratio                       → 2.02

Kijk goed naar wat we daar deden, want hier begint bijna elk misverstand. Een kans (probability) zet de ja’s af tegen álle moeders: 30 van de 74 rokers, dus 0.41. Een odds zet de ja’s af tegen de nee’s: 30 tegenover 44, dus 0.68. Dat is de taal van het wedkantoor — “0.68 tegen 1”. Zelfde telwerk, andere breuk: odds = kans / (1 − kans). Onthoud dus als eerste: een odds is geen kans. Bij een kans van 0.5 is de odds al 1; bij een kans van 0.9 is de odds 9.

Deel je de twee odds op elkaar, dan krijg je de odds ratio (odds ratio, OR): 0.68 / 0.34 = 2.02. De odds op een laag geboortegewicht zijn bij de rokende moeders ruim twee keer die van de niet-rokende. Dát is waar die 2 vandaan komt — niet uit de kansen, maar uit de odds.

Schud het

Nu de vraag die telt: is die 2.02 écht, of kan toeval een kruistabel zomaar zo scheef trekken? We spelen vals. We knippen alle rook-labels los van hun eigen moeder en delen ze lukraak opnieuw uit. Evenveel rokers, evenveel baby’s met laag gewicht — maar wíé rookte is nu puur toeval. Duizend keer. Duizend werelden waarin roken en geboortegewicht gegarandeerd níéts met elkaar te maken hebben.

Eén ding vooraf: bij een verschil is “niks aan de hand” nul, maar bij een verhouding is niks-aan-de-hand 1 — twee gelijke odds op elkaar gedeeld. Het bergje gaat dus niet om 0 dansen, maar om 1.

OpmerkingIn R · schud de boel door elkaar
or_van <- function(roken, laag) {
  t <- table(roken, laag)
  (t["ja","ja"] * t["nee","nee"]) / (t["ja","nee"] * t["nee","ja"])
}
or_van(bw$roken, bw$laag_geboortegewicht)     # → 2.02, zelfde als net

set.seed(42)
nep <- replicate(1000, or_van(sample(bw$roken), bw$laag_geboortegewicht))
hist(nep)                                     # een bergje rond 1 (niet rond 0!)
abline(v = 2.02, col = "red", lwd = 2)        # en dáár staat de echte

Kijk naar dat plaatje. De duizend geschudde OR’s dansen om de 1 — de mediaan zit op 0.99, en 95% blijft tussen ongeveer 0.5 en 1.8. Maar let op: geen enkele geschudde wereld geeft precies 1, terwijl in élk van die werelden de waarheid exact 1 is. Toeval maakt van “niks” altijd “nét niet niks”. Precies daarom schudden we: om te zien hoe ver “nét niet niks” kan komen.

En dan de rode streep op 2.02: buiten het bergje, maar niet mijlenver. In 23 van de 1000 geschudde werelden kwam het toeval óók tot 2.02 of verder. Zeldzaam, geen nooit. De samenhang is dus vrijwel zeker echt, maar hij staat niet onaantastbaar ver van het toeval — het 95%-interval [1.08, 3.78] zegt hetzelfde met zijn onderkant, die tegen de 1 aan schuurt. Echt, ja. Met een bescheiden marge.

Snap het

Wat zegt die 2.02 nu wél, en wat niet? Drie keer opletten.

Eén: een odds ratio is geen kansen-verhouding. De verleiding is te schrijven “rokers hebben twee keer zoveel kans op een baby met laag geboortegewicht.” Niet waar. De kans ging van 25.2% naar 40.5% — deel díé twee op elkaar en je hebt het relatieve risico (relative risk, RR): 1.61. De kans werd 1.61 keer zo groot; de odds werd 2.02 keer zo groot. Zelfde data, twee getallen — en de OR is de grootste van de twee. Dat is geen toeval maar wiskunde: hoe váker de uitkomst voorkomt, hoe verder de OR boven het RR uit gaat hangen. Hier krijgt bijna één op de drie baby’s een laag gewicht, dus het gat is flink. Alleen bij zeldzame uitkomsten kruipen OR en RR naar elkaar toe. Wie een OR voorleest als “zoveel keer meer kans”, overdrijft dus — meestal zonder het te weten.

Twee: waarom doen we dan zo moeilijk met odds? Omdat het model het zo wil. Zodra je een ja/nee-uitkomst gaat voorspellen — dat is de logistische regressie van W12 — blijkt de odds de taal te zijn waarin de wiskunde soepel rekent. Onderzoekers rapporteren OR’s omdat hun model ze die aanreikt, niet omdat OR’s lekkerder lezen. Jij weet nu wat er dan staat.

Drie: samenhang, geen oorzaak. Niemand heeft deze moeders láten roken; er is alleen opgeschreven wat er gebeurde. Rokende en niet-rokende moeders verschillen in méér dan roken alleen — leeftijd, armoede, voeding — en elk van die derde spelers kan zich als het verband vermommen, net als de soort bij de pinguïns. De schud-toets sluit tóéval uit, niet verwarring. Uit deze tabel volgt dus niet dat roken een laag geboortegewicht veroorzaakt; wel dat de twee in dit ziekenhuis stevig samenhingen.

Zou je het in één eerlijke zin moeten zeggen, dan zo: onder de rokende moeders kwam een laag geboortegewicht vaker voor dan onder de niet-rokende (41% tegenover 25%; OR = 2.02, dus ruim tweemaal zo grote odds — niet tweemaal zoveel kans, dat is 1.61) — samenhang in één ziekenhuis in 1986, geen bewijs van oorzaak.

Zelfde vorm in het boek

Hier: de odds als vreemde tweede taal voor kans, en één verhouding — 2.02 — die groter praat dan de kans deed.

In het boek: W12 — En hij buigt

Daar buigt de rechte lijn zich om een ja/nee-uitkomst heen, en blijkt de odds precies de taal te zijn waarin die gebogen lijn rekent.

TODO (broertje-botten, Fable 24-7): W12 (En hij buigt) is nog niet geschreven — anker en slotzin checken zodra dat hoofdstuk staat. Alle getallen nagerekend op MASS::birthwt (kruistabel 30/44/29/86; OR 2.021944; CI 1.08–3.78 via log-OR ± 1.96·SE; RR exact 1.61 — de 1.65 uit de briefing kwam van afgeronde percentages 41/25). Schud-getallen met set.seed(42): mediaan 0.99, 95% tussen 0.52 en 1.83, 23/1000 ≥ 2.02. Stem-pas nog te doen. De JASP-tweeling deelt deze tekst; alleen “Speel het / Schud het” verschilt.

Voetnoten

  1. Hosmer & Lemeshow (1989), Applied Logistic Regression; verzameld in het Baystate Medical Center, Springfield MA, 1986; via het R-pakket MASS (dataset birthwt). Alle getallen in dit blok zijn op die échte data nagerekend.↩︎