Как выполнить тест фридмана в r
Критерий Фридмана — это непараметрическая альтернатива дисперсионному анализу с повторными измерениями. Он используется для определения того, существует ли статистически значимая разница между средними значениями трех или более групп, в которых одни и те же субъекты фигурируют в каждой группе.
В этом руководстве объясняется, как выполнить тест Фридмана в R.
Пример: тест Фридмана в R
Чтобы выполнить тест Фридмана в R, мы можем использовать функцию friedman.test() , которая использует следующий синтаксис:
friedman.test(y, группы, блоки)
Золото:
- y: вектор значений ответа.
- группы: вектор значений, указывающий «группу», к которой принадлежит наблюдение.
- блоки: вектор значений, указывающий «блокирующую» переменную.
Эта функция выдает статистику критерия Хи-квадрат и соответствующее значение 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(data$score, data$drug, p.adj = «bonf»)
Золото:
- x: вектор ответа
- g: вектор группировки
- p.adj: метод корректировки значения p; варианты включают holm, hochberg, hommel, bonferroni, BH, BY, fdr и none.
Вот синтаксис, который мы будем использовать для нашего примера:
#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 ).