Как выполнить тест Данна в 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),
 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 ).

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.