Hoppa till huvudinnehållet

Mann-Whitney U-test: Ickeparametriskt alternativ till t-testet

Mann-Whitney U-testet är ett rangbaserat ickeparametriskt test för att jämföra två oberoende grupper när data inte uppfyller normalitetsantagandet som krävs av t-testet.
Uppdaterad 4 maj 2026  · 10 min läsa

Har du någon gång kört ett t-test, fått ett märkligt p-värde och senare upptäckt att dina data inte ens var i närheten av normalfördelade?

Det här har hänt alla någon gång. Problemet med t-testet är att det antar att dina data följer en normalfördelning. När de inte gör det kan resultaten bli missvisande. Snedfördelade data och små stickprov bryter alla mot normalitetsantagandet. Och data i verkligheten beter sig sällan som läroböckerna säger att de ska.

Mann-Whitney U-testet finns här för att lösa problemet. Det är ett ickeparametriskt alternativ till t-testet som jämför två grupper baserat på rangordning i stället för medelvärden, så det bryr sig inte om fördelningens form.

I den här artikeln går jag igenom vad Mann-Whitney U-testet är, när du ska använda det, hur matematiken fungerar samt hur du kör och tolkar det i både Python och R.

Men vad är egentligen ett t-test? Om du undrar det, läs vårt Introduction to Python T-Tests – det besvarar alla dina frågor.

Vad är Mann-Whitney U-testet?

Mann-Whitney U-testet är ett ickeparametriskt statistiskt test som används för att jämföra två oberoende grupper.

Till skillnad från t-testet antar det inte att dina data följer en normalfördelning. Det jämför fördelningarna för två grupper genom att omvandla råvärden till rangordningar och analysera dessa. Det gör det till ett bra val när dina data är snedfördelade, innehåller extrema värden (outliers) eller på något annat sätt inte uppfyller normalitetskravet.

Du kommer också att se det kallas för Wilcoxon rank-sum-test. Dessa är i praktiken synonyma.

När ska du använda Mann-Whitney U-testet

Mann-Whitney U-testet kräver en specifik uppsättning villkor. Du bör bara använda det när alla dessa gäller:

  • Två oberoende grupper: Stickproven överlappar inte och den ena gruppens värden påverkar inte den andras
  • Ordinala eller kontinuerliga data: Tänk provresultat, svarstider eller andra uppmätta värden
  • Icke-normal fördelning: Dina data är snedfördelade, har tunga svansar eller så kan du inte bekräfta normalitet med ett litet stickprov
  • Små stickprov: När du inte har tillräckligt med data för att förlita dig på centrala gränsvärdessatsen

Låt oss gå igenom ett exempel.

Anta att du har två klasser som undervisats med olika metoder och du vill veta vilken som gav bättre provresultat. Du plottar poängen och ser att de inte är normalfördelade – en klass har några utstickare som drar fördelningen åt höger. T-testet jämför gruppmedelvärden, så dessa utstickare drar upp medelvärdet och får en klass att se bättre ut än den faktiskt är.

Det sneda medelvärdet går in i t-testets beräkning och p-värdet du får tillbaka speglar inte skillnaden mellan grupperna. Mann-Whitney U-testet har inte det problemet eftersom det arbetar med rangordningar i stället för råpoäng. En enskild utstickare kan bara vara det högst rankade värdet och kan därför inte förvränga resultatet som ett medelvärde kan.

Det är också ett givet val när du arbetar med ordinaldata, som enkätsvar på en skala 1–5. Dessa värden är inte verkligt kontinuerliga, så att räkna ut ett medelvärde är inte särskilt meningsfullt.

Formeln för Mann-Whitney U-testet

Testet ger två U-statistik, en för varje grupp. Här är formeln:

Formel för Mann-Whitney U-test

Formel för Mann-Whitney U-test

Där:

  • n1 och n2 är stickprovsstorlekarna för grupp 1 och grupp 2

  • R1 och R2 är rangsummorna för varje grupp – summan av alla rangtal som tilldelats respektive grupps observationer

