Poprawka Holma i FDR (Benjamini-Hochberg) – wzór i przykład
Poprawka Holma i poprawka Benjaminiego-Hochberga (FDR) korygują wartości p, gdy w jednym badaniu wykonujesz wiele testów naraz. Typowe pytanie z pracy dyplomowej: porównałem dwie grupy studentów na czterech wskaźnikach i dostałem cztery wyniki istotne – które z nich przetrwają korektę?
W prostych słowachKażdy test to mała szansa na fałszywy alarm. Przy wielu testach te szanse się sumują. Bonferroni podnosi poprzeczkę jednakowo dla wszystkich testów. Holm robi to samo, ale po kolei: najsurowiej ocenia najmniejsze p, a potem stopniowo łagodnieje. Benjamini-Hochberg idzie dalej – godzi się na to, że wśród Twoich „odkryć” znajdzie się mały odsetek fałszywych, w zamian za większą szansę wykrycia prawdziwych efektów.
Kiedy stosować poprawkę Holma, a kiedy FDR?
- wykonujesz serię testów na tych samych danych: porównania par grup, kilka zmiennych zależnych, macierz korelacji;
- Holm – gdy nawet jeden fałszywy alarm byłby poważnym błędem (np. wnioski z hipotez głównych). Zawsze wykrywa co najmniej tyle, co Bonferroni, i nie wymaga żadnych dodatkowych założeń;
- Benjamini-Hochberg (FDR) – gdy testów jest dużo, badanie ma charakter eksploracyjny i akceptujesz, że niewielka część wyników okaże się fałszywa;
- w obu przypadkach liczbę testów m ustalasz przed obejrzeniem wyników.
Podstawy znajdziesz w haśle o poprawce Bonferroniego i o błędzie I rodzaju. Holm jest domyślną korektą m.in. po teście Dunna.
Wzór na poprawkę Holma i Benjaminiego-Hochberga
- \(m\)
- liczba wszystkich testów w serii
- \(p_{(1)} \le p_{(2)} \le \dots \le p_{(m)}\)
- wartości p ustawione od najmniejszej do największej; indeks w nawiasie to miejsce w tej kolejce
- \(i,\ j\)
- numer miejsca w kolejce (1 = najmniejsze p)
- \(\alpha\)
- poziom istotności dla całej serii, zwykle 0,05
- \(p^{H},\ p^{BH}\)
- skorygowane p, które porównujesz ze zwykłym 0,05
- \(\max_{j \le i},\ \min_{j \ge i}\)
- „wyrównanie” – skorygowane p nie może maleć, gdy surowe p rośnie
- FWER
- ryzyko co najmniej jednego fałszywego alarmu w serii – kontroluje je Holm
- FDR
- oczekiwany odsetek fałszywych alarmów wśród wyników uznanych za istotne – kontroluje go BH
Na głos: „Holm mnoży najmniejsze p przez m, drugie przez m minus jeden i tak dalej; BH mnoży każde p przez m i dzieli przez jego miejsce w kolejce”.
Przykład krok po kroku
Porównujesz studentów uczących się z quizów i z notatek na czterech wskaźnikach: punkty z kolokwium, czas nauki, stres przed egzaminem i ocena zajęć. Cztery testy t dały p = 0,01; 0,02; 0,03 i 0,04. Bez korekty wszystkie są istotne.
| Miejsce i | p | Bonferroni 4 · p | Próg Holma 0,05 / (5 − i) | Holm (5 − i) · p | Holm po wyrównaniu | Próg BH i · 0,05 / 4 | BH 4 · p / i | BH po wyrównaniu |
|---|---|---|---|---|---|---|---|---|
| 1 | 0,01 | 0,04 | 0,0125 | 4 · 0,01 = 0,04 | 0,04 | 0,0125 | 0,04 / 1 = 0,04 | 0,04 |
| 2 | 0,02 | 0,08 | 0,0167 | 3 · 0,02 = 0,06 | 0,06 | 0,0250 | 0,08 / 2 = 0,04 | 0,04 |
| 3 | 0,03 | 0,12 | 0,0250 | 2 · 0,03 = 0,06 | 0,06 | 0,0375 | 0,12 / 3 = 0,04 | 0,04 |
| 4 | 0,04 | 0,16 | 0,0500 | 1 · 0,04 = 0,04 | 0,06 | 0,0500 | 0,16 / 4 = 0,04 | 0,04 |
| Istotne | 4 z 4 | 1 z 4 | 1 z 4 | 4 z 4 |
- Ustaw p w kolejce. Od najmniejszego: 0,01; 0,02; 0,03; 0,04. Liczba testów m = 4.
- Bonferroni. Mnożysz każde p przez 4: 0,04; 0,08; 0,12; 0,16. Poniżej 0,05 jest tylko pierwsze.
- Holm, krok 1. Najmniejsze p porównujesz z 0,05 / 4 = 0,0125. Ponieważ 0,01 < 0,0125, ten test jest istotny i idziesz dalej.
- Holm, krok 2. Drugie p porównujesz z 0,05 / 3 = 0,0167. Ponieważ 0,02 > 0,0167, zatrzymujesz się. Ten test i wszystkie kolejne są nieistotne – nawet ostatni, choć 0,04 < 0,05.
- Holm w wersji „skorygowane p”. Mnożniki to 4, 3, 2 i 1: 4 · 0,01 = 0,04; 3 · 0,02 = 0,06; 2 · 0,03 = 0,06; 1 · 0,04 = 0,04. Ostatnia wartość jest mniejsza od poprzedniej, więc wyrównujesz ją w górę do 0,06. Wynik: 0,04; 0,06; 0,06; 0,06 – ten sam wniosek co w krokach 3–4.
- BH, progi. Progi rosną liniowo: 1 · 0,05 / 4 = 0,0125; 2 · 0,05 / 4 = 0,025; 3 · 0,05 / 4 = 0,0375; 4 · 0,05 / 4 = 0,05. Zaczynasz od końca: 0,04 ≤ 0,05, więc ten test i wszystkie z mniejszym p są istotne.
- BH w wersji „skorygowane p”. 4 · 0,01 / 1 = 0,04; 4 · 0,02 / 2 = 0,04; 4 · 0,03 / 3 = 0,04; 4 · 0,04 / 4 = 0,04. Wszystkie cztery są poniżej 0,05.
- Wniosek. Bonferroni i Holm zostawiają jeden istotny wynik, BH – wszystkie cztery. Różnica wynika z tego, co każda metoda kontroluje.
p.adjust(). Bonferroni szybko „ucieka” w górę, Holm zatrzymuje się na 0,06, a BH daje wszędzie 0,04 – poniżej czerwonej linii 0,05.
Jak zinterpretować i opisać wynik?
Najpierw napisz, którą korektę wybrałeś i dlaczego – najlepiej już w rozdziale metodologicznym. Jeśli Twoje cztery wskaźniki to hipotezy główne, raportuj Holma: istotna pozostaje tylko różnica w punktach z kolokwium. Jeśli to analiza eksploracyjna, możesz użyć BH i napisać, że oczekiwany odsetek fałszywych odkryć wśród wyników istotnych nie przekracza 5%. Podawaj zawsze skorygowane p, a nie tylko „istotne/nieistotne”. Wynik nieistotny po korekcie nie oznacza, że efektu nie ma.
Zapis w stylu APA: Wartości p skorygowano metodą Holma dla czterech porównań. Po korekcie grupy różniły się istotnie jedynie punktami z kolokwium (pHolm = 0,04); różnice w czasie nauki, stresie i ocenie zajęć były nieistotne (wszystkie pHolm = 0,06).
Jak policzyć poprawkę Holma i FDR w R?
p <- c(punkty = 0.01, czas_nauki = 0.02, stres = 0.03, ocena_zajec = 0.04)
m <- length(p); i <- rank(p) # miejsce w kolejce
# 1) „ręcznie”, według wzorów (p są już ułożone rosnąco)
holm_surowe <- (m - i + 1) * p # 4p, 3p, 2p, 1p
holm <- pmin(1, cummax(holm_surowe)) # wyrównanie w górę
bh_surowe <- m * p / i # 4p/1, 4p/2, 4p/3, 4p/4
bh <- pmin(1, rev(cummin(rev(bh_surowe)))) # wyrównanie w dół
rbind(holm_surowe, holm, bh_surowe, bh)
# 2) gotowa funkcja p.adjust()
rbind(bonferroni = p.adjust(p, "bonferroni"),
holm = p.adjust(p, "holm"),
BH = p.adjust(p, "BH"))
Wynik w konsoli R:
punkty czas_nauki stres ocena_zajec
holm_surowe 0.04 0.06 0.06 0.04
holm 0.04 0.06 0.06 0.06
bh_surowe 0.04 0.04 0.04 0.04
bh 0.04 0.04 0.04 0.04
punkty czas_nauki stres ocena_zajec
bonferroni 0.04 0.08 0.12 0.16
holm 0.04 0.06 0.06 0.06
BH 0.04 0.04 0.04 0.04
Funkcja p.adjust() zwraca wartości w tej samej kolejności, w jakiej je podałeś – nie musisz ich sortować. Nazwa "fdr" to w R synonim "BH".
FWER czy FDR – co kontroluje każda poprawka?
FWER (Bonferroni, Holm) to szansa, że w całej serii pojawi się choćby jeden fałszywy alarm. Kontrolujesz ją, gdy każda pomyłka ma koszt, np. gdy z wyniku wynika rekomendacja dla uczelni. FDR (Benjamini-Hochberg) to oczekiwany odsetek fałszywych alarmów wśród wyników, które uznałeś za istotne. Przy 20 „odkryciach” i FDR = 5% spodziewasz się średnio jednego fałszywego. To rozsądny kompromis przy dużej liczbie testów, np. w macierzy korelacji wielu skal. Holm jest zawsze co najmniej tak dobry jak Bonferroni, więc samego Bonferroniego warto używać głównie wtedy, gdy wymaga go promotor lub czasopismo.
Najczęstsze błędy
- Liczenie m tylko z testów, które „wyszły”. Do m wliczasz wszystkie wykonane testy z danej serii.
- Mieszanie progów: porównywanie skorygowanego p z α / m. Skorygowane p porównujesz już ze zwykłym 0,05.
- Przerywanie procedury Holma w złym miejscu. Po pierwszym nieistotnym wyniku wszystkie kolejne też są nieistotne.
- Pisanie, że BH „chroni przed fałszywymi alarmami” tak samo jak Holm. BH kontroluje odsetek, a nie ryzyko pojedynczej pomyłki.
- Wybór korekty po obejrzeniu, która daje więcej istotnych wyników.
Bibliografia
- Holm, S. (1979). A simple sequentially rejective multiple test procedure. Scandinavian Journal of Statistics, 6(2), 65–70.
- 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 (Methodological), 57(1), 289–300. https://doi.org/10.1111/j.2517-6161.1995.tb02031.x
- Field, A., Miles, J., & Field, Z. (2012). Discovering statistics using R. SAGE.
- King, B. M., & Minium, E. W. (2009). Statystyka dla psychologów i pedagogów. Wydawnictwo Naukowe PWN.
- Hryniewicz, K., & Milewska, A. (2023). SZTOS: System Zautomatyzowanego Tworzenia Opisu Statystycznego [Oprogramowanie]. SZTOS IT. https://sztos-it.com/
Zobacz też
- Słownik wzorówPoprawka Bonferroniego
- Słownik wzorówBłąd I rodzaju (α)
- Słownik wzorówTest Dunna
- Słownik wzorówIstotność statystyczna i wartość p
- PoradnikANOVA – przykład
- Słownik wzorówSłownik wzorów statystycznych – wszystkie hasła
- Przykładowy raportAnaliza wariancji
Potrzebujesz pomocy z analizą do pracy dyplomowej?
Policzymy Twoje wyniki, przygotujemy tabele, wykresy i opis w standardzie APA, który wykorzystasz w swojej pracy. Pomagamy jak statystyk i redaktor – autorem pracy zostajesz Ty. Konsultacja i wycena są bezpłatne.