Тест Вілкоксона за рангом у R


14

У мене результати одного і того ж тесту застосовані до двох незалежних зразків:

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)

І я хочу обчислити тест з рейтинговою сумою Вілкоксона.

Коли я обчислюю статистику вручну, я отримую: T W = ранг ( X i ) = 156,5TW

TW=rank(Xi)=156.5

Коли я дозволяю R виконувати a wilcox.test(x, y, correct = F), я отримую:

W = 101.5

Чому так? Чи не слід повертати статистику лише тоді, коли я виконую тест рангового підписання ? Або я неправильно розумію тест на суму рангів?W+paired = T

Як я можу сказати R для виведенняTW


Як частина результатів тестування, а не через щось подібне:

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

Я задав подальше запитання про значення різних способів обчислення статистики тесту для тесту суми рангів Вілкоксона

Відповіді:


16

NoteВ допомоги на wilcox.testфункції чітко пояснює , чому значення R є менше , ніж у вас:

Примітка

Література не є одностайною щодо визначень суми рангів Вілкоксона та тестів Манна-Вітні. Два найпоширеніших визначення відповідають сумі рангів першого вибірки з віднятим мінімальним значенням чи ні: R віднімає, а S-PLUS не робить, даючи значення, яке більше на m (m + 1) / 2 для a перший зразок розміром m. (Здається, в оригінальному документі Вілкоксона було використано невідрегульовану суму рангів, але наступні таблиці віднімали мінімум.)

Тобто, визначення R використовує менше, ніж версія, яку ви використовуєте, де - кількість спостережень у першій вибірці.n 1n1(n1+1)/2n1

Що стосується зміни результату, ви можете призначити результат з wilcox.testзмінної, скажімо a, а потім маніпулювати a$statistic- додавши мінімум до його значення та змінивши його ім'я. Тоді, коли ви друкуєте a(наприклад, набравши текст a), воно буде виглядати так, як вам потрібно.

Щоб побачити, що я отримую, спробуйте:

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

Так, наприклад, якщо ви це зробите:

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

тоді ви отримуєте:

        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 

Досить поширеним є посилання на тест суми рангів (чи зміщений на чи ні) як або або якийсь близький варіант (наприклад, тут чи тут ). Його також часто називають " " через Манн та Вітні. Існує безліч прецедентів щодо використання , тому для себе я б не переймався рядком, який змінює назву статистики, але якщо це вам підходить, то немає жодної причини, чому ви цього не зробите.Wn1(n1+1)/2WU WwUW

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.