R'de mann-whitney u testi nasıl yapılır?
Örnek dağılımları normal dağılmadığında ve örnek boyutları küçük olduğunda (n < 30) iki bağımsız örnek arasındaki farkları karşılaştırmak için bir Mann-Whitney U testi (bazen Wilcoxon sıralama toplamı testi olarak da adlandırılır) kullanılır.
Bağımsız iki örnekli t testinin parametrik olmayan eşdeğeri olarak kabul edilir.
Bu eğitimde R’de Mann-Whitney U testinin nasıl gerçekleştirileceği açıklanmaktadır.
Örnek: R’de Mann-Whitney U testi
Araştırmacılar yeni bir ilacın panik atakları önlemede etkili olup olmadığını bilmek istiyorlar. Toplam 12 hasta rastgele 6 kişilik iki gruba bölünüyor ve yeni ilacı veya plaseboyu almak üzere görevlendiriliyor. Hastalar daha sonra bir ay boyunca yaşadıkları panik atak sayısını kaydederler.
Sonuçlar aşağıda gösterilmektedir:
YENİ İLAÇ | PLASEBO |
---|---|
3 | 4 |
5 | 8 |
1 | 6 |
4 | 2 |
3 | 1 |
5 | 9 |
Yeni ilaç grubuyla karşılaştırıldığında plasebo grubundaki hastalar arasında panik atak sayısında bir fark olup olmadığını belirlemek için Mann-Whitney U testi yapın. 0,05 anlamlılık düzeyini kullanın.
Mann-Whitney U testini gerçekleştirmenin iki farklı yolu vardır, ancak her iki yöntem de wilcox.test() işlevini kullanır ve her ikisi de aynı sonuca yol açar.
Seçenek 1: Verileri iki ayrı vektör olarak girin.
#create a vector for each group new <- c(3, 5, 1, 4, 3, 5) placebo <- c(4, 8, 6, 2, 1, 9) #perform the Mann Whitney U test wilcox.test(new, placebo) #output Wilcoxon rank sum test with continuity correction data: new and placebo W = 13, p-value = 0.468 alternative hypothesis: true location shift is not equal to 0
Seçenek 2: Verileri iki sütunlu bir veri çerçevesine girin. Bir sütunda panik atak sayısı, diğer sütunda ise grup yer alıyor.
#create a data frame with two columns, one for each group drug_data <- data.frame(attacks = c(3, 5, 1, 4, 3, 5, 4, 8, 6, 2, 1, 9), drug_group = c(rep("old", 6), rep("placebo", 6))) #perform the Mann Whitney U test wilcox.test(attacks~drug_group, data = drug_data) #output data: attacks by drug_group W = 13, p-value = 0.468 alternative hypothesis: true location shift is not equal to 0
Her iki yöntemin de tamamen aynı sonuca yol açtığını unutmayın. Yani test istatistiği W = 13’tür ve buna karşılık gelen p değeri 0,468’dir .
P değeri 0,05’ten büyük olduğundan sıfır hipotezini reddedemiyoruz.
Bu, plasebo grubundaki hastaların yaşadığı panik atak sayısının yeni ilaç grubundakilerden farklı olduğunu söyleyecek yeterli kanıtımız olmadığı anlamına geliyor.
Wilcox.test() kullanımına ilişkin notlar
Varsayılan olarak wilcox.test() , iki taraflı bir hipotez testi çalıştırmak istediğinizi varsayar. Ancak bunun yerine tek taraflı bir test yürütmek istiyorsanız alternatif=”daha az” veya alternatif=”daha fazla” belirtebilirsiniz.
Örneğin, yeni ilacın plaseboya göre daha az panik atağa neden olduğu hipotezini test etmek istediğimizi varsayalım. Bu durumda wilcox.test() fonksiyonumuzda alternatif=”daha az” belirtebiliriz:
#create a vector for each group new <- c(3, 5, 1, 4, 3, 5) placebo <- c(4, 8, 6, 2, 1, 9) #perform the Mann Whitney U test, specify alternative="less" wilcox.test(new, placebo, alternative="less") #output Wilcoxon rank sum test with continuity correction data: new and placebo W = 13, p-value = 0.234 alternative hypothesis: true location shift is less than 0
Test istatistiğinin hala W = 13 olduğunu, ancak p değerinin artık 0,234 olduğunu unutmayın; bu, iki kuyruklu test için önceki p değerinin tam yarısıdır.
P değeri her zaman 0,05’ten büyük olduğundan sıfır hipotezini reddetmede yine başarısız olacağız.
Yeni ilaç grubundaki hastaların yaşadığı panik atak sayısının plasebo grubundaki hastalara göre daha düşük olduğunu söyleyecek yeterli kanıtımız yok.
Ek kaynaklar
Mann-Whitney U Testi Kılavuzu
Mann-Whitney U Testi Hesaplayıcı