Rangsumma beräknas genom att kombinera alla värden från båda grupperna, sortera dem från lägst till högst och tilldela ett rangtal till varje värde. Det minsta värdet får rang 1, nästa får rang 2, och så vidare. Sedan summerar du separat rangtalen som tillhör respektive grupp.

Teststatistikan är den mindre av U1 och U2. Du jämför den sedan med ett kritiskt värde eller använder den för att beräkna ett p-värde.

Det fina är att du inte behöver räkna detta för hand. Både Python och R gör det åt dig, vilket jag snart visar.

Antaganden för Mann-Whitney U-testet

Mann-Whitney U-testet är mer flexibelt än t-testet, men det har fortfarande tre antaganden du behöver respektera:

  • Oberoende stickprov: De två grupperna påverkar inte varandra. Observationer i den ena gruppen har ingen relation till observationer i den andra
  • Ordinala eller kontinuerliga data: Dina data måste ha en naturlig ordning – du kan säga att ett värde är högre eller lägre än ett annat
  • Liknande fördelningsformer: Om du vill tolka resultaten som en jämförelse av medianer bör båda grupperna ha fördelningar med ungefär samma form. Om formerna skiljer sig fungerar testet ändå, men du jämför medelranger snarare än medianer

Det tredje antagandet skapar oftast mest förvirring.

Mann-Whitney U-testet beskrivs ofta som ett test för medianer, men det stämmer bara när de två fördelningarna har liknande form. Om de inte har det säger resultatet något mer allmänt – om värdena i en grupp tenderar att vara högre än i den andra.

Mann-Whitney U-test i Python

Pythons scipy.stats-modul har en funktion för Mann-Whitney U-testet. Här är ett enkelt exempel med provpoäng från två klasser.

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}")

Mann-Whitney U-test i Python

Mann-Whitney U-test i Python

Argumentet alternative="two-sided" talar om för testet att du kontrollerar om de två grupperna skiljer sig i någon riktning. Du antar inte på förhand att en grupp har högre poäng än den andra. Om du hade en riktad hypotes skulle du i stället använda "less" eller "greater".

P-värdet här är 0,0046, vilket ligger under den vedertagna gränsen 0,05. Det innebär att du kan förkasta nollhypotesen, eftersom det finns en statistiskt signifikant skillnad mellan de två klassernas poängfördelningar.

U-statistikan i sig säger inte mycket utan sammanhang. Du kan fokusera på p-värdet för att avgöra om skillnaden är statistiskt signifikant och titta på rådata eller medianer för att förstå skillnadens riktning.

Mann-Whitney U-test i R

R kör Mann-Whitney U-testet via funktionen wilcox.test(). Jag använder samma exempel med provpoäng som tidigare.

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")

Mann-Whitney U-test i R

Mann-Whitney U-test i R

Statistikan W är densamma som U-statistikan – R märker den bara annorlunda. Tolkningen är densamma som i Python: ett p-värde på 0,0029 är under 0,05, så det finns en statistiskt signifikant skillnad mellan de två grupperna.

Du kan också se en varning om lika värden (ties) i dina data.

Det händer när två eller fler värden är identiska över båda grupperna, vilket påverkar hur rangtal tilldelas. R hanterar detta åt dig, men om du har många lika värden är det värt att kontrollera om dina data uppfyller testets antaganden.

Hur du tolkar resultat från Mann-Whitney U-testet

Nollhypotesen i Mann-Whitney U-testet är att de två grupperna kommer från samma fördelning – med andra ord att det inte finns någon skillnad mellan dem. Din uppgift är att hitta bevis mot detta.

P-värdet är hur du gör det:

  • p < 0,05: Du förkastar nollhypotesen. De två grupperna är olika fördelade, och skillnaden är statistiskt signifikant
  • p >= 0,05: Du har inte tillräckligt med bevis för att förkasta nollhypotesen. Det betyder inte att grupperna är identiska, bara att datan inte visar någon tydlig skillnad

