Как выполнить 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