Przejdź do głównej treści

Test U Manna-Whitneya: nieparametryczna alternatywa dla testu t

Test U Manna-Whitneya to nieparametryczny test oparty na rangach do porównywania dwóch niezależnych grup, gdy nie jest spełnione założenie normalności wymagane przez test t.
Zaktualizowano 4 maj 2026  · 10 min Czytać

Czy zdarzyło się kiedyś przeprowadzić test t, dostać dziwną wartość p, a potem odkryć, że Pana/Pani dane w ogóle nie były zbliżone do rozkładu normalnego?

To przytrafiło się każdemu w pewnym momencie. Problem z testem t polega na tym, że zakłada on normalność rozkładu danych. Gdy tak nie jest, wyniki mogą wprowadzać w błąd. Skośne dane i małe próby naruszają to założenie. A dane z rzeczywistości rzadko zachowują się tak, jak opisują podręczniki.

Test U Manna-Whitneya rozwiązuje ten problem. To nieparametryczna alternatywa dla testu t, która porównuje dwie grupy na podstawie rang, a nie średnich, więc nie przejmuje się kształtem rozkładu.

W tym artykule omówię, czym jest test U Manna-Whitneya, kiedy go stosować, jak działa matematycznie oraz jak go uruchomić i interpretować w Pythonie i R.

Ale czym właściwie jest test t? Jeśli ma Pan/Pani takie pytanie, proszę przeczytać nasz wpis Wprowadzenie do testów t w Pythonie — znajdzie tam Pan/Pani wszystkie odpowiedzi.

Czym jest test U Manna-Whitneya?

Test U Manna-Whitneya to nieparametryczny test statystyczny służący do porównywania dwóch niezależnych grup.

W odróżnieniu od testu t nie zakłada, że dane mają rozkład normalny. Porównuje rozkłady dwóch grup, zamieniając wartości na rangi i analizując je. Dzięki temu dobrze sprawdza się przy danych skośnych, z obserwacjami odstającymi lub po prostu wtedy, gdy nie da się spełnić założenia normalności.

Spotka się go Pan/Pani także pod nazwą test sumy rang Wilcoxona. W praktyce to synonimy.

Kiedy stosować test U Manna-Whitneya

Test U Manna-Whitneya wymaga spełnienia konkretnych warunków. Należy go używać tylko wtedy, gdy wszystkie poniższe są spełnione:

  • Dwie niezależne grupy: Próby nie nakładają się, a wartości w jednej grupie nie wpływają na wartości w drugiej
  • Dane porządkowe lub ciągłe: Np. wyniki testów, czasy reakcji lub dowolne wartości pomiarowe
  • Brak normalności rozkładu: Dane są skośne, mają „grube ogony” albo przy małej próbie nie można potwierdzić normalności
  • Małe liczebności prób: Gdy danych jest zbyt mało, by polegać na centralnym twierdzeniu granicznym

Przejdźmy przez przykład.

Załóżmy, że są dwie klasy nauczane różnymi metodami i chcemy sprawdzić, która osiągnęła lepsze wyniki egzaminu. Wykresy pokazują brak normalności — w jednej klasie kilka obserwacji odstających „ciągnie” rozkład w prawo. Test t porównuje średnie grup, więc te obserwacje zawyżają średnią i sprawiają, że klasa wypada lepiej, niż jest w rzeczywistości.

Ta zniekształcona średnia trafia do obliczeń testu t, a zwrócona wartość p nie odzwierciedla różnicy między grupami. Test U Manna-Whitneya nie ma tego problemu, bo pracuje na rangach, a nie surowych wynikach. Pojedyncza obserwacja odstająca może co najwyżej otrzymać najwyższą rangę, więc nie zniekształci wyniku tak jak średnia.

To także dobry wybór przy danych porządkowych, np. odpowiedziach ankietowych w skali 1–5. Takie wartości nie są naprawdę ciągłe, więc liczenie średniej niewiele mówi.

Wzór testu U Manna-Whitneya

Test wyznacza dwie statystyki U — po jednej dla każdej grupy. Oto wzór:

Wzór testu U Manna-Whitneya

Wzór testu U Manna-Whitneya

Gdzie:

  • n1 i n2 to liczebności prób w grupie 1 i 2

  • R1 i R2 to sumy rang dla każdej grupy — suma wszystkich rang przypisanych obserwacjom danej grupy