Kom bara ihåg att Mann-Whitney U-testet jämför fördelningar. Ett signifikant resultat talar om att värden i en grupp tenderar att rankas högre än i den andra – inte att medelvärdet är högre. Om du vill beskriva skillnadens riktning, titta på gruppmediansiffrorna, inte medelvärdena.

Mann-Whitney U-test vs t-test

Dessa två test löser samma problem (jämför två grupper) men gör det på olika sätt, och fel val påverkar dina resultat.

t-test

T-testet jämför medelvärdena för två grupper. Det bygger på antagandet att dina data följer en normalfördelning, och när det stämmer är det ett bra test.

Problemet är just det antagandet. Om dina data är snedfördelade eller kommer från ett litet stickprov där normalitet är svår att bekräfta kan t-testets resultat bli opålitliga. Medelvärdet dras av extrema värden, och p-värdet visar det.

Använd t-testet när:

  • Dina data är normalfördelade
  • Du har ett tillräckligt stort stickprov
  • Du arbetar med kontinuerliga data utan kraftig snedhet eller utstickare

Mann-Whitney U-test

Mann-Whitney U-testet jämför fördelningar snarare än medelvärden. Det rangordnar alla värden från båda grupperna tillsammans och undersöker om en grupp konsekvent rankas högre än den andra. Eftersom det arbetar med rangordningar förvränger utstickare och snedhet inte resultatet på samma sätt.

När dina data faktiskt är normalfördelade kommer t-testet att upptäcka skillnader mer pålitligt. Mann-Whitney U-testet är mer flexibelt, men du ger upp en del känslighet.

Använd Mann-Whitney U-testet när:

  • Dina data inte är normalfördelade
  • Du arbetar med ordinaldata
  • Du har ett litet stickprov och kan inte bekräfta normalitet
  • Utstickare finns och du kan inte ta bort dem

Här är en snabb jämförelse av båda:

t-test jämfört med Mann-Whitney U-test

t-test jämfört med Mann-Whitney U-test

Är du osäker, kontrollera din fördelning först. Om den är någorlunda normal, använd t-testet. Om inte, är Mann-Whitney U-testet det säkrare valet.

Vanliga misstag med Mann-Whitney U-testet

De flesta misstag med detta test handlar om att inte förstå vad det faktiskt gör. Här är de som oftast dyker upp.

Att anta att det jämför medelvärden

Detta är det vanligaste. Mann-Whitney U-testet jämför fördelningar, inte medelvärden. Ett signifikant resultat säger att värden i en grupp tenderar att rankas högre – inte att genomsnittet är högre. Om du behöver beskriva skillnaden, rapportera medianerna, inte medelvärdena.

Att ignorera skillnader i fördelningsform

Om de två grupperna har olika fördelningsformer – den ena är högersned, den andra symmetrisk – kan du inte tolka resultatet som en jämförelse av medianer. Testet körs ändå, men utfallet visar en skillnad i de övergripande fördelningarna, inte en förskjutning i centrum. Kontrollera dina fördelningar innan du drar slutsatser om medianer.

Felmarginal vid tolkning av p-värden

Ett p-värde under 0,05 betyder att skillnaden är statistiskt signifikant. Det talar inte om hur stor skillnaden är eller om den är praktiskt betydelsefull. Ett mycket stort stickprov kan ge ett signifikant p-värde även när den faktiska skillnaden mellan grupperna är liten. Om effektstorlek är viktig i din analys, beräkna den separat.

Att använda det för parade data

Mann-Whitney U-testet är för två oberoende grupper. Om dina data är parade – samma individer mätta två gånger, eller matchade par – behöver du i stället Wilcoxon teckenrangtest.

När du inte ska använda Mann-Whitney U-testet

Mann-Whitney U-testet är inte rätt verktyg i alla situationer. Här är när du bör välja något annat.

Dina data är parade

