ML Atlas

01 · Podstawy · 4 min czytania · Interaktywne · aktualizacja

Czym jest problem wielokrotnych porównań i jak działa poprawka Bonferroniego?

W skrócie

Im więcej testów robisz, tym pewniejsze są fałszywe odkrycia. Korekty Bonferroniego, Holma i Benjaminiego–Hochberga przywracają kontrolę nad błędami.

Co to jest

Problem wielokrotnych porównań polega na tym, że gdy przeprowadza się wiele testów statystycznych naraz, prawdopodobieństwo uzyskania co najmniej jednego fałszywie istotnego wyniku rośnie znacznie ponad nominalny poziom α. Przy 20 niezależnych testach na poziomie 0,05, w których żaden efekt nie istnieje, szansa na przynajmniej jedno „odkrycie” wynosi 64%. Korekty na wielokrotne porównania obniżają próg istotności tak, by kontrolować błąd dla całej rodziny testów.

Intuicja: rzut monetą, który wypada dziesięć razy orłem, jest zdumiewający. Ale jeśli tysiąc osób rzuca po dziesięć razy, ktoś niemal na pewno tak trafi — i nie ma w tym żadnej magii. Szukając wśród 30 cech, 50 podgrup klientów albo 100 wariantów hiperparametrów, zawsze znajdzie się coś, co wygląda na efekt.

Mechanizm — dlaczego tak działa

Próg α = 0,05 gwarantuje, że pojedynczy test przy prawdziwej H₀ daje fałszywy alarm z prawdopodobieństwem 5%. Dla m niezależnych testów prawdopodobieństwo braku jakiegokolwiek fałszywego alarmu to 0,95^m, więc rodzinny wskaźnik błędu (FWER) wynosi 1 − 0,95^m: dla 20 testów 0,64, dla 100 testów 0,994. Oczekiwana liczba fałszywych alarmów to po prostu m·α — przy 100 testach pustych cech średnio pięć „istotnych”.

Korekta Bonferroniego dzieli próg przez liczbę testów: wynik jest istotny, gdy p < α/m. Z nierówności Boole’a prawdopodobieństwo sumy zdarzeń nie przekracza sumy ich prawdopodobieństw, więc FWER ≤ m·(α/m) = α, niezależnie od tego, jak testy są ze sobą skorelowane. Ceną jest utrata mocy: przy wielu testach prawdziwe, ale umiarkowane efekty przestają przechodzić przez bardzo surowy próg.

Metoda Holma jest jednostajnie lepsza: sortuje wartości p rosnąco i porównuje najmniejszą z α/m, kolejną z α/(m−1) i tak dalej, zatrzymując się na pierwszej nieistotnej. Kontroluje ten sam FWER, a odrzuca co najmniej tyle hipotez co Bonferroni.

Benjamini i Hochberg (1995) zmienili pytanie. Zamiast chronić się przed jakimkolwiek błędem, kontrolują FDR — oczekiwany odsetek fałszywych odkryć wśród wszystkich ogłoszonych odkryć. Procedura: posortuj p rosnąco i znajdź największe k, dla którego p₍ₖ₎ ≤ (k/m)·α; odrzuć k najmniejszych. Przy FDR = 5% godzimy się, że średnio co dwudzieste odkrycie będzie fałszywe, w zamian zyskując dużo mocy. To standard w genomice, przesiewie cech i wszędzie, gdzie testy mają generować kandydatów do dalszej weryfikacji.

Najgroźniejsza wersja problemu jest ukryta: nikt nie raportuje 100 testów, tylko ten jeden, który „wyszedł”. Zmiana podgrupy, metryki, okna czasowego czy sposobu usuwania odstających obserwacji to też porównania, nawet jeśli nie zapisano ich w kodzie. Dlatego plan analizy ustala się z góry, a wyniki eksploracyjne potwierdza na nowych danych.

Na przykładzie

