Как выполнить U-тест Манна-Уитни в R


U-критерий Манна-Уитни (иногда называемый критерием суммы рангов Уилкоксона) используется для сравнения различий между двумя независимыми выборками, когда распределение выборки не является нормальным, а размеры выборки малы (n < 30).

Он считается непараметрическим эквивалентом двухвыборочного независимого t-критерия .

В этом руководстве объясняется, как выполнить U-критерий Манна-Уитни в R.

Пример: U-критерий Манна-Уитни в R

Исследователи хотят знать, эффективен ли новый препарат для предотвращения приступов паники. В общей сложности 12 пациентов были случайным образом разделены на две группы по 6 человек и назначены для получения нового препарата или плацебо. Затем пациенты записывают, сколько приступов паники у них было в течение одного месяца.

Результаты показаны ниже:

| НОВЫЙ ПРЕПАРАТ | плацебо | | --- | --- | | 3 | 4 | | 5 | 8 | | 1 | 6 | | 4 | 2 | | 3 | 1 | | 5 | 9 |

Проведите U-критерий Манна-Уитни, чтобы определить, есть ли разница в количестве панических атак у пациентов в группе плацебо по сравнению с группой нового препарата. Используйте уровень значимости 0,05.

Существует два разных способа выполнения U-критерия Манна-Уитни, но оба метода используют функцию wilcox.test() и оба приводят к одному и тому же результату.

Вариант 1: введите данные в виде двух отдельных векторов.

#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

Вариант 2: введите данные в один фрейм данных с двумя столбцами. В одном столбце указано количество панических атак, а в другом — группа.

#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

Обратите внимание, что оба метода приводят к одному и тому же результату. А именно, тестовая статистика равна W = 13, а соответствующее значение p равно 0,468 .

Поскольку p-значение больше 0,05, мы не можем отвергнуть нулевую гипотезу.

Это означает, что у нас нет достаточных доказательств, чтобы сказать, что количество приступов паники, испытанных пациентами в группе плацебо, отличается от группы нового препарата.

Примечания по использованию Wilcox.test()

По умолчанию wilcox.test() предполагает, что вы хотите запустить двустороннюю проверку гипотезы. Однако вы можете указать альтернативу = «меньше» или альтернативу = «больше» , если вместо этого хотите запустить односторонний тест.

Например, предположим, что мы хотим проверить гипотезу о том, что новый препарат вызывает меньше приступов паники, чем плацебо. В этом случае мы могли бы указать альтернативу = «less» в нашей функции wilkox.test():

#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

Обратите внимание, что статистика теста по-прежнему W = 13, но значение p теперь равно 0,234 , что ровно вдвое меньше, чем предыдущее значение p для двустороннего теста.

Поскольку p-значение все еще больше 0,05, мы все равно не сможем отвергнуть нулевую гипотезу.

У нас нет достаточных доказательств, чтобы сказать, что количество приступов паники, испытанных пациентами в группе нового препарата, было меньше, чем у пациентов в группе плацебо.

Дополнительные ресурсы

Руководство по U-тесту Манна-Уитни
Калькулятор критерия Манна-Уитни U