426. Test Fishera dla większych tabel – możliwości i ograniczenia

W poprzedniej lekcji analizowaliśmy dokładny test Fishera dla tabeli 2×2. Warto jednak wiedzieć, że idea tego testu nie kończy się na dwóch wierszach i dwóch kolumnach. Można ją rozszerzyć na tabele r×c, czyli takie, w których obie zmienne jakościowe mają więcej niż dwie kategorie. W praktyce mówi się wtedy o uogólnionym teście Fishera, teście Fishera–Freemana–Haltona albo dokładnym teście niezależności dla tabeli kontyngencji. W tej lekcji wyjaśnimy, co dokładnie jest testowane, jak oblicza się wartość p, dlaczego obliczenia bywają trudne oraz kiedy lepiej zastosować przybliżenie lub symulację.

Od tabeli 2×2 do tabeli r×c

Rozważmy dwie zmienne jakościowe: na przykład rodzaj leczenia i wynik kliniczny albo poziom nasilenia lęku i obecność absencji chorobowej. Ich wspólne liczebności można przedstawić w tabeli kontyngencji. Jeżeli pierwsza zmienna ma r kategorii, a druga c kategorii, otrzymujemy tabelę r×c.

Kategoria 1 Kategoria 2 … Kategoria c Suma
Wiersz 1 n11 n12 … n1c n1+
Wiersz 2 n21 n22 … n2c n2+
… … … … … …
Wiersz r nr1 nr2 … nrc nr+
Suma n+1 n+2 … n+c N

Hipoteza zerowa ma postać:

H0: zmienne wierszowa i kolumnowa są niezależne w populacji.

H1: zmienne nie są niezależne.

Test nie odpowiada sam przez się na pytanie, które kategorie się różnią ani jaki jest kierunek zależności. Mówi jedynie, czy obserwowany układ liczebności jest wystarczająco nietypowy względem rozkładu zakładającego niezależność.

Na czym polega uogólniony test Fishera?

W teście dokładnym przyjmuje się, że sumy brzegowe tabeli są ustalone: znamy liczebności w poszczególnych wierszach i kolumnach, a następnie rozważamy wszystkie tabele, które mają dokładnie te same sumy brzegowe. Zbiór takich tabel tworzy warunkową przestrzeń odniesienia.

Jeżeli hipoteza niezależności jest prawdziwa, każda tabela z tej przestrzeni ma określone prawdopodobieństwo wynikające z wielowymiarowego rozkładu hipergeometrycznego. Dla tabeli X prawdopodobieństwo można zapisać jako:

P(X) = [(∏j=1c n+j!) (∏i=1r ni+!)] / [N! ∏i=1r ∏j=1c nij!]

W tym wzorze:

  • nij oznacza liczebność w komórce znajdującej się w wierszu i i kolumnie j;
  • ni+ jest sumą wiersza i;
  • n+j jest sumą kolumny j;
  • N jest całkowitą liczebnością próby;
  • r i c oznaczają odpowiednio liczbę wierszy i kolumn.

Wartość p otrzymuje się przez zsumowanie prawdopodobieństw tabel uznanych za co najmniej tak nietypowe jak tabela zaobserwowana. W klasycznym ujęciu Freemana i Haltona (1951) bierze się pod uwagę tabele o prawdopodobieństwie nie większym niż prawdopodobieństwo tabeli obserwowanej. To uogólnienie nie jest jednak jedynym możliwym sposobem zdefiniowania „bardziej ekstremalnych” tabel. W przypadku rozkładów dyskretnych wybór reguły może wpływać na wartość p.

Dlaczego większe tabele są obliczeniowo trudne?

W tabeli 2×2 liczba możliwych tabel przy ustalonych sumach brzegowych jest niewielka. W tabeli 3×4, 4×5 lub większej liczba dopuszczalnych układów może jednak rosnąć bardzo szybko. Naiwne wyliczenie wszystkich tabel i ich prawdopodobieństw staje się wtedy czasochłonne albo niewykonalne.

Przełomowe znaczenie miały algorytmy sieciowe Mehty i Patela (1983). Zamiast generować wszystkie tabele w sposób bezpośredni, algorytm przedstawia problem jako przejście przez sieć stanów. Dzięki temu można efektywniej sumować prawdopodobieństwa tabel należących do warunkowego zbioru odniesienia. Współczesne implementacje, takie jak funkcja fisher.test() w środowisku R, wykorzystują algorytmy oparte na tej idei dla większych tabel.

