Как выполнить тест данна в r
Тест Крускала-Уоллиса используется для определения наличия или отсутствия статистически значимой разницы между медианами трех или более независимых групп. Он считается непараметрическим эквивалентом однофакторного дисперсионного анализа .
Если результаты теста Крускала-Уоллиса статистически значимы, то целесообразно выполнить тест Данна , чтобы точно определить, какие группы отличаются.
В этом руководстве объясняется, как выполнить тест Данна в 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),
bread = 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() :
#loadlibrary
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 препараты A и C являются единственными двумя препаратами, которые статистически значимо отличаются друг от друга (скорректированное значение p = 0,003768 ).