Mann-Whitney U Testi: İki Grubu Sıralara Bakarak Karşılaştırmak
Beceri rehberi

Mann-Whitney U Testi: İki Grubu Sıralara Bakarak Karşılaştırmak

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 5 dk okuma

Puanlar çarpık, örneklem küçük ya da ölçek sıralıysa ortalamaya dayalı testler güven vermez. Mann-Whitney U testi iki bağımsız grubu değerlerin sıralarıyla karşılaştırır; burada nasıl çalıştığını, SciPy ile nasıl uygulandığını ve çıktının nasıl okunduğunu görürsünüz.

Bir bakışta

  1. Test değerlere değil sıralara bakar. Tüm gözlemler birlikte sıralanır; bir grubun değerleri sıralamada sistematik olarak yukarıda mı kalıyor sorusu yanıtlanır.
  2. Bağımsız iki grup için kullanılır. Aynı kişilerin iki ölçümü gibi eşleşmiş veride Wilcoxon işaretli sıra testi gerekir.
  3. Medyan farkı demek için koşul gerekir. İki dağılımın şekli benzerse test medyan farkı olarak da okunur; değilse üstünlük olasılığı olarak yorumlanır.
  4. p değeri tek başına yetmez. U değerinden hesaplanan üstünlük olasılığı etkinin büyüklüğünü gösterir.
  5. SciPy'de tek çağrı yeter. mannwhitneyu iki diziyi alır, U istatistiği ile p değerini döndürür.

Mann-Whitney U testi neyi sınar?

Mann-Whitney U testi, bağımsız iki grubun aynı dağılımdan gelip gelmediğini sorar. Hesap şöyle ilerler: iki grubun tüm değerleri tek bir listede küçükten büyüğe sıralanır, her gözleme bir sıra numarası verilir, sonra gruplar ayrılıp sıralar karşılaştırılır. Bir grubun değerleri sıralamada hep yukarıdaysa U istatistiği uç değere gider ve p değeri küçülür.

Bu yaklaşımın iki avantajı vardır. Birincisi, normal dağılım varsayımı gerekmez. İkincisi, yalnızca sıralara baktığı için tek bir uç değer sonucu bozmaz: bir gözlem ne kadar büyük olursa olsun sıralamada yalnızca en üst sırayı alır.

Testin ne dediğine dikkat edin. Doğru ifade "A grubunun değerleri B grubunun değerlerinden sistematik olarak büyük" cümlesidir. "Medyanlar farklı" demek ancak iki dağılımın şekli ve yayılımı benzerse doğrudur. Tek yönlü bir iddiada da tersi ayrıca düşünülür: iki grubun medyanı eşit olduğu hâlde yayılımları çok farklıysa test yine anlamlı çıkabilir.

Adlandırma kafa karıştırabilir: aynı test Wilcoxon sıra toplamı testi olarak da geçer. İkisi bağımsız gruplar için aynı soruyu yanıtlar; eşleşmiş veriler için olan Wilcoxon işaretli sıra testi ise ayrı bir testtir.

Ne zaman uygun, ne zaman değil?

Test şu durumlarda öne çıkar: ölçek sıralıysa (memnuniyet puanı gibi), dağılım belirgin çarpıksa (yanıt süresi, harcama tutarı) ya da örneklem küçük ve normallik doğrulanamıyorsa. Bunlar dışında normal dağılıma yakın, yeterince büyük bir veride bağımsız örneklem t testi de çalışır; Mann-Whitney büyük örneklemde de geçerlidir ama normallik sağlandığında biraz daha az güçlü kalabilir.

Karar için soracağınız sorular sırayla şunlardır:

  • Gruplar birbirinden bağımsız mı, yoksa aynı birimlerin tekrar ölçümü mü?
  • Bağımlı değişken en az sıralı mı?
  • Dağılımlar çarpık mı ya da aykırı değerler var mı?

Sonuncu sorunun cevabı "evet" ise sıra tabanlı test iyi bir tercihtir. Birinci soruda eşleşme varsa Mann-Whitney yanlış araçtır. Parametrik ve parametrik olmayan testlerin genel farkı ayrı bir konudur; burada tek bir testin uygulamasına odaklanıyoruz.

Şekil 1

Önce bağımsızlığa, sonra ölçeğe ve dağılıma bakın

İki grup karşılaştırırken test seçimi

