Тест Брауна-Форсайта в R: пошаговый пример

Тест Брауна-Форсайта в R: пошаговый пример

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

Одно из предположений однофакторного дисперсионного анализа состоит в том, что дисперсии совокупностей, из которых взяты выборки , равны.

Один из наиболее распространенных способов проверить это — использовать тест Брауна-Форсайта , который представляет собой статистический тест, использующий следующие гипотезы :

  • H 0 : Различия между популяциями равны.
  • H A : Дисперсия между популяциями неодинакова.

Если 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 
 denom df : 74.0272 
 p.value : 1.816529e-10 

 Result : Difference is statistically significant. 
------------------------------------------------------------- 

Значение p теста оказалось меньше 0,000, и, как показывают выходные данные, различия в дисперсиях между тремя группами статистически значимы.

Следующие шаги

Если вам не удалось отклонить нулевую гипотезу теста Брауна-Форсайта, вы можете приступить к однофакторному ANOVA для данных.

Однако, если вы отклоняете нулевую гипотезу, это означает, что предположение о равных дисперсиях нарушается. В этом случае у вас есть два варианта:

1. Все равно продолжите однофакторный дисперсионный анализ.

Оказывается, однофакторный дисперсионный анализ на самом деле устойчив к неравным дисперсиям, если наибольшая дисперсия не превышает наименьшую дисперсию более чем в 4 раза.

На шаге 2 из приведенного выше примера мы обнаружили, что наименьшая дисперсия составила 0,819, а наибольшая — 2,46. Таким образом, отношение наибольшей дисперсии к наименьшей равно 2,46/0,819 = 3,003 .

Поскольку это значение меньше 4, мы могли бы просто продолжить однофакторный дисперсионный анализ.

2. Проведите тест Крускала-Уоллиса

Если отношение наибольшей дисперсии к наименьшей дисперсии больше 4, мы можем вместо этого выбрать выполнение теста Краскела-Уоллиса.Это считается непараметрическим эквивалентом однофакторного дисперсионного анализа.

Пошаговый пример теста Крускала-Уоллиса в R можно найти здесь .

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