Критерий Крускала-Уоллиса используется для определения наличия статистически значимой разницы между медианами трех или более независимых групп. Он считается непараметрическим эквивалентом однофакторного дисперсионного анализа .
Если результаты теста Краскела-Уоллиса статистически значимы, целесообразно провести тест Данна, чтобы точно определить, какие группы отличаются.
В этом руководстве объясняется, как выполнить тест Данна в R.
Пример: тест Данна в R
Исследователь хочет знать, оказывают ли три препарата разное влияние на боль в спине, поэтому он набирает 30 человек, которые все испытывают одинаковую боль в спине, и случайным образом делит их на три группы, чтобы получить либо препарат А, либо препарат В, либо препарат С. После одного месяца приема препарата исследователь просит каждого человека оценить боль в спине по шкале от 1 до 100, где 100 указывает на самую сильную боль.
Исследователь проводит тест Крускала-Уоллиса с уровнем значимости 0,05, чтобы определить, есть ли статистически значимая разница между средними показателями боли в спине в этих трех группах.
В следующем коде показано, как создать фрейм данных в R и выполнить тест Крускала-Уоллиса:
#make this example reproducible
set.seed(0)
#create data frame
data <- data.frame(drug = rep(c("A", "B", "C"), each = 10),
pain = c(runif(10, 40, 60),
runif(10, 45, 65),
runif(10, 55, 70)))
#view first six rows of data frame
head(data)
# drug pain
#1 A 57.93394
#2 A 45.31017
#3 A 47.44248
#4 A 51.45707
#5 A 58.16416
#6 A 44.03364
#perform Kruskal-Wallis Test
kruskal.test(pain ~ drug, data = data)
Kruskal-Wallis rank sum test
data: pain by drug
Kruskal-Wallis chi-squared = 11.105, df = 2, p-value = 0.003879
Поскольку общее p-значение ( 0,003879 ) меньше 0,05, это означает, что существует статистически значимая разница между сообщаемыми уровнями боли среди трех препаратов. Таким образом, мы можем провести тест Данна, чтобы точно определить, какие лекарства отличаются.
В следующем коде показано, как выполнить тест Данна в R с помощью функции dunnTest() из библиотеки FSA() :
#load library
library(FSA)
#perform Dunn's Test with Bonferroni correction for p-values
dunnTest(pain ~ drug,
data=data,
method=" bonferroni ")
Dunn (1964) Kruskal-Wallis multiple comparison
p-values adjusted with the Bonferroni method.
Comparison Z P.unadj P.adj
1 A - B -0.8890009 0.374002602 1.000000000
2 A - C -3.2258032 0.001256197 0.003768591
3 B - C -2.3368023 0.019449464 0.058348393
Обратите внимание, что мы решили использовать поправку Бонферрони для p-значений множественных сравнений, но другие возможные варианты включают:
- «сидак» (регулировка Сидака)
- «Холм» (Регулировка Холма)
- «hs» (регулировка Холма-Сидака)
- «bs» (поправка Бонферрони-Сидака)
- «по» (поправка Бенджамини-Екутейли)
- «bh» ( процедура Бенджамини-Хохберга )
При α = 0,05 препараты А и С являются единственными двумя препаратами, которые статистически значимо отличаются друг от друга (скорректированное значение p = 0,003768 ).