„Dokładny” nie oznacza więc, że obliczenie jest zawsze łatwe. Oznacza, że przyjęty rozkład odniesienia jest obliczany bez zastępowania go rozkładem asymptotycznym chi-kwadrat. Przy dużych lub bardzo rozbudowanych tabelach dokładne obliczenie może zakończyć się błędem, wymagać dużej pamięci albo trwać nieproporcjonalnie długo.

Dokładne obliczenie a symulacja Monte Carlo

Gdy pełny test dokładny jest zbyt kosztowny, można losować wiele tabel z ustalonymi sumami brzegowymi i sprawdzać, jak często uzyskany wynik jest co najmniej tak ekstremalny jak obserwowany. Jest to warunkowa symulacja Monte Carlo. Patefield (1981) opisał efektywny sposób generowania losowych tabel r×c o zadanych sumach wierszy i kolumn.

Jeżeli wykonamy B symulacji, a w K z nich statystyka będzie co najmniej tak ekstremalna jak w danych, często stosuje się estymator:

p̂ = (K + 1) / (B + 1)

Dodanie jedynki w liczniku i mianowniku ogranicza ryzyko raportowania wartości równej dokładnie zero. Przy B = 9999 najmniejsza możliwa raportowana wartość wynosi około 0,0001. Symulowane p jest przybliżeniem obarczonym błędem losowym, dlatego należy podawać liczbę replikacji, a przy ważnych analizach także informację o stabilności wyniku.

W dokumentacji R zaznaczono, że dla dużych tabel symulacja może być praktyczniejsza niż zwiększanie zasobów potrzebnych do obliczenia testu dokładnego. Nie należy jednak przedstawiać wyniku Monte Carlo jako „dokładnego testu Fishera” bez doprecyzowania, że wartość p została oszacowana symulacyjnie.

Przykład 1: rodzaj leczenia i poprawa stanu zdrowia

Załóżmy, że w badaniu obserwacyjnym porównano trzy strategie postępowania u pacjentów z umiarkowanymi objawami depresji. Wynik po ośmiu tygodniach zaklasyfikowano jako: brak poprawy, poprawa częściowa albo poprawa znaczna.

Strategia Brak poprawy Poprawa częściowa Poprawa znaczna Suma
A 12 10 3 25
B 7 12 6 25
C 4 9 12 25
Suma 23 31 21 75

Hipoteza zerowa mówi, że rozkład kategorii poprawy jest taki sam we wszystkich strategiach. Jeżeli uogólniony test Fishera daje np. p = 0,018, można stwierdzić, że dane są niezgodne z niezależnością strategii i wyniku. Nie wolno jednak napisać, że strategia C „spowodowała” większą poprawę, jeżeli badanie nie było randomizowane i nie kontrolowano ważnych czynników zakłócających.

Następny krok powinien obejmować opis odsetków w wierszach, analizę reszt lub porównań zaplanowanych a priori oraz miarę siły zależności, na przykład V Craméra. Sam test Fishera nie dostarcza pełnej informacji o rozmiarze efektu.

Przykład 2: triage w ratownictwie medycznym

W drugim przykładzie analizujemy zależność między kategorią pilności zgłoszenia a wynikiem transportu pacjenta:

  • kategoria pilności: natychmiastowa, pilna, odroczona;
  • wynik: przyjęcie do szpitala, obserwacja, wypis po konsultacji.

Jeżeli część komórek ma liczebność równą 0 lub 1, test chi-kwadrat może opierać się na słabym przybliżeniu. Test Fishera dla tabeli 3×3 pozwala zachować warunkową, dyskretną strukturę danych. Nie rozwiązuje jednak problemu jakości pomiaru: jeżeli kategoria triage była przypisywana niespójnie przez personel albo wynik zależał od różnych kryteriów organizacyjnych, precyzyjny test nie naprawi błędu systematycznego.

W większej tabeli warto również rozważyć, czy wszystkie kategorie są naukowo potrzebne. Łączenie kategorii wyłącznie po to, aby uzyskać większe liczebności, może zmienić pytanie badawcze i ukryć klinicznie istotne różnice.