Sumę rang oblicza się, łącząc wartości z obu grup, sortując je rosnąco i przypisując każdej wartość rangi. Najmniejsza wartość dostaje rangę 1, kolejna 2 itd. Następnie oddzielnie sumuje się rangi należące do każdej grupy.

Statystyką testową jest mniejsza z wartości U1 i U2. Porównuje się ją z wartością krytyczną lub używa do wyznaczenia wartości p.

Dobra wiadomość jest taka, że nie trzeba liczyć tego ręcznie. Zarówno Python, jak i R zrobią to za Pana/Panią — za chwilę pokażę jak.

Założenia testu U Manna-Whitneya

Test U Manna-Whitneya jest bardziej elastyczny niż test t, ale nadal wymaga spełnienia trzech założeń:

  • Niezależne próby: Dwie grupy nie wpływają na siebie. Obserwacje w jednej grupie nie są powiązane z obserwacjami w drugiej
  • Dane porządkowe lub ciągłe: Dane muszą mieć naturalny porządek — można stwierdzić, że jedna wartość jest wyższa lub niższa od innej
  • Podobne kształty rozkładów: Jeśli chce Pan/Pani interpretować wyniki jako porównanie median, obie grupy powinny mieć rozkłady o zbliżonym kształcie. Jeśli kształty się różnią, test nadal działa, ale porównuje średnie rangi, a nie mediany

Trzecie założenie budzi najwięcej wątpliwości.

Test U Manna-Whitneya często opisuje się jako test median, ale to prawda tylko wtedy, gdy rozkłady mają podobny kształt. Jeśli nie, wynik mówi ogólniej — czy wartości w jednej grupie mają tendencję do bycia wyższymi niż w drugiej.

Test U Manna-Whitneya w Pythonie

Moduł Pythona scipy.stats zawiera funkcję do testu U Manna-Whitneya. Oto prosty przykład z wynikami egzaminów dwóch klas.

from scipy.stats import mannwhitneyu

class_a = [72, 85, 90, 65, 78, 88, 95, 70, 83, 76]
class_b = [60, 55, 74, 68, 80, 58, 63, 71, 66, 59]

stat, p_value = mannwhitneyu(class_a, class_b, alternative="two-sided")

print(f"U statistic: {stat}")
print(f"P-value: {p_value:.4f}")

Test U Manna-Whitneya w Pythonie

Test U Manna-Whitneya w Pythonie

Argument alternative="two-sided" wskazuje, że badamy różnice w obie strony. Z góry nie zakłada się, że jedna grupa uzyskuje wyższe wyniki. Przy hipotezie kierunkowej użyłoby się "less" lub "greater".

Wartość p wynosi tu 0,0046, co jest poniżej standardowego progu 0,05. Oznacza to, że można odrzucić hipotezę zerową — istnieje statystycznie istotna różnica między rozkładami wyników obu klas.

Sama statystyka U niewiele mówi bez kontekstu. Do decyzji o istotności proszę skupić się na wartości p, a kierunek różnicy ocenić na podstawie surowych danych lub median.

Test U Manna-Whitneya w R

R uruchamia test U Manna-Whitneya za pomocą funkcji wilcox.test(). Użyję tego samego przykładu z wynikami egzaminów.

class_a <- c(72, 85, 90, 65, 78, 88, 95, 70, 83, 76)
class_b <- c(60, 55, 74, 68, 80, 58, 63, 71, 66, 59)

wilcox.test(class_a, class_b, alternative = "two.sided")

Test U Manna-Whitneya w R

Test U Manna-Whitneya w R

Statystyka W jest odpowiednikiem statystyki U — R po prostu inaczej ją oznacza. Interpretacja jest taka sama jak w Pythonie: wartość p równa 0,0029 jest poniżej 0,05, więc istnieje statystycznie istotna różnica między grupami.

Może pojawić się ostrzeżenie o remisach (ties) w danych.

Dzieje się tak, gdy dwie lub więcej wartości są identyczne w obu grupach, co wpływa na sposób przypisywania rang. R radzi sobie z tym automatycznie, ale jeśli remisów jest dużo, warto sprawdzić, czy dane spełniają założenia testu.

Jak interpretować wyniki testu U Manna-Whitneya

Hipoteza zerowa testu U Manna-Whitneya mówi, że obie grupy pochodzą z tego samego rozkładu — innymi słowy, że nie ma między nimi różnicy. Celem jest znalezienie dowodów przeciwko niej.

