Słownik metodologiczny · Testy statystyczne

Problem wielokrotnych porównań – FWER, FDR i korekta Holma krok po kroku

Im więcej testów w jednym badaniu, tym większa szansa na fałszywie istotny wynik. Wyjaśniamy różnicę między FWER a FDR i pokazujemy korektę Holma krok po kroku obok procedury Benjaminiego–Hochberga.

Strona główna / Słownik / Problem wielokrotnych porównań
W skrócie: Problem wielokrotnych porównań polega na tym, że przy wielu testach rośnie szansa na co najmniej jeden fałszywie istotny wynik – przy czterech niezależnych testach na poziomie α = .05 aż do .185. Kontroluj FWER korektą Holma, a w eksploracji wielu testów – FDR procedurą Benjaminiego–Hochberga.

Co to jest problem wielokrotnych porównań?

Problem wielokrotnych porównań (ang. multiple comparisons problem) to wzrost ryzyka fałszywie istotnego wyniku, gdy w jednym badaniu wykonujesz wiele testów i każdy oceniasz na poziomie α. W psychologii dotyczy porównań par grup po ANOVA (testy post hoc), kilku wskaźników wyniku w jednym eksperymencie i macierzy korelacji. Brak korekty na wielokrotne porównania to częsty zarzut recenzentów.

FWER i FDR

FWER (ang. familywise error rate) to prawdopodobieństwo co najmniej jednego błędu I rodzaju w rodzinie testów. Dla k niezależnych testów, gdy wszystkie hipotezy zerowe są prawdziwe:

FWER = 1 − (1 − α)k = 1 − (1 − .05)4 = .185

Przy czterech testach ryzyko jest więc prawie czterokrotnie wyższe niż deklarowane 5%. FDR (ang. false discovery rate) to oczekiwany odsetek fałszywych odkryć wśród wyników istotnych. Benjamini i Hochberg (1995) zaproponowali kontrolę FDR zamiast FWER, co daje wyraźny zysk mocy; stosuje się ją głównie w eksploracji wielu testów. Porównanie metod: Poprawki na wielokrotne porównania.

Korekta Holma krok po kroku

Procedura Holma kontroluje FWER bez względu na to, które hipotezy zerowe są prawdziwe (Holm, 1979), i nigdy nie daje mniej istotnych wyników niż korekta Bonferroniego z progiem α/k dla każdego testu:

  1. Uporządkuj wartości p rosnąco: p(1) ≤ … ≤ p(k).
  2. Porównuj p(i) z progiem α/(k − i + 1).
  3. Przy pierwszym przekroczeniu progu zatrzymaj się: ta i dalsze hipotezy zostają nieodrzucone.

Procedura Benjaminiego–Hochberga (BH) porównuje p(i) z progiem (i/k) × α i odrzuca hipotezy od pierwszej do największego i spełniającego ten warunek.

Przykład

Osiemdziesiąt osób przydzielono losowo do treningu uważności albo do grupy kontrolnej i porównano testem t Welcha na czterech wskaźnikach (dane symulowane):

Decyzje procedur Holma i Benjaminiego–Hochberga dla czterech wartości p
WskaźnikpPróg HolmaHolmPróg BHBH
Stres< .001.0125istotny.0125istotny
Ruminacje.015.0167istotny.0250istotny
Lęk.030.0250stop.0375istotny
Jakość snu.042.0500nieistotny.0500istotny

Bez korekty istotne są cztery wyniki, po korekcie Bonferroniego – jeden, Holma – dwa, a BH – cztery. Lęk przekroczył próg Holma (.030 > .025), więc procedura się zatrzymała.

Jak zapisać w pracy

Aby kontrolować rodzinny błąd I rodzaju w czterech porównaniach, wartości p skorygowano metodą Holma: grupa po treningu uważności miała niższy poziom stresu (p < .001) i ruminacji (p = .045) niż grupa kontrolna, a różnice w lęku i jakości snu po korekcie nie były istotne (w obu przypadkach p = .059).

Na co uważać

  • Rodzina testów ustalona po wynikach. Rodzinę i metodę korekty określ przed analizą; szukanie korekty, która „da” istotność, to p-hacking.
  • Mylenie FDR z FWER. BH dopuszcza pewien odsetek fałszywych odkryć – przy kilku hipotezach konfirmacyjnych wybierz Holma.
  • „Po korekcie efektu nie ma”. Korekta obniża moc testu, więc nieistotny wynik nie dowodzi braku różnicy.

Pary grup po ANOVA porównuj testem Tukeya, a po teście Kruskala–Wallisa – testem Dunna.