Możliwości testu Fishera dla większych tabel

1. Odporność na małe liczebności

Najważniejszą zaletą jest brak konieczności polegania na dużopróbkowym przybliżeniu rozkładu statystyki. Jest to szczególnie użyteczne w badaniach pilotażowych, analizach rzadkich zdarzeń i małych próbach klinicznych.

2. Możliwość analizy tabel prostokątnych

Test może dotyczyć tabel 2×3, 3×4, 4×5 i innych, a nie tylko tabel kwadratowych. Nie wymaga, aby liczba kategorii obu zmiennych była taka sama.

3. Warunkowanie na sumach brzegowych

Wnioskowanie uwzględnia ustalone sumy wierszy i kolumn, co jest naturalne w wielu układach, w których liczebności grup lub kategorii są z góry znane.

4. Możliwość symulacyjnego rozszerzenia analizy

Jeżeli pełne obliczenie jest zbyt trudne, można zastosować losowanie warunkowe. To praktycznie poszerza zakres tabel, które da się analizować.

Ograniczenia i pułapki interpretacyjne

„Dokładny” nie znaczy „lepszy w każdej sytuacji”

Test dokładny może mieć małą moc, zwłaszcza gdy próba jest niewielka, a alternatywa rozproszona między wieloma komórkami. Brak istotności statystycznej nie dowodzi niezależności; może oznaczać także niewystarczającą informację.

Problem definicji dwustronnej wartości p

W tabeli 2×2 istnieją różne sposoby wyznaczania dwustronnego p. W tabelach większych problem jest jeszcze bardziej widoczny, ponieważ „ekstremalność” może być określana przez prawdopodobieństwo tabeli, statystykę chi-kwadrat, statystykę ilorazu wiarygodności albo inną miarę. Dlatego należy podać metodę i oprogramowanie, a nie tylko samą wartość p.

Brak jednej prostej miary efektu dla całej tabeli

W tabeli 2×2 naturalną miarą jest iloraz szans. W tabeli r×c można zastosować V Craméra, współczynnik kontyngencji albo model regresji dla danych kategorialnych, zależnie od celu badania. Jeżeli kategorie są uporządkowane, warto wykorzystać ich porządek zamiast traktować je jako nominalne.

Wielokrotne testowanie

Jeżeli po wyniku globalnym wykonujemy wiele porównań par kategorii, rośnie ryzyko fałszywie dodatnich wniosków. Należy wcześniej określić porównania albo zastosować korektę, na przykład metodę Holma. Wynik globalnego testu nie usprawiedliwia automatycznego przeszukiwania wszystkich komórek bez kontroli błędu.

Jak wykonać analizę w praktyce?

  1. Zdefiniuj jednostkę analizy i obie zmienne jakościowe.
  2. Utwórz tabelę liczebności, nie tabelę procentów jako jedyne źródło danych.
  3. Sprawdź puste kategorie, zera strukturalne i zera przypadkowe.
  4. Wybierz test globalny: chi-kwadrat, test dokładny lub symulację warunkową.
  5. Ustal przed analizą, jak zdefiniowana będzie ekstremalność tabel.
  6. Raportuj liczebności, procenty, metodę, wartość p, liczbę symulacji oraz miarę efektu, jeśli jest uzasadniona.
  7. Oddziel wniosek o zależności od wniosku o przyczynowości.

W środowisku R przykładowe polecenie może mieć postać fisher.test(tablica). Dla dużych tabel można rozważyć fisher.test(tablica, simulate.p.value = TRUE, B = 9999). Parametr B określa liczbę symulacji. W publikacji należy wskazać, że otrzymano symulowane, a nie analitycznie wyliczone p.