Służy do tego wartość p:

  • p < 0,05: Odrzucamy hipotezę zerową. Rozkłady dwóch grup różnią się, a różnica jest statystycznie istotna
  • p ≥ 0,05: Nie ma wystarczających dowodów, by odrzucić hipotezę zerową. To nie znaczy, że grupy są identyczne — jedynie, że dane nie pokazują wyraźnej różnicy

Proszę pamiętać, że test U Manna-Whitneya porównuje rozkłady. Istotny wynik mówi, że wartości w jednej grupie mają tendencję do uzyskiwania wyższych rang niż w drugiej — nie że średnia jest wyższa. Aby opisać kierunek różnicy, należy spojrzeć na mediany każdej grupy, nie na średnie.

Test U Manna-Whitneya a test t

Oba testy rozwiązują ten sam problem (porównanie dwóch grup), ale robią to inaczej, a zły wybór wpłynie na wyniki.

Test t

Test t porównuje średnie dwóch grup. Opiera się na założeniu normalności rozkładu i gdy jest ono spełnione, jest dobrym narzędziem.

Problemem jest to założenie. Jeśli dane są skośne albo pochodzą z małej próby, gdzie trudno potwierdzić normalność, wyniki testu t mogą być niewiarygodne. Średnia jest podatna na wartości skrajne, co widać w wartości p.

Test t stosujemy, gdy:

  • Dane mają rozkład normalny
  • Próba jest wystarczająco duża
  • Pracujemy na danych ciągłych bez silnej skośności i obserwacji odstających

Test U Manna-Whitneya

Test U Manna-Whitneya porównuje rozkłady zamiast średnich. Uszeregowywuje wszystkie wartości z obu grup i sprawdza, czy jedna grupa konsekwentnie uzyskuje wyższe rangi. Ponieważ pracuje na rangach, obserwacje odstające i skośność nie zniekształcają wyniku w ten sam sposób.

Gdy dane są rzeczywiście normalne, test t lepiej wykrywa różnice. Test U Manna-Whitneya jest bardziej elastyczny, ale kosztem czułości.

Test U Manna-Whitneya stosujemy, gdy:

  • Dane nie mają rozkładu normalnego
  • Pracujemy na danych porządkowych
  • Próba jest mała i nie można potwierdzić normalności
  • Występują obserwacje odstające, których nie można usunąć

Oto szybkie porównanie obu testów:

Test t w porównaniu z testem U Manna-Whitneya

Test t w porównaniu z testem U Manna-Whitneya

W razie wątpliwości proszę najpierw sprawdzić rozkład. Jeśli jest w przybliżeniu normalny — test t. Jeśli nie — bezpieczniejszy będzie test U Manna-Whitneya.

Częste błędy przy teście U Manna-Whitneya

Większość błędów wynika z niezrozumienia, co test właściwie robi. Oto te najczęstsze.

Zakładanie, że porównuje średnie

To najczęstszy błąd. Test U Manna-Whitneya porównuje rozkłady, a nie średnie. Istotny wynik mówi, że wartości w jednej grupie mają tendencję do wyższych rang — nie że średnia jest wyższa. Jeśli trzeba opisać różnicę, należy raportować mediany, nie średnie.

Ignorowanie różnic w kształcie rozkładów

Jeśli dwie grupy mają różne kształty rozkładów — jedna jest skośna w prawo, druga symetryczna — nie można interpretować wyniku jako porównania median. Test się wykona, ale wynik pokaże różnicę w całych rozkładach, a nie przesunięcie środka. Proszę sprawdzić rozkłady przed wyciąganiem wniosków o medianach.

Błędna interpretacja wartości p

Wartość p poniżej 0,05 oznacza, że różnica jest statystycznie istotna. Nie mówi jednak, jak duża jest ta różnica ani czy ma znaczenie praktyczne. Bardzo duża próba może dać istotną wartość p nawet przy minimalnej różnicy. Jeśli w analizie ważny jest rozmiar efektu, proszę obliczyć go osobno.

Stosowanie do danych sparowanych

Test U Manna-Whitneya służy do dwóch niezależnych grup. Jeśli dane są sparowane — te same osoby mierzone dwukrotnie lub pary dopasowane — należy użyć zamiast tego testu rang podpisanych Wilcoxona.

Kiedy nie stosować testu U Manna-Whitneya

Test U Manna-Whitneya nie zawsze jest właściwym narzędziem. Oto kiedy wybrać coś innego.

Dane są sparowane

