Vierde beweging · Verschil onthechten
Oefening 12.1 · Logistische regressie: odds en odds ratio
Samenhang tussen twee ja/nee-variabelen · odds & odds ratio
In deze oefening
Data bij deze oefening — geboortegewicht.csv geboortegewichten · diamantjes.csv de twaalf steentjes uit het boek · wat elke kolom betekent
prikkel
41% tegen 25%, en toch een 2
kans versus odds · roken en geboortegewicht
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
Tel de kruistabel en bereken de odds ratio in JASP
odds versus kans · verhouding van twee odds
Eerst het telwerk. Haal de 189 baby’s binnen en zet de twee ja/nee-kolommen tegen elkaar af in een kruistabel.
- Regression → Logistic Regression,
gepaktnaar Dependent (die kolom staat al klaar: 1 als de kraai de steen die nacht oppakte). glansnaar Covariates.- Vink Odds ratio aan onder de statistieken.
In de coëfficiëntentabel staat b = 0.081 met intercept −4.04, en de odds ratio erachter: 1.085 per glanspunt.
De kraai pakte er zes van de twaalf op. Laat de glans die uitkomst voorspellen en er rolt een keer-getal uit: per glanspunt worden de odds op oppakken 1.085 keer zo groot. Dat klinkt als niks, tot je bedenkt dat keer-getallen stapelen als machten en niet als sommen — tien glanspunten erbij is \(1.085^{10}\) en dus 2.26 keer zo grote odds. Geen rechte lijn meer, maar een kans die tussen 0 en 1 blijft: bij glans 49.6 zegt het model munt-opgooien, en daar liggen Else en Leen, allebei op 50, allebei op kans .51 — en toch had de een een andere nacht dan de ander.
Nu jij — met nieuwe data: geboortegewichten, en een uitkomst die ja of nee is.
- Open
geboortegewicht.csvin JASP (menu linksboven → Open). - Klik bovenin op Frequencies en kies Contingency Tables.
- Sleep
rokennaar Rows enlaag_geboortegewichtnaar Columns. - Open Cells en vink bij Percentages de optie Row aan.
- Open Statistics en vink Odds ratio aan.
Rechts staat nu de kruistabel: bij de rokers 30 keer ja en 44 keer nee, bij de niet-rokers 29 keer ja en 86 keer nee — en dankzij de rij-percentages die 41% tegenover 25% uit de prikkel. Daaronder: odds ratio 2.02. (Staat er bij jou 0.70 met het label log? Dat is dezelfde boodschap in logaritme-taal: e^0.70 = 2.02. En zie je 0.49, dan heeft JASP de groepen andersom gedeeld — 0.49 = 1/2.02.)
Kijk goed naar hoe die 2.02 gebouwd is, want hier begint bijna elk misverstand. Een kans (probability) zet de ja’s af tegen álle moeders: 30 van de 74 rokers, dus .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): 2.02. Deel dan wel de hele breuken op elkaar en niet de afgeronde 0.68 en 0.34 — die geven 2.0, en dat verschil van twee honderdsten komt dan uit jouw afronding en niet uit de moeders. 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
Is die 2.02 echt, of toeval?
schud-toets · toeval rond 1 · 95%-interval
Nu de vraag die telt: is die 2.02 écht, of kan toeval een kruistabel zomaar zo scheef trekken? Je zou dat willen uitproberen door vals te spelen — alle rook-labels losknippen van hun eigen moeder en lukraak opnieuw uitdelen. Zo koppel je roken en geboortegewicht los van elkaar: 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.
En hier moet ik eerlijk zijn: dat schudden is geen knop in JASP. JASP rekent één keurige uitkomst uit; duizend keer husselen en opnieuw kijken is code- of speeltje-werk. Geen gemis van jou of van JASP — het boek doet het bewust zo: de simulatie-ervaring loopt via een schud-speeltje in de browser (of via het R-broertje, waar het een handvol regels code is).
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 in het speeltje danst dus niet om 0, maar om 1.
En dat is precies wat je ziet: de duizend geschudde OR’s dansen om de 1 — de mediaan op 0.99, 95% 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”. 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 met bescheiden marge: het 95%-interval [1.08, 3.78] dat JASP je kan geven zegt hetzelfde met zijn onderkant, die tegen de 1 aan schuurt.
snap het
Wat de odds ratio wél en niet zegt
relatief risico · OR versus RR · samenhang, geen oorzaak · risicoverschil en NNT
Wat zegt die 2.02 nu wél, en wat niet? Vier 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 die verderop in het boek komt — 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.
Vier: en dan weet je nog steeds niet hoe groot het is. Kijk nog eens naar wat een odds ratio eigenlijk is: een verhouding van twee verhoudingen. Hij antwoordt op hoeveel keer — en niet op hoeveel mensen. Het relatieve risico van hierboven trouwens net zomin; ook dat is een verhouding. Neem twee onderzoeken, allebei met een odds ratio van ongeveer 2:
- in het ene gaat het van 25 van de 100 naar 40 van de 100 — OR = 2.00
- in het andere van 1 van de 100 naar 2 van de 100 — OR = 2.02
Die tweede 2.02 is geen toeval: op twee decimalen is dat precies de odds ratio die hierboven uit onze kruistabel rolde. Bijna hetzelfde getal, twee heel verschillende onderzoeken — en toch scheelt het in het ene 15 van de 100 en in het andere 1 van de 100. Vijftien keer zoveel mensen. Dat aftreksommetje heet het risicoverschil (risk difference), en het is de kortste weg van een verhouding terug naar mensen.
Is er in zo’n onderzoek ook écht iets gedáán — iemand behandeld — dan kun je dat verschil omkeren. Bij 15 van de 100 moet je er ongeveer 7 behandelen om er 1 extra te helpen; bij 1 van de 100 zijn dat er 100. Dat getal heet de NNT (number needed to treat), en in de klinische literatuur kom je hem overal tegen. Let wel op dat woordje gedaan: bij onze moeders is niemand behandeld, er is alleen opgeschreven wat er gebeurde — een risicoverschil kun je daar dus wél uitrekenen, een NNT niet. Verder houden we het in dit boekje bij de verhoudingen. Maar zie je in een artikel alleen een odds ratio staan, dan weet je nu welke helft van het verhaal ontbreekt.
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.”
jouw beurt
Draai de tabel om
symmetrie van de odds ratio · RR verschuift
Jouw beurt — draai de tabel om. Tot nu toe deden we alsof roken de “oorzaak” was en laag geboortegewicht het “gevolg”. Maar de data weten dat verschil niet. Dus: keer de rollen om. Doe nu alsof een laag geboortegewicht de ingang is, en kijk hoe vaak de moeder rookte.
Zet eerst de analyse hieronder klaar, en beantwoord daarna de vragen. Tussen haakjes staat telkens wat er in een compleet antwoord hoort, zodat je jezelf kunt nakijken zonder ons antwoord te openen. De laatste heet weer Z): de aannames staan altijd achteraan.
- Draai in Contingency Tables de vakken om: zet nu
laag_geboortegewichtbij Rows enrokenbij Columns. - Onder Statistics staat Odds ratio al aan; lees hem opnieuw af.
- Het relatieve risico geeft JASP je niet kant en klaar. Lees daarvoor de vier vakjes uit de omgedraaide tabel af en reken het met de rekenmachine — het zijn drie delingen.
a) Bereken de odds ratio andersom. (één getal op twee decimalen)
b) Hoeveel scheelt die met de 2.02 van daarnet? (één getal)
c) Reken de twee odds uit die je zojuist op elkaar deelde. (twee getallen)
d) Doe nu hetzelfde met het relatieve risico: hoe vaak rookte de moeder bij een laag gewicht, en hoe vaak bij een normaal gewicht? (twee kansen, en hun verhouding)
e) Leg dat naast het RR van 1.61 uit dit blok. Welk van de twee getallen bleef staan en welk verschoof? (twee getallen, en één zin)
f) Waarom verschuift het RR wél en de odds ratio niet? (één zin, met het woord noemer erin)
g) Reken ook het risicoverschil allebei de kanten op uit. Verschuift dat mee? (twee getallen, en ja of nee)
h) Welke van de drie maten is dus symmetrisch? (één naam, en één zin)
i) Eén en hetzelfde getal beschrijft evengoed “roken → laag gewicht” als “laag gewicht → roken”. Wat kan zo’n getal je daarom onmogelijk vertellen? (één zin)
j) Een zwangere vrouw vraagt je hoeveel het uitmaakt. Welk van de vier getallen uit dit blok geef je haar? (één keuze, en één zin waarom)
k) Geef een inhoudelijke conclusie in niet meer dan vijf zinnen. (over moeders en baby’s, niet over getallen)
Z) Mag je alles hierboven geloven? Loop na:
- staat elke bevalling precies één keer in de tabel?
- is er iemand behandeld, of is er alleen opgeschreven wat er gebeurde?
- staat die 2.02 ver genoeg van de 1 om er iets van te vinden?
En dan de vraag die er altijd achteraan hoort: gaat er iets mis, welke antwoorden hierboven doe je dan over en welke mogen blijven staan?
a) OR = 2.02. Precies hetzelfde getal als heen.
b) Nul. Niet “ongeveer gelijk” en niet “gelijk op twee decimalen” — de twee zijn tot achter de laatste decimaal dezelfde 2.0219. Dat is geen toeval van deze data: een odds ratio ís het kruisproduct (30 × 86) / (44 × 29), en aan een kruisproduct verandert niets als je de tabel kantelt.
c) Odds op roken bij een laag gewicht: 30 / 29 = 1.03. Bij een normaal gewicht: 44 / 86 = 0.51. Deel je die op elkaar, dan staat er weer 2.02.
d) 30 / 59 = .51 en 44 / 130 = .34; hun verhouding is RR = 1.50.
e) De odds ratio bleef staan op 2.02; het relatieve risico verschoof van 1.61 naar 1.50.
f) Omdat het RR twee kansen op elkaar deelt, en een kans heeft de groep waaruit je grabbelt in zijn noemer staan — draai je de tabel om, dan grabbel je uit een andere groep. Heen keek je in de 74 rokende moeders; terug kijk je in de 59 baby’s met een laag gewicht. De teller blijft dezelfde 30, de noemer niet, dus het getal beweegt. De odds ratio heeft die noemers niet nodig: hij zet in elke groep de ja’s tegen de nee’s, en dat is een verhouding binnen de groep in plaats van een greep uit de groep.
g) Heen .153, andersom .170 — dus ja, het risicoverschil verschuift ook. Dat is de moeite van het opmerken waard, want dit is de maat die in mensen rekent, en hij is dus net zo goed afhankelijk van welke kant je de tabel opleest als het RR.
h) Alleen de odds ratio. Van de drie maten die je nu kent is hij de enige die niet merkt dat je de tabel gekanteld hebt — en dat is precies wat hem handzaam maakt in een model en tegelijk stom maakt over richting.
i) Dat het niets over richting kan zeggen, en dus niets over oorzaak. Een getal dat exact hetzelfde blijft of je nu van roken naar geboortegewicht kijkt of andersom, kan onmogelijk weten welke van de twee er eerst was.
j) Het risicoverschil: van 25 op de 100 naar 41 op de 100, dus zo’n 15 baby’s per honderd meer. Dat is het enige getal van de vier dat in mensen spreekt in plaats van in verhoudingen — 2.02 klinkt alsof het over verdubbeling gaat en 1.61 nog steeds, terwijl haar vraag hoeveel is en niet hoeveel keer. Noem er de onzekerheid bij, want deze 189 bevallingen dragen een interval van 1.08 tot 3.78 en dat is breed.
k) Bijvoorbeeld: bij de 189 bevallingen in dit ziekenhuis kregen rokende moeders vaker een baby met een laag geboortegewicht dan niet-rokende, 41% tegen 25%. De odds waren ruim twee keer zo groot, maar de kans zelf maar anderhalf keer — wie “twee keer zoveel kans” zegt, overdrijft dus. In mensen uitgedrukt scheelt het ongeveer vijftien baby’s per honderd. Draai je de tabel om, dan blijft die 2.02 exact staan en verschuiven de andere maten: de odds ratio weet niet wat er eerst was. Uit deze tabel volgt daarom samenhang en geen oorzaak.
Z) Ja, met twee kanttekeningen die allebei in de tekst hierboven al klaarlagen.
- Blijft staan: a) tot en met h). Dat zijn tellingen en delingen op deze 189 bevallingen, en elke bevalling staat precies één keer in de tabel — de vier hokjes tellen op tot 189. Er komt geen verdeling aan te pas, dus er valt langs die weg ook niets om te vallen.
- Doe je over: niets van de rekensommen, maar wél de stelligheid van k). Die 2.02 is echt — de schud-toets liet zien dat maar 23 van de 1000 nulwerelden zover kwamen — maar het 95%-interval loopt van 1.08 tot 3.78, en die onderkant schuurt tegen de 1 aan. “Ruim twee keer zo grote odds” is de beste schatting; “ergens tussen nauwelijks iets en bijna vier keer” is het eerlijke bereik.
- Vervalt helemaal: een NNT. Bij j) mocht je het risicoverschil geven, maar je mag het níét omkeren naar “hoeveel moeders moet je behandelen”. Hier is niemand behandeld; er is alleen opgeschreven wat er gebeurde. Een NNT vraagt een interventie, en die is er niet.
En de kanttekening die geen aanname is maar wel het zwaarst weegt: dit blijft samenhang in één ziekenhuis in 1986. Geen enkele van deze getallen wordt beter van een groter interval of een scherpere toets, want ze meten geen van alle wat er zou gebeuren als een moeder stopte met roken.
rapportage
Schrijf het op als een onderzoeker
rapportagezin · OR met CI · twee decimalen
Nu de nette jas over die ene eerlijke zin. Rapporteren klinkt zwaar, maar het blijft een boodschappenlijstje in zinsvorm: wat wilde je weten, hoeveel gevallen, welk getal kwam eruit — en bij een verhouding hoort er een interval bij, zodat de lezer ziet hoe hard het getal staat. Kijk maar:
Om te onderzoeken of roken tijdens de zwangerschap samenhing met een laag geboortegewicht, legden we bij 189 bevallingen beide ja/nee-vakjes naast elkaar. Bij de rokende moeders kwam een laag geboortegewicht vaker voor dan bij de niet-rokende (41% tegen 25%); de odds waren ruim twee keer zo groot (OR = 2.02, 95% CI [1.08, 3.78]).
Let op de kleine lettertjes: OR helt, want dat teken draagt zélf de waarde 2.02. CI helt niet — die benoemt alleen het interval dat erachter staat, en benoemen is geen waarde dragen. De zin staat in de verleden tijd, want je vertelt wat je vónd — en hij staat op eigen benen: wie er onderzocht werden, wat er gemeten werd, en het getal mét zijn interval. En APA rekent op twee decimalen: 2.02, niet 2.0219.
Jouw beurt: schrijf zelf zo’n zelfstandige zin, maar noem er nu beide verhoudingen in — de odds ratio én het relatieve risico (OR = 2.02, RR = 1.61) — zodat een lezer niet in de val trapt om die 2.02 te lezen als “twee keer zoveel kans”. Hardop voorlezen mag.
◠ 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.
🌾
Voetnoten
Hosmer & Lemeshow (1989), Applied Logistic Regression; verzameld in het Baystate Medical Center, Springfield MA, 1986; via het R-pakket
MASS(datasetbirthwt). Alle getallen in dit blok zijn op die échte data nagerekend.↩︎