Breast Cancer Wisconsin: 569 guzów (212 złośliwych, 357 łagodnych) i 30 cech. Test t Welcha dla każdej cechy daje 26 wyników z p < 0,05. Dołóżmy do danych 100 kolumn czystego szumu z rozkładu normalnego, które z definicji nie mają związku z diagnozą. Bez korekty 4 z nich wyszły „istotne”, najmniejsze p wyniosło 0,002 — wynik, który w pojedynczym teście wyglądałby przekonująco. Powtórzenie eksperymentu na 200 różnych zestawach szumu dało średnio 5,0 fałszywych odkryć, a co najmniej jedno w każdym ze 200 powtórzeń.

Korekta Bonferroniego dla 130 testów (próg 0,05/130 ≈ 0,00038) zostawiła 25 prawdziwych cech i 0 szumowych; w 200 powtórzeniach szum przeszedł przez próg tylko w 3% z nich, zgodnie z gwarancją FWER ≤ 5%. Holm dał ten sam wynik. Benjamini–Hochberg przepuścił 25 prawdziwych cech i 2 szumowe — 2 z 27 odkryć, czyli 7% fałszywych. W pojedynczym eksperymencie odsetek może przekroczyć 5%; procedura gwarantuje 5% średnio.

Ta ilustracja działa w przeglądarce z włączonym JavaScriptem: na 60 próbkach czystego szumu (1000 kolumn, losowe etykiety) wybór 10 cech przed walidacją krzyżową daje pozorne 82% trafności, a wybór wewnątrz każdego podziału uczciwe 43% — poziom zgadywania.

Dane: Breast Cancer Wisconsin (diagnostyka raka piersi)

W praktyce

  • statsmodels.stats.multitest.multipletests(pvals, alpha=0.05, method='holm') — także 'bonferroni', 'fdr_bh'; zwraca decyzje i skorygowane wartości p.
  • scipy.stats.false_discovery_control(pvals) daje skorygowane wartości p metodą Benjaminiego–Hochberga.
  • FWER (Bonferroni, Holm), gdy pojedynczy fałszywy alarm jest kosztowny (decyzja kliniczna, wdrożenie). FDR, gdy wyniki to kandydaci do dalszej weryfikacji.
  • Selekcja cech testami jednowymiarowymi (SelectKBest, f_classif) to masowe testowanie — rób ją wewnątrz walidacji krzyżowej, inaczej wynik CV będzie zawyżony.
  • Strojenie wielu hiperparametrów na jednym zbiorze walidacyjnym to ten sam problem: najlepszy wynik jest zawyżony. Sprawdzaj zwycięzcę na osobnym zbiorze testowym.

Najczęstsze pytania

Czy poprawka Bonferroniego nie jest zbyt surowa?
Bywa — przy setkach skorelowanych testów traci dużo mocy. Holm daje tę samą gwarancję przy większej mocy, a gdy wystarczy kontrola odsetka fałszywych odkryć, metoda Benjaminiego–Hochberga jest znacznie łagodniejsza.
Czym różni się FWER od FDR?
FWER to prawdopodobieństwo choćby jednego fałszywego odkrycia w całej rodzinie testów. FDR to oczekiwany odsetek fałszywych wśród ogłoszonych odkryć. FWER = 5% oznacza „prawie nigdy żadnej pomyłki”, FDR = 5% — „średnio jedna pomyłka na 20 odkryć”.
Co liczyć jako jedną rodzinę testów?
Wszystkie testy, z których wyników wyciąga się jeden wniosek lub z których wybiera się zwycięzcę. W praktyce to wszystkie warianty przetestowane w jednej analizie, łącznie z tymi, których nie zamierzało się raportować.

Źródła

  • Benjamini, Y., Hochberg, Y. (1995). "Controlling the false discovery rate: a practical and powerful approach to multiple testing". Journal of the Royal Statistical Society: Series B, 57(1), 289–300.
  • Holm, S. (1979). "A simple sequentially rejective multiple test procedure". Scandinavian Journal of Statistics, 6(2), 65–70.
  • James, G., Witten, D., Hastie, T., Tibshirani, R. (2021). An Introduction to Statistical Learning, 2nd ed., rozdz. 13 (Multiple Testing).
  • statsmodels: multipletests, https://www.statsmodels.org/stable/generated/statsmodels.stats.multitest.multipletests.html

Zobacz też