Two-way ANOVA
Vergelijkt het gemiddelde van een meting tussen de groepen die door twee factoren worden gevormd, en toetst of het effect van de ene factor afhangt van de andere (een interactie).
Statistisch beoordeeld door Daniel Wolff op 5 november 2026 (op basis van de Engelse versie).
Klinisch voorbeeld
Gemiddeld hemoglobine zes weken na het starten van een van twee ijzersupplementen, bij mannen en bij vrouwen. Twee factoren (supplement en geslacht), één meting per patiënt, en de vraag is of het supplement bij mannen anders werkt dan bij vrouwen. In een echte trial corrigeert u ook voor het hemoglobine bij aanvang van elke patiënt, met een ANCOVA die de interactie bevat.
Wanneer te gebruiken
- De uitkomst is een meting op een continue schaal, één per patiënt.
- De groepen worden gevormd door twee categorische factoren te combineren, zoals supplement en geslacht, en elke patiënt zit in één combinatie.
- U wilt het effect van elke factor, of u wilt weten of het effect van de ene factor afhangt van de andere (een interactie). Een typisch klinisch gebruik: de ene factor is gerandomiseerd (het supplement) en de andere is een patiëntkenmerk (geslacht). De interactie is dan een subgroepvraag, en die moet vooraf zijn vastgelegd.
- Voor één factor gebruikt u one-way ANOVA. Om te corrigeren voor een baselinewaarde of voor continue variabelen: zie ANCOVA of lineaire regressie.
Aannames om te controleren
Onafhankelijke waarnemingen
Eén waarde per patiënt, en geen clustering. Herhaalde metingen of geclusterde patiënten vragen een gemengd model.
Ongeveer normale residuen, geen extreme uitschieters
Kijk naar een histogram of Q-Q-plot van de residuen. Bij gematigde, even grote groepen is lichte afwijking van normaliteit meestal acceptabel. Eén extreme waarde kan het resultaat nog steeds bepalen. Bij een scheve, altijd positieve uitkomst kan hetzelfde model op logschaal worden gefit, en de effecten zijn dan ratio's. Er is geen eenvoudig rangtoets-equivalent van Kruskal-Wallis voor twee factoren. Of er een interactie is, hangt af van de schaal: effecten die als ratio gelijk zijn, zijn als verschil ongelijk, en andersom. Een interactie op de ruwe schaal kan op de logschaal verdwijnen.
Gelijke spreiding in elke combinatie
Vergelijk de SD's van de combinaties. Een veel grotere SD in één ervan is een waarschuwingssignaal. Het speelt vooral als de aantallen per combinatie verschillen. Overweeg een transformatie of robuuste (sandwich-)standaardfouten, bijvoorbeeld HC3 (car::Anova met white.adjust = "hc3" in R). Laat de toets van Levene, die SPSS met HOMOGENEITY afdrukt, niet alleen beslissen.
Genoeg patiënten in elke combinatie
Lege of zeer kleine combinaties maken de schattingen, en vooral die van de interactie, onstabiel.
Ongelijke aantallen per combinatie
Bij ongelijke aantallen hangt de toets van elke factor af van hoe de kwadratensommen worden berekend. De anova() van R gebruikt sequentiële (type I) toetsen, dus de rijen van de hoofdeffecten hangen af van de volgorde van de termen, terwijl SPSS standaard type III gebruikt. De interactierij is in beide gevallen gelijk. In R hebben type III-hoofdeffecten alleen zin met sum-to-zero-contrasten: car::Anova(fit, type = 3) met de standaard treatmentcodering van R geeft onjuiste toetsen van de hoofdeffecten. Zonder belangrijke interactie hebben veel statistici de voorkeur voor type II (car::Anova(fit, type = 2)). Schattingen en BI's uit het gefitte model (emmeans in R) voorkomen het probleem.
Wat te rapporteren
- Gemiddelde met SD, en het aantal patiënten, voor elke combinatie van de twee factoren
- De toets van de interactie: de F-waarde met beide vrijheidsgraden, en de exacte p-waarde
- De interactie zelf als schatting: het verschil tussen de effecten van de ene factor in de twee niveaus van de andere (bijvoorbeeld het supplementeffect bij vrouwen min dat bij mannen), met 95%-BI
- Als er geen belangrijke interactie is: het effect van elke factor als verschil in gemiddelden met 95%-BI. Als die er wel is: het effect van de ene factor binnen elk niveau van de andere, met 95%-BI
- Hoe paarsgewijze vergelijkingen zijn gecorrigeerd voor meervoudig toetsen
- Hoe de factoren zijn gecodeerd, en het type kwadratensommen als de aantallen per combinatie verschillen
- Het aantal geanalyseerde patiënten, en hoeveel er zijn weggelaten door ontbrekende data
Veelgemaakte fouten
Draai niet veel afzonderlijke toetsen
Elk paar groepen, elke uitkomst of elk tijdstip apart toetsen stapelt fout-positieven op. Gebruik één model, leg de belangrijkste vergelijking vooraf vast en corrigeer waar nodig voor meervoudig toetsen.
Maak geen tweede factor door te dichotomiseren
Een continue variabele zoals leeftijd in groepen knippen om een tweede factor te krijgen gooit informatie en power weg, en de afkapwaarde is vaak willekeurig. Houd de variabele continu: zie lineaire regressie.
Hoofdeffecten zijn gemiddelden als er een interactie is
Bij een interactie is het hoofdeffect van een factor een gemiddelde over de niveaus van de andere factor. Het beschrijft geen enkele groep, en kan misleiden.
Een significante subgroep is geen interactie
Concluderen dat een effect verschilt tussen subgroepen omdat het in de ene significant is en in de andere niet, is onjuist. Toets de interactie, of vergelijk de effecten direct.
Een niet-significante interactie is geen 'geen interactie'
Interactietoetsen hebben meestal weinig power: een interactie ter grootte van het hoofdeffect aantonen vraagt ongeveer vier keer de steekproefgrootte (Brookes et al. 2004).
Lees summary(fit) niet als de hoofdeffecten
Met een interactie in het model en de standaard treatmentcodering van R is de coëfficiënt van supplement het effect in alleen het referentiegeslacht, niet het totale effect. Gebruik emmeans, en anova(fit) voor de interactietoets.
R en SPSS kunnen verschillen bij ongelijke groepen
Ze gebruiken standaard verschillende typen kwadratensommen, dus de toetsen van de hoofdeffecten kunnen verschillen, ook voor dezelfde gegevens.
Numerieke codes in R
Een factor als getallen (1, 2, 3) coderen zonder er een factor van te maken past één helling toe in plaats van de groepen te vergelijken, en geeft geen foutmelding.
Alternatieven
| Als uw situatie is… | Gebruik |
|---|---|
| Slechts één factor | One-way ANOVA |
| Er is een baselinemeting, zoals in een trial | ANCOVA (adjusting for baseline) |
| U moet corrigeren voor continue variabelen, of de spreidingen zijn duidelijk ongelijk (regressie met robuuste standaardfouten) | Linear regression |
| Sterk scheve uitkomst of uitschieters: pas hetzelfde model toe op logschaal, zodat de effecten ratio's worden | Unpaired t-test on log-transformed data |
| De uitkomst is een telling | Poisson and negative binomial regression |
| Dezelfde patiënten worden onder elke combinatie gemeten, of patiënten zijn geclusterd | Linear mixed model |
| Ja/nee-uitkomst | Logistic regression |
In uw software
# R
d$supplement <- factor(d$supplement, levels = c("standard", "new")) # de volgorde bepaalt de richting hieronder
d$sex <- factor(d$sex, levels = c("female", "male"))
fit <- lm(hb ~ supplement * sex, data = d) # beide factoren en hun interactie
anova(fit) # de rij supplement:sex is de toets van de interactie
nobs(fit) # gebruikte patiënten: ontbrekende waarden vallen stilzwijgend weg
library(emmeans)
# effect van supplement binnen elk geslacht, met 95%-BI (nieuw min standaard)
confint(pairs(emmeans(fit, ~ supplement | sex), reverse = TRUE))
# geen belangrijke interactie: het supplementeffect gemiddeld over geslacht
emmeans(fit, ~ supplement)
# de interactie zelf: (nieuw min standaard) bij vrouwen min dat bij mannen
confint(contrast(emmeans(fit, ~ supplement * sex), interaction = c("revpairwise", "pairwise")))
interaction.plot(d$sex, d$supplement, d$hb) # ongeveer evenwijdige lijnen: weinig interactie
# Lees summary(fit) niet: de coëfficiënt van supplement is het effect in alleen het eerste geslacht
* Type III kwadratensommen zijn de SPSS-standaard. EMMEANS vergelijkt supplement binnen elk geslacht.
* Lees Tests of Between-Subjects Effects voor de interactierij, en Pairwise Comparisons voor het effect binnen elk geslacht.
* De profielgrafiek toont geschatte gemiddelden, niet de ruwe gegevens.
UNIANOVA hb BY supplement sex
/METHOD=SSTYPE(3)
/PLOT=PROFILE(sex*supplement)
/EMMEANS=TABLES(supplement*sex) COMPARE(supplement) ADJ(BONFERRONI)
/PRINT=DESCRIPTIVE HOMOGENEITY
/CRITERIA=ALPHA(.05)
/DESIGN=supplement sex supplement*sex.