Как выполнить тест Фридмана в R


Критерий Фридмана представляет собой непараметрическую альтернативу дисперсионному анализу повторных измерений. Он используется для определения того, существует ли статистически значимая разница между средними значениями трех или более групп, в которых одни и те же субъекты обнаруживаются в каждой группе.

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

Пример: тест Фридмана в R

Чтобы выполнить тест Фридмана в R, мы можем использовать функцию friedman.test() , которая использует следующий синтаксис:

friedman.test(y, группы, блоки)

куда:

  • y: вектор значений отклика.
  • groups: вектор значений, указывающий «группу», к которой принадлежит наблюдение.
  • блоки: вектор значений, указывающий на «блокирующую» переменную.

Эта функция создает статистику теста хи-квадрат и соответствующее значение p. Если p-значение меньше определенного уровня значимости (обычно выбирают 0,10, 0,05 и 0,01), то имеется достаточно доказательств того, что средние значения между каждой из групп не равны.

Чтобы проиллюстрировать, как использовать эту функцию, мы создадим набор данных, показывающий время реакции пяти пациентов на четыре разных препарата. Поскольку каждый пациент измеряется на каждом из четырех препаратов, мы будем использовать тест Фридмана, чтобы определить, различается ли среднее время реакции между препаратами.

Сначала мы создадим набор данных:

#create data
data <- data.frame(person = rep(1:5, each=4),
 drug = rep(c(1, 2, 3, 4), times=5),
 score = c(30, 28, 16, 34, 14, 18, 10, 22, 24, 20,
 18, 30, 38, 34, 20, 44, 26, 28, 14, 30))

#view data
data

 person drug score
1 1 1 30
2 1 2 28
3 1 3 16
4 1 4 34
5 2 1 14
6 2 2 18
7 2 3 10
8 2 4 22
9 3 1 24
10 3 2 20
11 3 3 18
12 3 4 30
13 4 1 38
14 4 2 34
15 4 3 20
16 4 4 44
17 5 1 26
18 5 2 28
19 5 3 14
20 5 4 30

Затем мы выполним тест Фридмана, используя счет в качестве переменной ответа, лекарство в качестве группирующей переменной и человека в качестве блокирующей переменной:

#perform Friedman Test
friedman.test(y=data$score, groups=data$drug, blocks=data$person)

 Friedman rank sum test

data: data$score, data$drug and data$person
Friedman chi-squared = 13.56, df = 3, p-value = 0.00357

Статистика теста хи-квадрат составляет 13,56 , а соответствующее значение p равно 0,00357.Поскольку это p-значение меньше 0,05, мы можем отвергнуть нулевую гипотезу о том, что среднее время ответа одинаково для всех четырех препаратов. У нас есть достаточно доказательств, чтобы заключить, что тип используемого препарата приводит к статистически значимым различиям во времени ответа.

Хотя тест Фридмана сообщает нам, существуют ли различия в среднем времени реакции на препараты, он не говорит нам конкретно, какие препараты имеют разное среднее время реакции. Чтобы выяснить это, нам нужно провести апостериорные тесты.

Для теста Фридмана подходящим апостериорным тестом является попарный критерий суммы рангов Уилкоксона с поправкой Бонферрони, который может быть реализован с использованием следующего синтаксиса:

Pairwise.wilcox.test (данные $ оценка, данные $ препарат, p.adj = «бонф»)

куда:

  • х: вектор отклика
  • g: вектор группировки
  • p.adj: метод корректировки p-значений; варианты включают holm, hochberg, hommel, bonferroni, BH, BY, fdr и ни один

Вот синтаксис, который мы будем использовать для нашего примера:

#perform post-hoc tests
pairwise.wilcox.test(data$score, data$drug, p.adj = "bonf")
 Pairwise comparisons using Wilcoxon rank sum test 

data: data$score and data$drug 

 1 2 3 
2 1.000 - - 
3 0.449 0.210 - 
4 1.000 1.000 0.072

P value adjustment method: bonferroni

Это создает матрицу, которая показывает p-значение для каждого попарного критерия суммы рангов Уилкоксона. Мы видим, что единственными группами препаратов, которые имеют статистически значимую разницу в 0,10, являются группы 3 и 4 ( p = 0,072 ).

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