Bekymringsfri analyse af 2x2-tabeller

Studerende introduceres til analyse af 2x2 tabeller ved hjælp af \(\chi^2\) test som noget af det første i statistikundervisningen. Det er der flere gode grunde til: metoden er anvendelig i mange praktiske situationer, metoden er let at forstå, og man kan lave udregningerne i hånden. I undervisningen bliver mange studerende desuden præsenteret for en eller flere tommelfingerregler, som angiver, hvornår antagelserne for analysen er opfyldte. I praksis viser det sig, at man ikke behøver at bekymre sig om disse tommelfingerregler, hvis man bare vurderer \(\chi^2\)-teststørrelsen korrekt.

Sidste semester var jeg censor på et statistikkursus her på KU, hvor de studerende i en opgave skulle sammenligne hyppighederne for to populationer ved hjælp af et \(\chi^2\)-test. Som en del af opgaven skulle de studerende redegøre for, om antagelserne for \(\chi^2\)-testet var opfyldte, og i stort set alle besvarelserne skrev de studerende noget i stil med, at “da antallet af observationer i datasættet er større end 40 er antagelserne for \(\chi^2\)-testet opfyldt”. Formuleringen studsede jeg lidt over. For det første var de så ens, at det måtte være noget de studerende havde fået kollektivt at vide, og for det andet var det en tommelfingerregel, som jeg ikke var stødt på tidligere. Jeg havde hørt regler om at “de forventede antal skal alle være større end 5” eller “højst et af de forventede antal må være mindre end 1”.

En oversigt over nogle af de lærebøger, som bruges i statistikundervisningen viser, at anbefalingerne varierer noget:

Studieretning Lærebog Tommelfingerregel
Medicin Kirkwood & Sterne, “Essential Medical Statistics” \(N>40\)
Folkesundhedsvidenskab Kreiner, “Statistisk Problemløsning” Ingen tommelfingerregel
Odontologi Habicht, “Medicinsk statistik” N>40 og antal observationer i hver celle >5
Ph.d. (Basal biostatistik) Altman, “Practical Statistics for Medical Research” 80% af de forventede tal > 1

Lad os se på, hvor vigtige disse antagelser i virkeligheden er, og hvad man kan gøre for helt at slippe for at bekymrie sig om disse.1 Ian Campbell har lavet et grundigt simulationsstudie af forskellige testsstørrelsers opførsel ved små stikprøver i “Chi squared and Fisher-Irwin tests of two-by-two tables with small sample recommendations”, men også John Richardsons “Variants of chi‐square for 2 × 2 contingency tables” er værd at læse.

En 2x2-tabel er ikke bare en 2x2-tabel

En 2x2-tabel kan opskrives på nedenstående form, men 2x2-tabeller dukker op som konsekvens af flere forskellige forsøgsdesign, og de forskellige designs bestemmer, hvilke marginaler, der er låste i tabellen.

Tabel 1: En vilkårlig 2x2 tabel kan skrives op helt generelt som vist i tabellen. De fire tal \(a, b, c\) og \(d\) er de observerede antal.

\(a\) \(b\) \(n_1=a+b\)
\(c\) \(d\) \(n_2=c+d\)
\(a+c\) \(b+d\) \(N = n_1 + n_2\)

I et komparativt design eller eksperimentalt design sammenligner man hyppigheden af et udfald i to stikprøver fra forskellige populationer, så her har man valgt at indsamle en stikprøve af størrelse \(n_1\) fra population 1 og en anden stikprøve af størrelse \(n_2\) fra population 2. For denne type design er \(n_1\) og \(n_2\) derfor fastlåste, og hvis man gentog forsøget ville man igen gå ud og indsamle netop \(n_1\) observationer fra den første population og \(n_2\) observationer fra den anden population.2 I nogle lærebøger står denne situation også nævnt som at man laver et \(\chi^2\)-test for homogenitet.

