Bagaimana cara menafsirkan Mann-Whitney U saat menggunakan antarmuka rumus R


9

Katakanlah kita memiliki data berikut:

set.seed(123)
data <- data.frame(x = c(rnorm(50, 1, 1), rnorm(50, 5, 2)),
                   y = c(rep('A', 50),    rep('B', 50)))

Yang menghasilkan boxplot berikut ( boxplot(data$x ~ data$y)):

boxplot

Sekarang katakanlah saya ingin menguji apakah dua sampel memiliki parameter lokasi yang sama (median dan / atau rata-rata). Dalam kasus saya yang sebenarnya, data jelas tidak normal , jadi saya memutuskan untuk menjalankan tes Wilcoxon-Mann-Whitney, seperti ini:

wilcox.test(data$x ~ data$y)

Namun, saya ingin hipotesis alternatif menjadi bahwa data$yfaktor "kedua" B, berasal dari distribusi dengan parameter posisi yang lebih tinggi. Saya sudah mencoba mengatur alternativeparameter ke "lebih besar" dan "kurang", tetapi ternyata hipotesis alternatif bukanlah yang saya cari. Misalnya, alternative = "greater"beri tahu saya "hipotesis alternatif: pergeseran lokasi sebenarnya lebih besar dari 0"; alternative = "less"memberi tahu saya "hipotesis alternatif: pergeseran lokasi sebenarnya kurang dari 0".

Bagaimana saya dapat mengubah wilcox.test()fungsi agar memiliki hipotesis alternatif yang saya inginkan (B berasal dari distribusi dengan parameter posisi lebih tinggi daripada A)? Atau haruskah saya menggunakan tes lain saja?


3
Pikirkan tentang apa artinya "pergeseran lokasi".
Roland

1
Dalam hal apa data Anda tidak normal. Berdasarkan pada boxplots (mungkin bukan cara terbaik untuk memutuskan, tetapi apa yang ada di sana) mereka tentu terlihat cukup normal. Selain itu, Anda menghasilkan data Anda dengan rnorm(), sehingga mereka harus normal . Saya ingin tahu apakah Anda bingung tentang sifat asumsi normalitas; mungkin membantu Anda membaca utas ini: Bagaimana jika residu terdistribusi normal tetapi Anda tidak .
gung - Reinstate Monica

1
Saya hanya memperluas pada titik @ Roland tetapi mengapa Anda pikir ada masalah? Tampaknya memberi Anda apa yang Anda inginkan.
Gala

3
Tes Wilcoxon-Mann-Whitney sensitif terhadap jenis perbedaan yang lebih umum daripada pergeseran lokasi lurus; misalnya, dengan nilai-nilai positif, sama-sama sensitif terhadap pergeseran skala (mengambil log mengubah pergeseran skala menjadi pergeseran lokasi, tetapi statistik WMW adalah sama). Anda bahkan dapat memperlakukan alternatif satu sisi secara umumP(X>Y)>12misalnya (mis. lihat Statistik Nonparametrik Praktis Conover ).
Glen_b -Reinstate Monica

2
(ctd) ... Di sisi lain, Anda mengatakan pada satu titik "* Saya ingin menguji apakah dua sampel berasal dari distribusi yang sama *"; karena ada lebih banyak cara untuk menjadi salah daripada kecenderungan untuk satu variabel menjadi lebih tinggi (misalnya pergeseran variabilitas dengan lokasi yang sama atau perubahan kemiringan atau dalam puncaknya), jika Anda benar-benar hanya ingin menguji kesetaraan distribusi vs ketidaksetaraan mereka Anda mungkin harus mempertimbangkan dua sampel Kolmogorov-Smirnov. Jika Anda tertarik pada alternatif 'cenderung lebih besar', maka WMW seharusnya baik-baik saja.
Glen_b -Reinstate Monica

Jawaban:


9

Secara teknis, kategori referensi dan arah tes tergantung pada cara variabel faktor dikodekan. Dengan data mainan Anda:

> wilcox.test(x ~ y, data=data, alternative="greater")

    Wilcoxon rank sum test with continuity correction

data:  x by y 
W = 52, p-value = 1
alternative hypothesis: true location shift is greater than 0 

> wilcox.test(x ~ y, data=data, alternative="less")

    Wilcoxon rank sum test with continuity correction

data:  x by y 
W = 52, p-value < 2.2e-16
alternative hypothesis: true location shift is less than 0 

Perhatikan bahwa statistik W adalah sama dalam kedua kasus tetapi tes menggunakan ekor yang berlawanan dari distribusi samplingnya. Sekarang mari kita lihat variabel faktor:

> levels(data$y)
[1] "A" "B"

Kita dapat mengode ulangnya untuk menjadikan "B" sebagai level pertama:

> data$y <- factor(data$y, levels=c("B", "A"))

Sekarang kita punya:

> levels(data$y)
[1] "B" "A"

Perhatikan bahwa kami tidak mengubah data itu sendiri , seperti halnya variabel kategori dikodekan “di bawah tenda”:

> head(data)
          x y
1 0.4395244 A
2 0.7698225 A
3 2.5587083 A
4 1.0705084 A
5 1.1292877 A
6 2.7150650 A

> aggregate(data$x, by=list(data$y), mean)
  Group.1        x
1       B 5.292817
2       A 1.034404

Tetapi arah tes sekarang terbalik:

> wilcox.test(x ~ y, data=data, alternative="greater")

    Wilcoxon rank sum test with continuity correction

data:  x by y 
W = 2448, p-value < 2.2e-16
alternative hypothesis: true location shift is greater than 0 

Statistik W berbeda tetapi nilai- p adalah sama daripada untuk alternative="less"tes dengan kategori dalam urutan asli. Dengan data asli, ini dapat ditafsirkan sebagai "pergeseran lokasi dari B ke A kurang dari 0" dan dengan data yang direkode ulang itu menjadi "pergeseran lokasi dari A ke B lebih besar dari 0" tetapi ini benar-benar hipotesis yang sama (tapi lihat komentar Glen_b untuk pertanyaan tentang interpretasi yang benar).

Dalam kasus Anda, karena itu tampaknya tes yang Anda inginkan adalah alternative="less"(atau, ekuivalen, alternative="greater"dengan data yang dikodekan ulang). Apakah itu membantu?


Mm, sepertinya Anda menyukai sesuatu di sana, Gaël. Saya akan mempelajari jawaban Anda dan kembali, terima kasih atas bantuannya!
Waldir Leoncio

Ok, jadi saya kira "lebih besar" dalam hal ini selalu mengacu pada tingkat "pertama", kan? Ok, itu membantu dan saya pikir itu menyelesaikan kasus ini. Terima kasih lagi!
Waldir Leoncio

Saya baru saja menemukan masalah yang tepat ini. Terima kasih atas penjelasannya!
Davy Kavanagh
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.