Jeśli te same osoby występują w obu grupach — pomiary przed i po lub pary dopasowane — próby nie są niezależne. Test U Manna-Whitneya zakłada niezależność, więc jego zastosowanie ignoruje powiązanie obserwacji i daje niewiarygodne wyniki. Zamiast tego należy użyć testu rang podpisanych Wilcoxona.

Więcej niż dwie grupy

Test U Manna-Whitneya porównuje tylko dwie grupy naraz. Przy trzech lub więcej grupach należy użyć testu Kruskala-Wallisa — nieparametrycznego odpowiednika jednoczynnikowej ANOVA, który obsługuje wiele grup.

Duża próba i dane normalne

Główną zaletą testu U Manna-Whitneya jest brak założenia normalności. Jeśli dane mają rozkład normalny i próba jest na tyle duża, by to potwierdzić, lepszym wyborem będzie test t. Ma on w takiej sytuacji większą moc, czyli większą szansę wykrycia rzeczywistej różnicy, gdy ona istnieje.

Wnioski

Test U Manna-Whitneya to świetne rozwiązanie, gdy dane nie mają rozkładu normalnego, więc test t nie pasuje.

Działa na rangach zamiast surowych wartościach, dzięki czemu omija założenia, które czynią testy parametryczne zawodnymi przy danych skośnych lub z małych prób. To dobry wybór do analiz rzeczywistych, gdzie dane rzadko zachowują się tak, jak byśmy chcieli.

Szersza lekcja dotyczy doboru testu. Nie ma jednego narzędzia dobrego dla każdego zbioru danych. Zawsze należy najpierw sprawdzić dane — ich rozkład, strukturę i liczebność próby — i pozwolić, by te cechy kierowały wyborem. Właściwy test to ten, który pasuje do danych.

Jeśli jest Pan/Pani nowy/a w statystyce lub chce naprawdę zgłębić temat, nasza ścieżka Statistician in R pomoże przygotować się do pracy w zaledwie 52 godziny materiałów.

FAQs

Do czego służy test U Manna-Whitneya?

Test U Manna-Whitneya służy do porównywania dwóch niezależnych grup, gdy nie można założyć normalności rozkładu. Uszeregowywuje wszystkie wartości z obu grup i sprawdza, czy jedna grupa konsekwentnie uzyskuje wyższe rangi. Działa zarówno na danych porządkowych, jak i ciągłych.

Czym test U Manna-Whitneya różni się od testu t?

Test t porównuje średnie dwóch grup i zakłada normalność rozkładu. Test U Manna-Whitneya porównuje rozkłady, wykorzystując rangi, więc nie wymaga tego założenia. Gdy dane są skośne lub próba jest mała, bezpieczniejszym wyborem jest test U Manna-Whitneya.

Kiedy powinienem/powinnam użyć testu U Manna-Whitneya?

Proszę go stosować, gdy mamy dwie niezależne grupy, dane porządkowe lub ciągłe i nie można potwierdzić normalności. To także dobre rozwiązanie przy małych próbach i obecności obserwacji odstających. Jeśli dane mają rozkład normalny i próba jest duża, lepsze wyniki zwykle da test t.

Co mówi wartość p w teście U Manna-Whitneya?

Wartość p poniżej 0,05 oznacza statystycznie istotną różnicę między rozkładami dwóch grup. Nie mówi ona, jak duża jest różnica ani czy ma znaczenie praktyczne. Aby to ocenić, należy osobno obliczyć rozmiar efektu i spojrzeć na mediany każdej grupy.

Czy mogę użyć testu U Manna-Whitneya do danych sparowanych?

Nie. Test U Manna-Whitneya zakłada niezależność grup, czyli że wartości w jednej grupie nie wpływają na wartości w drugiej. Jeśli dane są sparowane — np. pomiary przed i po u tych samych osób — należy użyć testu rang podpisanych Wilcoxona. Zastosowanie testu U Manna-Whitneya do danych sparowanych ignoruje powiązania między obserwacjami i daje niewiarygodne wyniki.

Tematy

Ucz się z DataCamp

Track

Analityk danych w R

36 godz.
Od eksploracyjnej analizy danych z dplyr po wizualizację danych z ggplot2 — zdobądź umiejętności R potrzebne do rozwoju kariery i osiągnięcia sukcesu jako analityk danych!
Zobacz szczegółyRight Arrow
Rozpocznij kurs
Zobacz więcejRight Arrow