Najczęstsze błędy

  • Traktowanie testu Fishera jako testu wyłącznie dla tabel 2×2. W tabelach większych stosuje się jego uogólnienie, często określane jako test Fishera–Freemana–Haltona.
  • Raportowanie samego „p < 0,05”. Warto podać dokładną wartość, jeśli pozwala na to sposób obliczeń, oraz metodę testowania.
  • Mylenie braku istotności z dowodem braku zależności. Wynik nieistotny może wynikać z małej próby lub niskiej mocy.
  • Uznawanie testu dokładnego za wolny od założeń. Nadal potrzebne są poprawne kategorie, niezależne obserwacje i sensowny plan badania.
  • Automatyczne łączenie kategorii. Redukcja liczby kategorii może zmienić znaczenie zmiennej.
  • Wnioskowanie przyczynowe z tabeli obserwacyjnej. Zależność między zmiennymi nie dowodzi, że jedna zmienna wywołuje drugą.
  • Pomijanie miary efektu. Istotność statystyczna nie mówi, czy zależność jest duża ani ważna klinicznie.
  • Niepodawanie informacji o symulacji. Wartość Monte Carlo powinna być opisana wraz z liczbą replikacji i sposobem losowania.

Przykład praktyczny: jak zapisać wynik?

Załóżmy, że w badaniu 75 pacjentów otrzymano tabelę 3×3 podobną do przedstawionej wcześniej. Uogólniony test Fishera, obliczony metodą Monte Carlo z 9999 replikacjami, dał p = 0,018. W raporcie można napisać:

Rozkład kategorii poprawy różnił się między trzema strategiami postępowania. W warunkowym teście Fishera dla tabeli 3×3, z wartością p oszacowaną metodą Monte Carlo na podstawie 9999 replikacji, uzyskano p = 0,018. Największy odsetek znacznej poprawy obserwowano w grupie C; wynik ten ma charakter opisowy, ponieważ badanie nie było randomizowane. Do oceny siły zależności obliczono dodatkowo V Craméra.

Taki zapis jest lepszy niż zdanie „test Fishera wykazał, że leczenie C jest skuteczniejsze”. Pierwsza wersja rozróżnia wynik testu, opis danych i ograniczenia schematu badania.

Co warto zapamiętać?

  • Test Fishera można uogólnić na tabele r×c; często nazywa się go testem Fishera–Freemana–Haltona.
  • Wnioskowanie opiera się na tabelach o tych samych sumach brzegowych i na warunkowym rozkładzie hipergeometrycznym.
  • W większych tabelach obliczenia dokładne mogą być bardzo kosztowne.
  • Algorytmy sieciowe oraz symulacja Monte Carlo umożliwiają analizę większych problemów, ale symulowane p jest przybliżeniem.
  • Wartość p nie jest prawdopodobieństwem prawdziwości hipotezy zerowej.
  • Test globalny nie wskazuje automatycznie, które komórki odpowiadają za zależność.
  • Należy raportować liczebności, metodę, sposób wyznaczenia wartości p, a także wielkość i znaczenie praktyczne efektu.
  • Dokładność obliczeń nie zastępuje poprawnego projektu badania i ostrożnej interpretacji.

W ramach publicznego szkolenia na statystyk.edu.pl ta lekcja stanowi przejście od analizy pojedynczych komórek tabeli 2×2 do problemów wielokategorialnych, w których równie ważne jak wybór testu są definicja pytania badawczego, sposób kodowania kategorii i raportowanie ograniczeń.

Źródła i dalsza lektura

  1. G. H. Freeman; J. H. Halton (1951). Note on an Exact Treatment of Contingency, Goodness of Fit and Other Problems of Significance. Biometrika, 38(1-2), 141–149. DOI: 10.1093/biomet/38.1-2.141.
  2. Cyrus R. Mehta; Nitin R. Patel (1983). A Network Algorithm for Performing Fisher’s Exact Test in r × c Contingency Tables. Journal of the American Statistical Association, 78(382), 427–434. DOI: 10.1080/01621459.1983.10477989.
  3. W. M. Patefield (1981). Algorithm AS 159: An Efficient Method of Generating Random R × C Tables with Given Row and Column Totals. Journal of the Royal Statistical Society: Series C (Applied Statistics), 30(1), 91–97. DOI: 10.2307/2346669.
  4. Alan Agresti (2013). Categorical Data Analysis. 3rd edition. John Wiley & Sons. Informacja wydawcy / źródło.
  5. R Core Team (2026). Fisher’s Exact Test for Count Data: fisher.test. R Documentation, package stats. R Foundation for Statistical Computing. Źródło.
  6. Alan Agresti (1992). A Survey of Exact Inference for Contingency Tables. Statistical Science, 7(1), 131–153. DOI: 10.1214/ss/1177011454.

Podobne wpisy

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *