Słownik metodologiczny · Testy statystyczne

Test Dunna – porównania post hoc po teście Kruskala–Wallisa

Test Dunna wskazuje, które grupy różnią się po istotnym teście Kruskala–Wallisa. Pokazujemy wzór z poprawką na rangi wiązane, przykład w R z korektą Holma i Bonferroniego oraz gotowy opis wyniku.

Strona główna / Słownik / Test Dunna
W skrócie: Test Dunna porównuje pary grup po istotnym teście Kruskala–Wallisa na podstawie średnich rang ze wspólnego rangowania wszystkich obserwacji. Wartości p koryguj na liczbę porównań – najlepiej metodą Holma – i podaj nazwę korekty w opisie.

Co to jest test Dunna?

Test Dunna (ang. Dunn’s test) to nieparametryczny test post hoc wykonywany po istotnym teście Kruskala–Wallisa. Porównuje pary grup pod względem średnich rang, które pochodzą ze wspólnego rangowania wszystkich obserwacji. Dunn (1964) zaproponował go jako wygodną alternatywę dla osobnego rangowania każdej pary, z przybliżeniem normalnym i omówieniem rang wiązanych. Stosuje się go do danych porządkowych i silnie skośnych, np. ocen bólu, pojedynczych pozycji skali Likerta albo wyników testu wiedzy.

Jak liczy się test Dunna?

z = (R̄i − R̄j) / √{[N(N + 1)/12 − Σ(t³ − t)/(12(N − 1))] × (1/ni + 1/nj)}

R̄ to średnia ranga grupy, n – jej liczebność, N – liczba wszystkich obserwacji, a t – liczba osób z tym samym wynikiem w każdej grupie remisów (poprawka na rangi wiązane). Wartość p z rozkładu normalnego koryguje się na liczbę porównań, najczęściej metodą Holma albo Bonferroniego (zob. problem wielokrotnych porównań).

Przykład

Sześćdziesiąt sześć osób losowo przydzielono do trzech warunków zmiany opatrunku: standardowej opieki, słuchania muzyki i gogli VR (po 22 osoby). Ból oceniano w skali NRS 0–10 (dane symulowane; mediany 6.0, 4.5 i 3.0). Test Kruskala–Wallisa był istotny, H(2) = 13.31, p = .001, η²H = .18. Test Dunna z korektą Holma wykazał mniejszy ból w grupie VR (z = 3.60, p < .001) i w grupie muzyki (z = 2.32, p = .041) niż przy standardowej opiece; VR i muzyka nie różniły się (z = 1.28, p = .200). Przy korekcie Bonferroniego różnica między muzyką a standardową opieką byłaby nieistotna (p = .062).

Jak zapisać w pracy

Natężenie bólu różniło się między warunkami, H(2) = 13.31, p = .001, η²H = .18; porównania post hoc testem Dunna z korektą Holma wykazały, że osoby korzystające z gogli VR (Mdn = 3.0) i słuchające muzyki (Mdn = 4.5) zgłaszały mniejszy ból niż osoby otrzymujące standardową opiekę (Mdn = 6.0), odpowiednio z = 3.60, p < .001 i z = 2.32, p = .041, natomiast grupy VR i muzyki nie różniły się istotnie, z = 1.28, p = .200.

Na co uważać

  • Seria testów Manna–Whitneya zamiast testu Dunna. Każda para byłaby rangowana osobno, inaczej niż w teście ogólnym, a bez korekty rośnie ryzyko fałszywego alarmu (zob. test Manna–Whitneya).
  • Korekta bez nazwy albo wybrana po fakcie. Jak w przykładzie, wybór między Holmem a Bonferronim może zmienić wniosek. Ustal metodę przed analizą i podaj ją w opisie; procedura Holma (Holm, 1979) kontroluje ten sam rodzinny błąd I rodzaju, a ma większą moc. W SPSS sprawdź w przypisie do tabeli porównań parami, jaką korektę zastosował program.
  • Pomiary powtarzane. Test Dunna dotyczy grup niezależnych; gdy te same osoby badasz kilka razy, użyj testu Friedmana.