I en anden type design, tværsnitsundersøgelsen registrerer man to typer målinger på hver af \(N\) personer. Her er det totale antal personer, \(N\), fastlåst, og fordelingen af personer efter de to binære inddelingskriterier vil variere, hvis forsøget gentages med samlet set \(N\) personer.3 Her siger mange lærebøger, at man laver et \(\chi^2\)-test for uafhængighed.

Endelig dukker der ind imellem et lidt specielt design op, hvor begge marginaler er fastlåste på forhånd. Situationen er lidt atypisk, og kendes måske bedst i relation til Fishers eksakte test, der præcis er konstrueret til at håndtere denne type design. Hvis man for eksempel har et forsøg, hvor en person præsenteres for 24 glas - 12 med Coca Cola og 12 med Pepsi Cola - og personen skal smage sig frem til, hvad der er i hvilke glas, så er man i præcis denne situation: Man ved, at der skal være 12 glas af hver (rækkemarginalerne er begge 12) og når man svarer ved man også, at der skal være netop 12 glas af hver (søjlemarginalerne er også begge 12).

Alle tre situationerne giver anledning til, at man i princippet kan bruge et almindeligt \(\chi^2\)-test til at undersøge, om der er en sammenhæng mellem de to inddelinger i tabellen, men approksimationen af teststørrelsen til en \(\chi^2\)-fordeling er kun “god”, hvis man har observationer nok.

Hvad er det, der kan gå galt?

\(\chi^2\)-teststørrelsen for en 2x2-tabel har formen

\[X^2 = \sum_{i}\frac{(O_i-E_i)^2}{E_i},\]

hvor \(O_i\) er de observerede tal i hver af tabellens 4 celler, mens \(E_i\) er de forventede tal under den relevante nulhypotese. Problemet med teststørrelsen opstår, hvis der er små forventede værdier, så mindst en af \(E_i\)’erne er lille.

Hvis det forventede antal i en celle, \(E_i\), er lille, så vil den tilhørende observation \(O_i\) typisk også være enten 0 eller 1 (hvis nulhypotesen passer). Hvis \(O_i=0\) er der ingen problemer, for bidraget fra den pågældende celle til teststørrelsen er \((0-E_i)^2/E_i = E_i\), hvilket var et lille tal. Hvis \(O_i\geq 1\) opstår problemet, da bidraget bliver ekstra stor, fordi vi dividerer med et meget lille tal. Hvis eksempelvis \(E_i = 0.1\) og \(O_i = 1\) så vil denne ene celle bidrage med

\[\frac{(1 - 0.1)^2}{0.1} = 8.1\]

uanset, hvad der ellers måtte stå i tabellen.4 Denne situation vil forekomme i 10% af tilfældende selvom nulhypotesen er sand, så det er en hændelse, der kan indtræffe. Teststørrelsen bliver stor, og dermed bliver \(p\)-værdien lille og man risikerer at finde en falsk positiv.

Denne problemstilling er årsagen til at de mange tommelfingerregler for \(\chi^2\)-test handler om at sikre, at de forventede værdier ikke bliver for små.

Hvilket \(\chi^2\)-test?

Det gør det heller ikke lettere, at der optræder forskellige teststørrelser for en 2x2-tabel. Nedenfor betragter vi fire forskellige tests til at undersøge sammenhæng i en 2x2-tabel:

  1. Det almindelige \(\chi^2\)-test, som står i stort set alle lærebøger, og som benytter teststørrelsen, der er angivet ovenfor.
  2. \(\chi^2\)-test med Yates’ korrektion. Denne teststørrelse laver en mindre justering, der resulterer i mindre teststørrelse (og dermed bliver testet mere konservativt end den ujusterede teststørrelse).
  3. Fishers eksakte test. Dette test bliver nævnt flere steder som et sikkert alternativ til \(\chi^2\)-testet, men som beskrevet ovenfor er dette test konstrueret til et helt specielt design, der kun sjældent optræder, og teststørrelsen bør derfor ikke bruges generelt.
  4. Et \((N-1)\) \(\chi^2\)-test foreslået af Pearson, hvor man ganger teststørrelsen fra det almindelige \(\chi^2\)-test med \((N-1)/N\), så den bliver lidt mindre for små stikprøvestørrelser.