Om samma individer förekommer i båda grupperna – före- och eftermätningar, eller matchade par – är de två stickproven inte oberoende. Mann-Whitney U-testet antar att de är det, så att använda det här ignorerar relationen mellan observationer och ger opålitliga resultat. Använd i stället Wilcoxon teckenrangtest.

Du har fler än två grupper

Mann-Whitney U-testet jämför bara två grupper åt gången. Om du jämför tre eller fler grupper, använd Kruskal–Wallis-testet, som är det ickeparametriska alternativet till envägs-ANOVA och kan hantera flera grupper.

Du har ett stort stickprov med normala data

Mann-Whitney U-testets främsta fördel är att det inte antar normalitet. Om dina data är normalfördelade och ditt stickprov är tillräckligt stort för att bekräfta det, är t-testet det bättre valet. Det har större statistisk styrka i den situationen, vilket innebär att det oftare upptäcker en verklig skillnad när en sådan finns.

Slutsats

Mann-Whitney U-testet är en utmärkt lösning när dina data inte är normalfördelade och t-testet därför inte passar.

Det arbetar med rangordningar i stället för råvärden, så det undviker de antaganden som gör parametriska test opålitliga på snedfördelade data eller små stickprov. Det gör det till ett bra test för analys i verkligheten, där data sällan beter sig som du skulle önska.

Den större lärdomen här är val av test. Inget enskilt test fungerar för varje dataset. Du bör alltid kontrollera dina data först – dess fördelning, struktur och stickprovsstorlek – och låta dessa egenskaper styra ditt val. Det rätta är det som passar dina data.

Om du är ny inom statistik eller verkligen vill fördjupa dig i ämnet kommer vår Statistician in R-track att hjälpa dig att bli jobbklar med bara 52 timmars material.

FAQs

Vad används Mann-Whitney U-testet till?

Mann-Whitney U-testet används för att jämföra två oberoende grupper när du inte kan anta att data följer en normalfördelning. Det rangordnar alla värden från båda grupperna tillsammans och kontrollerar om en grupp konsekvent rankas högre än den andra. Det fungerar med både ordinala och kontinuerliga data.

Hur skiljer sig Mann-Whitney U-testet från t-testet?

T-testet jämför medelvärdena för två grupper och antar normalfördelning. Mann-Whitney U-testet jämför fördelningar med hjälp av rangordningar, så det gör inte det antagandet. När dina data är snedfördelade eller kommer från ett litet stickprov är Mann-Whitney U-testet det säkrare valet.

När ska jag använda Mann-Whitney U-testet?

Använd det när du har två oberoende grupper, dina data är ordinala eller kontinuerliga och du inte kan bekräfta normalitet. Det passar också bra när ditt stickprov är litet och det finns utstickare. Om dina data är normalfördelade och ditt stickprov är stort ger t-testet i regel bättre resultat.

Vad säger p-värdet i ett Mann-Whitney U-test?

Ett p-värde under 0,05 betyder att det finns en statistiskt signifikant skillnad mellan de två gruppernas fördelningar. Det talar inte om hur stor den skillnaden är eller om den är praktiskt meningsfull. För det behöver du beräkna effektstorlek separat och titta på gruppernas medianer.

Kan jag använda Mann-Whitney U-testet för parade data?

Nej. Mann-Whitney U-testet antar att de två grupperna är oberoende, vilket betyder att den ena gruppens värden inte påverkar den andras. Om dina data är parade – tänk före- och eftermätningar på samma individer – använd i stället Wilcoxon teckenrangtest. Att använda Mann-Whitney U-testet på parade data ignorerar relationen mellan observationer och ger opålitliga resultat.

Ämnen

Lär dig med DataCamp

track

Dataanalytiker i R

36 timmar
Från utforskande dataanalys med dplyr till datavisualisering med ggplot2 – skaffa dig de R-färdigheter som bygger din karriär och du behöver för att lyckas som dataanalytiker!
Se detaljerRight Arrow
Starta kursen
Se merRight Arrow