Zastosowanie w pracach dyplomowych pokazujemy w poradnikach o analizie ankiety wiedzy i o statystyce w pracy z pedagogiki.

Przykład reprodukowalny

Test Dunna w R

Kod odtwarza przykład: mediany, test Kruskala–Wallisa z η²H i test Dunna z korektą Holma, a na końcu – dla porównania – wartości p po korekcie Bonferroniego. Liczby w tekście pochodzą z tego wyniku.

dunn_test() z pakietu rstatix

Dane wejściowe: ból w skali NRS 0–10 w trzech warunkach, po 22 osoby (dane symulowane, set.seed(48)).

Co odczytać: H (statistic) i p testu Kruskala–Wallisa, η²H (effsize), a w teście Dunna – z (statistic), p bez korekty (p) i po korekcie (p.adj).

R
library(rstatix)
set.seed(48)   # ból (NRS 0–10) przy zmianie opatrunku w trzech warunkach, po 22 osoby (dane symulowane)
grupa <- factor(rep(c("standard", "muzyka", "VR"), each = 22), levels = c("VR", "muzyka", "standard"))
bol <- pmin(pmax(round(rnorm(66, mean = c(3.6, 4.4, 5.5)[grupa], sd = 2)), 0), 10)
dane <- data.frame(grupa, bol)
tapply(dane$bol, dane$grupa, median)
as.data.frame(kruskal_test(dane, bol ~ grupa))
as.data.frame(kruskal_effsize(dane, bol ~ grupa))                     # eta kwadrat H
as.data.frame(dunn_test(dane, bol ~ grupa, p.adjust.method = "holm"))
dunn_test(dane, bol ~ grupa, p.adjust.method = "bonferroni")$p.adj    # dla porównania: Bonferroni
Wynik w R
      VR   muzyka standard 
     3.0      4.5      6.0 
  .y.  n statistic df       p         method
1 bol 66  13.30543  2 0.00129 Kruskal-Wallis
  .y.  n   effsize  method magnitude
1 bol 66 0.1794513 eta2[H]     large
  .y. group1   group2 n1 n2 statistic           p       p.adj p.adj.signif
1 bol     VR   muzyka 22 22  1.281437 0.200040262 0.200040262           ns
2 bol     VR standard 22 22  3.598338 0.000320257 0.000960771          ***
3 bol muzyka standard 22 22  2.316901 0.020509107 0.041018214            *
[1] 0.600120785 0.000960771 0.061527322

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 z pakietem rstatix. W pracy podaj wersje faktycznie użytych pakietów (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/
  2. rstatix (wersja 0.7.3): Kassambara, A. (2025). rstatix: Pipe-friendly framework for basic statistical tests [R package]. https://doi.org/10.32614/CRAN.package.rstatix

Najczęstsze pytania

Czym test Dunna różni się od serii testów Manna–Whitneya?

Test Dunna korzysta z rang nadanych wszystkim obserwacjom naraz, tak jak test Kruskala–Wallisa, a testy Manna–Whitneya rangują każdą parę osobno. W teście Dunna wartości p koryguje się na liczbę porównań.

Którą korektę wybrać w teście Dunna: Holma czy Bonferroniego?

Zwykle Holma: kontroluje ten sam błąd co Bonferroni, ale ma większą moc. W przykładzie różnica muzyka – standard po korekcie Holma była istotna (p = .041), a po Bonferronim nie (p = .062).

Jak zrobić test Dunna w R?

W pakiecie rstatix: dunn_test(dane, wynik ~ grupa, p.adjust.method = "holm"). Kolumna statistic zawiera z, p – wartość bez korekty, a p.adj – wartość po korekcie.

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. Dunn, O. J. (1964). Multiple comparisons using rank sums. Technometrics, 6(3), 241–252. https://doi.org/10.1080/00401706.1964.10490181
  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{dunn1964multiple, author={Dunn, Olive Jean}, title={{Multiple comparisons using rank sums}}, journal={Technometrics}, year={1964}, volume={6}, number={3}, pages={241--252}, doi={10.1080/00401706.1964.10490181}}
@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