Тест брауна-форсайта в r: пошаговый пример
Однофакторный дисперсионный анализ используется для определения того, существует ли значительная разница между средними значениями трех или более независимых групп.
Одно из допущений однофакторного дисперсионного анализа состоит в том, что дисперсии совокупностей, из которых взяты выборки , равны.
Одним из наиболее распространенных способов проверить это является использование теста Брауна-Форсайта , который представляет собой статистический тест, в котором используются следующие предположения :
- H 0 : Дисперсии между популяциями равны.
- ХА : Различия между популяциями не равны.
Если значение p теста ниже определенного уровня значимости (например, α = 0,05), то мы отвергаем нулевую гипотезу и заключаем, что дисперсии не равны между различными популяциями.
В этом руководстве представлен пошаговый пример выполнения теста Брауна-Форсайта в R.
Шаг 1: Введите данные
Предположим, мы хотели бы знать, приводят ли три разные программы тренировок к разным уровням потери веса.
Чтобы проверить это, мы набираем 90 человек и случайным образом назначаем по 30 человек для использования каждой программы. Затем мы измеряем потерю веса каждого человека через месяц.
Следующий набор данных содержит информацию о количестве потерянного веса с помощью каждой программы:
#make this example reproducible set.seed(0) #create data frame data <- data.frame(program = as . factor ( rep (c(" A ", " B ", " C "), each = 30)), weight_loss = c( runif (30, 0, 3), runif (30, 0, 5), runif (30, 1, 7))) #view first six rows of data frame head(data) # program weight_loss #1 A 2.6900916 #2 A 0.7965260 #3 A 1.1163717 #4 A 1.7185601 #5 A 2.7246234 #6 A 0.6050458
Шаг 2. Обобщите и визуализируйте данные
Прежде чем выполнять тест Брауна-Форсайта, мы можем создать ящичковые диаграммы, чтобы визуализировать разницу в потере веса для каждой группы:
boxplot(weight_loss ~ program, data = data)
Мы также можем рассчитать дисперсию потери веса в каждой группе:
#load dplyr package library (dplyr) #calculate variance of weight loss by group data %>% group_by (program) %>% summarize (var=var(weight_loss)) # A tibble: 3 x 2 program var 1 A 0.819 2 B 1.53 3 C 2.46
Мы видим, что различия между группами различаются, но чтобы определить, являются ли эти различия статистически значимыми , мы можем выполнить тест Брауна-Форсайта.
Шаг 3. Выполните тест Брауна-Форсайта.
Чтобы выполнить тест Брауна-Форсайта в R, мы можем использовать функцию bf.test() из пакета onewaytests :
#load onewaytests package library (onewaytests) #perform Brown-Forsythe test bf.test(weight_loss ~ program, data = data) Brown-Forsythe Test (alpha = 0.05) -------------------------------------------------- ----------- data: weight_loss and program statistic: 30.83304 num df: 2 name df: 74.0272 p.value: 1.816529e-10 Result: Difference is statistically significant. -------------------------------------------------- -----------
Значение p теста оказывается меньше 0,000, и, как показывает результат, различия в дисперсиях между тремя группами статистически значимы.
Следующие шаги
Если вы не можете отвергнуть нулевую гипотезу теста Брауна-Форсайта, вы можете выполнить однофакторный дисперсионный анализ данных.
Однако если вы отклоните нулевую гипотезу, это означает, что предположение о равенстве дисперсий нарушается. В этом случае у вас есть два варианта:
1. В любом случае выполните односторонний дисперсионный анализ.
Оказывается, однофакторный дисперсионный анализ на самом деле устойчив к неравным дисперсиям, если наибольшая дисперсия не превышает наименьшую более чем в 4 раза.
На шаге 2 приведенного выше примера мы обнаружили, что наименьшее отклонение составило 0,819, а наибольшее отклонение — 2,46. Таким образом, отношение наибольшей дисперсии к наименьшей составляет 2,46/0,819 = 3,003 .
Поскольку это значение меньше 4, мы могли бы просто выполнить однофакторный дисперсионный анализ.
2. Выполните тест Крускала-Уоллиса.
Если отношение наибольшей дисперсии к наименьшей дисперсии больше 4, вместо этого можно выполнить тест Крускала-Уоллиса . Это считается непараметрическим эквивалентом одностороннего дисперсионного анализа.
Пошаговый пример теста Крускала-Уоллиса на R вы можете найти здесь .