Først kan vi se på, hvordan de fire tests opfører sig under nulhypotesen, når vi enten fastholder \(N\), \(n_1\) og \(n_2\), eller begge marginaler.

Figur 1: Aktuelt signifikansniveau under nulhypotesen, når \(N\) er fast (venstre figur), når \(n_1\) og \(n_2\) er faste (midterste figur), og når begge marginaler er faste (højre figur). Hver figur viser det aktuelle signifikansniveau for hver af de fire teststørrelser baseret på 200000 simulationer. Den tykke sorte linje angiver det nominelle niveau (0.05), mens det grå område viser en afvigelse på op til 20% fra den nominelle niveau. I det højre plot er enkelte af linjerne skjult fordi de følger de andre linjer.

Figuren viser flere interessante pointer. For det første giver Fishers eksakte test og \(\chi^2\) med Yates’ korrektion konservative tests, der har for små signifikansniveauer. De er altså mindre tilbøjelige til at forkaste nulhypotesen, hvis nulhypotesen er sand. Når data stammer fra en situation, hvor begge marginaler er faste (det højre plot i figuren) er der store problemer (og stor variation) for det almindelige \(\chi^2\)-test og for Pearsons version af samme. Overordnet set er der dog problemer for alle fire teststørrelser.

Det mest interessante er dog, at der er så få problemer for det almindelige \(\chi^2\)-test. For meget små sample sizes (\(N=16\)) lader det til at være lidt for liberalt (venstre plot), og her vil de fleste celler have forventede værdier mindre end 5. Bortset fra det giver teststørrelsen det rigtig niveau.

Hvilken teststørrelse skal man så bruge?

En god teststørrelse har et signifikansniveau, der svarer til den nominelle grænser under nulhypotesen, og som samtidig har så stor styrke som mulig under den alternative hypotese. Ulempen ved et konservativt test er, at i de tilfælde, hvor der rent faktisk er en sammenhæng i 2x2-tabellen, så bliver styrken muligvis reduceret. Nedenfor er vist styrken for de fire teststørrelser under et eksempel på den alternative hypotese. Igen ses det, at Fishers eksakte test og \(\chi^2\)-teststørrelsen med Yates’ korrektion har lavere styrke end det almindelige \(\chi^2\)-test.

Figur 2: Styrken for at konkludere, at data i en 2x2-tabel med fast \(n_1\) og \(n_2\) er i modstrid med nulhypotesen om at successandsynlighederne er de samme for begge rækker. Data er genereret, såhalvdelen af observationerne ligger i hver række, men med (betingede) rækkevise successandsynligheder på 50% og 90%.

Det er forvirrende, når man hører de forskellige tommelfingerregler for et \(\chi^2\)-test i en 2x2 tabel, men der findes en simpel løsning så man helt slipper for at bekymre sig om antagelserne. Hvis man benytter simulationer kan man få en teststørrelse, der altid har det korrekte nominelle niveau, og som ikke har problemer med små stikprøvestørrelser.

I R bruges funktionen chisq.test() til at lave \(\chi^2\)-tests i en 2x2-tabel. Hvis funktionen får argumentet simulate.p.value=TRUE vil p-værdien simuleres under nulhypotesen ud fra en antagelse om fast \(N\). Et alternativ er funktionen monte_carlo_chisq_test() fra MESS pakken, der kan håndtere alle tre typer 2x2-tabeller. Ved at give argumentet margin="N", margin="rows" eller margin="both" fastholdes henholdsvis den total stikprøve, rækkemarginalerne eller begge marginaler. Gevinsten ved de simulerede p-værdier ses i figur 2 ovenfor, hvor resultaterne fra de simulerede data har samme styrke som det almindelige \(\chi^2\)-test, og hvor der aldrig er problem med små stikprøver eller konservative tests. Ved at bruge monte_carlo_chisq_test() opfordres brugeren desuden til at tænke over, hvordan data er indsamlet, og hvilken type 2x2-tabel, der er den relevante for et givent datasæt. Slut med tommelfingerregler!