Przykład reprodukowalny

Korekty Holma i BH w R

Kod symuluje cztery porównania z przykładu i koryguje wartości p funkcją p.adjust(). Liczby w tabeli i w opisie pochodzą z tego wyniku.

Bonferroni, Holm i Benjamini–Hochberg dla czterech testów

Dane wejściowe: cztery wskaźniki w grupie treningu i w grupie kontrolnej, po 40 osób (dane symulowane, wyniki standaryzowane, set.seed(13080)).

Co odczytać: wartości p przed korektą i po trzech korektach, progi Holma i BH oraz FWER bez korekty.

R
# Cztery testy t Welcha: trening uważności a grupa kontrolna (dane symulowane, wyniki standaryzowane)
set.seed(13080)
grupa <- rep(c("kontrola", "trening"), each = 40)
d <- c(stres = 0.6, ruminacje = 0.55, lek = 0.5, sen = 0.45)      # efekty w populacji (d Cohena)
p <- sapply(d, function(ef) t.test(rnorm(80, mean = ef * (grupa == "kontrola")) ~ grupa)$p.value)
round(cbind(p, bonferroni = p.adjust(p, "bonferroni"), holm = p.adjust(p, "holm"),
            BH = p.adjust(p, "BH")), 3)
round(0.05 / (4:1), 4)            # progi Holma dla kolejnych p (od najmniejszego)
round(0.05 * (1:4) / 4, 4)        # progi Benjaminiego–Hochberga
1 - (1 - 0.05)^c(4, 8)            # FWER bez korekty dla 4 i 8 niezależnych testów
Wynik w R
              p bonferroni  holm    BH
stres     0.000      0.000 0.000 0.000
ruminacje 0.015      0.060 0.045 0.030
lek       0.030      0.119 0.059 0.040
sen       0.042      0.166 0.059 0.042
[1] 0.0125 0.0167 0.0250 0.0500
[1] 0.0125 0.0250 0.0375 0.0500
[1] 0.1854938 0.3365796

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (funkcje t.test() i p.adjust() z pakietu stats). W pracy podaj wersję R, której faktycznie użyto (sessionInfo()).

  1. R: R Core Team. (2026). R: A language and environment for statistical computing (Version 4.5.3) [Computer software]. R Foundation for Statistical Computing. https://www.R-project.org/

Najczęstsze pytania

Czym różni się FWER od FDR?

FWER to prawdopodobieństwo co najmniej jednego fałszywego alarmu w całej rodzinie testów, a FDR – oczekiwany odsetek fałszywych odkryć wśród wyników istotnych. Kontrola FWER (np. Holm) jest surowsza, kontrola FDR daje większą moc.

Jak policzyć korektę Holma krok po kroku?

Uporządkuj wartości p rosnąco i porównuj kolejno z α/k, α/(k − 1) aż do α. Odrzucaj hipotezy do pierwszego przekroczenia progu, potem przerwij. W R: p.adjust(p, method = "holm").

Ile wynosi ryzyko fałszywego alarmu przy kilku testach?

Przy k niezależnych testach (α = .05, prawdziwe hipotezy zerowe) wynosi 1 − 0.95k: .185 przy czterech testach i .337 przy ośmiu. Testy skorelowane dają mniejsze ryzyko, ale nadal wyższe niż α.

Powiązane hasła

Poradniki, w których użyjesz tego pojęcia

Potrzebujesz wsparcia w analizie danych?

Wybierz ofertę dopasowaną do pracy dyplomowej albo profesjonalnego projektu naukowego.

Wyceń analizęOferta dla studentów

Bibliografia i dalsza literatura naukowa (APA 7)

  1. 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
  2. Holm, S. (1979). A simple sequentially rejective multiple test procedure. Scandinavian Journal of Statistics, 6(2), 65–70. https://www.jstor.org/stable/4615733

Cytowania BibTeX

@article{benjamini1995controlling, author={Benjamini, Yoav and Hochberg, Yosef}, title={{Controlling the false discovery rate: A practical and powerful approach to multiple testing}}, journal={Journal of the Royal Statistical Society: Series B (Methodological)}, year={1995}, volume={57}, number={1}, pages={289--300}, doi={10.1111/j.2517-6161.1995.tb02031.x}}
@article{holm1979simple, author={Holm, Sture}, title={{A simple sequentially rejective multiple test procedure}}, journal={Scandinavian Journal of Statistics}, year={1979}, volume={6}, number={2}, pages={65--70}, url={https://www.jstor.org/stable/4615733}}
R