Tes jumlah peringkat Wilcoxon dalam R

13

Saya mendapat hasil dari tes yang sama yang diterapkan pada dua sampel independen:

x <- c(17, 12, 13, 16, 9, 19, 21, 12, 18, 17)
y <- c(10, 6, 15, 9, 8, 11, 8, 16, 13, 7, 5, 14)

Dan saya ingin menghitung tes peringkat jumlah Wilcoxon.

Ketika saya menghitung statistik dengan tangan, saya mendapatkan: TW

TW=pangkat(Xsaya)=156.5

Ketika saya membiarkan R melakukan wilcox.test(x, y, correct = F), saya mendapatkan:

W = 101.5

Mengapa demikian? Tidakkah statistik hanya dikembalikan ketika saya melakukan tes peringkat yang ditandatangani ? Atau apakah saya salah paham dengan tes jumlah peringkat?W+paired = T

Bagaimana saya bisa memberi tahu R untuk menampilkanTW


Sebagai bagian dari hasil tes, tidak melalui sesuatu seperti:

dat <- data.frame(v = c(x, y), s = factor(rep(c("x", "y"), c(10, 12))))
dat$r <- rank(dat$v)
T.W <- sum(dat$r[dat$s == "x"])

Saya mengajukan pertanyaan lanjutan tentang arti dari berbagai cara untuk menghitung statistik uji untuk tes jumlah peringkat Wilcoxon

Komunitas
sumber

Jawaban:

15

The Notedalam bantuan pada wilcox.testfungsi jelas menjelaskan mengapa nilai R adalah lebih kecil dari Anda:

Catatan

Literatur tidak sepakat tentang definisi jumlah peringkat Wilcoxon dan tes Mann-Whitney. Dua definisi paling umum sesuai dengan jumlah peringkat sampel pertama dengan nilai minimum dikurangi atau tidak: R kurangi dan S-PLUS tidak, memberikan nilai yang lebih besar dengan m (m + 1) / 2 untuk sampel pertama ukuran m. (Tampaknya makalah asli Wilcoxon menggunakan jumlah peringkat yang tidak disesuaikan tetapi tabel berikutnya mengurangi minimum.)

Artinya, definisi R yang digunakan adalah lebih kecil dari versi yang Anda gunakan, di mana adalah jumlah pengamatan dalam sampel pertama.n1(n1+1)/2n1

Adapun untuk memodifikasi hasil, Anda dapat menetapkan output dari wilcox.testmenjadi variabel, katakan a, dan kemudian memanipulasi a$statistic- menambahkan minimum ke nilainya dan mengubah namanya. Kemudian ketika Anda mencetak a(misalnya dengan mengetik a), itu akan terlihat seperti yang Anda inginkan.

Untuk melihat apa yang saya maksudkan, coba ini:

a <- wilcox.test(x,y,correct=FALSE)
str(a) 

Jadi misalnya jika Anda melakukan ini:

n1 <- length(x)
a$statistic <- a$statistic + n1*(n1+1)/2
names(a$statistic) <- "T.W"
a

maka Anda mendapatkan:

        Wilcoxon rank sum test with continuity correction

data:  x and y 
T.W = 156.5, p-value = 0.006768
alternative hypothesis: true location shift is not equal to 0 

n1(n1+1)/2WwUW

Glen_b -Reinstate Monica
sumber