Elinizdeki iki grup nasıl bir veri?
  1. Aynı birimler iki kez ölçüldü (eşleşmiş)Wilcoxon işaretli sıra testiMann-Whitney bağımsız gruplar içindir.
  2. Bağımsız gruplar, sıralı ölçek ya da çarpık dağılımMann-Whitney U testiAykırı değerler sıra almaya dönüştüğü için etkisi sınırlıdır.
  3. Bağımsız gruplar, normale yakın dağılımBağımsız örneklem t testiNormallik varsayımını önce kontrol edin.
Kaynak: sayfa içeriğiMindset Institute

SciPy ile uygulama

Python'da test scipy.stats modülündeki mannwhitneyu işleviyle yapılır. Kurgusal bir örnekte bir uygulamanın mobil ve web kanalından gelen müşteri memnuniyet puanlarını karşılaştıralım; veri dosyasında bir kanal sütunu ve bir puan sütunu olsun:

from scipy.stats import mannwhitneyu import pandas as pd

veri = pd.read_csv('memnuniyet.csv') mobil = veri.loc[veri['kanal'] == 'mobil', 'puan'] web = veri.loc[veri['kanal'] == 'web', 'puan']

sonuc = mannwhitneyu(mobil, web, alternative='two-sided') print(sonuc.statistic, sonuc.pvalue)

İşlev iki örneklemi alır. alternative parametresinin varsayılanı çift yönlüdür; yalnızca bir yönde iddianız varsa 'less' ya da 'greater' verilebilir, ama yönü veriye bakmadan önce belirlemelisiniz. Dönen nesnenin statistic alanı ilk örneklem için hesaplanan U değeri, pvalue alanı seçilen alternatife göre p değeridir.

Boş değer içeren bir sütunu doğrudan vermeyin: önce dropna ile temizleyin ya da işlevin nan_policy ayarını bilinçli seçin. Yanlış gruplama en sık görülen hatadır; filtreleri yazdıktan sonra her grubun satır sayısına bakmak kısa sürer.

Çıktıyı okumak: U, p değeri ve etki büyüklüğü

statistic alanındaki U değeri ilk gruptaki değerlerin ikinci gruptaki değerleri toplam kaç kez geçtiğini ifade eder. İkinci grup için karşılık gelen değer, iki grup büyüklüğünün çarpımından U çıkarılarak bulunur. U'nun tek başına anlamı yoktur; olası en büyük değere göre yorumlanır.

Bu yüzden etki büyüklüğünü kendiniz hesaplayın:

olasilik = sonuc.statistic / (len(mobil) * len(web))

Bu oran, mobil gruptan rastgele seçilen bir müşterinin, web grubundan rastgele seçilen bir müşteriden daha yüksek puan verme olasılığıdır (eşit puanlar yarım sayılır). Yarıya yakınsa gruplar ayırt edilemez; yarıdan uzaklaştıkça fark büyür. Raporunuzda p değerinin yanında bu oranı da vermek okura "anlamlı ama ne kadar?" sorusunun cevabını sunar.

p değeri ise iki grup gerçekte aynı dağılımdan geliyorsa bu kadar uç bir sıralama farkını görme olasılığını anlatır. Önceden belirlediğiniz anlamlılık eşiğinin altındaysa sıfır hipotezini reddedersiniz. Küçük p değeri farkın önemli olduğunu göstermez; çok büyük örneklemde önemsiz farklar da anlamlı çıkar.

Bağ, küçük örneklem ve yöntem seçimi

Ölçek sıralı olduğunda aynı değerler çok tekrar eder; bu duruma bağ denir. SciPy bağlı gözlemlerin sıralarının ortalamasını kullanır. Yöntem parametresi 'auto' iken küçük örneklemde ve bağ yokken kesin (exact) p değeri, aksi hâlde normal yaklaşımla hesaplanan p değeri kullanılır. Bağlar çoksa belgeler permütasyon yönteminin değerlendirilmesini önerir.

Süreklilik düzeltmesi (use_continuity) yalnızca normal yaklaşımı etkiler ve varsayılan olarak açıktır; ayarı değiştirmek için bir nedeniniz yoksa dokunmayın.

Küçük örneklemde test güçsüzdür: gerçek bir fark olsa bile anlamlı sonuç çıkmayabilir. "Anlamlı değil" sonucunu "fark yok" diye okumayın; "bu veriyle fark gösterilemedi" demek daha dürüsttür. Ayrıca iki grubu yan yana kutu grafiği ya da histogramla çizmek, dağılım şekillerinin benzer olup olmadığını görmenin en hızlı yoludur.

Sonucu raporlarken ve sık yapılan hatalar

İyi bir sonuç cümlesi yöntemi, grup büyüklüklerini, istatistiği, p değerini ve etki büyüklüğünü birlikte verir. Örneğin: "Mobil kanal puanları web kanalının puanlarından sıralamada yukarıda yer aldı; Mann-Whitney U testi anlamlı bir fark gösterdi ve mobilden seçilen bir müşterinin daha yüksek puan verme olasılığı yarıdan belirgin biçimde büyüktür." Gerçek raporda sayıları veriden yazarsınız.

Sık yapılan hatalar şunlardır:

  • Eşleşmiş veriye Mann-Whitney uygulamak (öncesi-sonrası ölçümler gibi).
  • Sonucu her koşulda "medyanlar farklı" diye yorumlamak.
  • Çok sayıda grup çifti için testi tekrarlayıp çoklu karşılaştırma düzeltmesi yapmamak.
  • Test yöntemini sonuçları gördükten sonra seçmek.
  • Yalnızca p değerini yazıp etki büyüklüğünü atlamak.

Üç ya da daha fazla grup varsa ikili testlerle uğraşmak yerine önce Kruskal-Wallis gibi çok gruplu bir sıra testine bakın.

Bu istatistik temeli Mindset programlarında nerede çalışılır?

Veri Bilimi için İstatistik Eğitimi hipotezlerin sınanması, normal dağılım ve korelasyon konularını istatistiksel temelden ele alır; sıra tabanlı testlerin neden gerektiğini anlamak için iyi bir zemin sunar. Data Science Bootcamp ise Python ve veri edinimi başlıklarıyla bu testleri koda dökmeniz için gereken altyapıyı çalıştırır. Analiz ekiplerinde A/B çıktısını ya da anket puanlarını karşılaştıran analistlerin işine doğrudan yarar.

İlgili Mindset programı

Veri Bilimi için İstatistik Eğitimi

Sık sorulanlar

Sık sorulan sorular

Mann-Whitney U testi ile Wilcoxon sıra toplamı testi aynı mı?

Bağımsız iki grup için ikisi aynı soruyu yanıtlayan, aynı testin farklı adlarıdır. Karışıklık Wilcoxon işaretli sıra testinden gelir; o test aynı birimlerin iki ölçümünü karşılaştırır ve SciPy'de ayrı bir işlevle çalıştırılır. Eşleşmiş veriniz varsa işaretli sıra testini, bağımsız gruplarınız varsa Mann-Whitney'yi seçin.

Test mutlaka medyanları mı karşılaştırır?

Hayır. Test sıralamadaki üstünlüğü sınar. Medyan farkı olarak okumak için iki dağılımın şeklinin ve yayılımının benzer olması gerekir. Şekiller farklıysa sonucu "bir gruptan seçilen değer diğerinden büyük çıkma eğilimindedir" biçiminde, üstünlük olasılığıyla birlikte raporlamak daha güvenlidir.

Büyük örneklemde de kullanılabilir mi?

Evet. Büyük örneklemde normal yaklaşım kullanıldığı için hesap hızlıdır ve sonuç geçerlidir. Veri gerçekten normale yakınsa t testi biraz daha güçlüdür; ama veri çarpık ya da ölçek sıralıysa büyük örneklemde de Mann-Whitney makul bir seçimdir.

p değeri anlamlı çıktı, fark büyük müdür?

Anlamlılık büyüklük demek değildir. Örneklem büyüdükçe önemsiz farklar bile anlamlı çıkar. U değerini grup büyüklüklerinin çarpımına bölerek üstünlük olasılığını hesaplayın; yarıya yakınsa pratikte fark küçüktür, uzaksa fark belirgindir. Raporda p değerini ve bu olasılığı yan yana vermek, okurun farkın önemini kendisinin tartmasını sağlar.

İkiden fazla grup varsa ne yapılır?

Gruplar bağımsızsa Kruskal-Wallis gibi çok gruplu sıra testiyle başlanır; anlamlı çıkarsa hangi grupların ayrıştığı ikili karşılaştırmalarla incelenir ve bu ikili testlerde çoklu karşılaştırma düzeltmesi uygulanır. Doğrudan tüm çiftlere Mann-Whitney uygulamak yanlış pozitif riskini artırır.

Mann-Whitney U Testi: Python ile Uygulama ve Yorum