Как провести тест Левена на равенство дисперсий в R


Многие статистические тесты (такие как однофакторный дисперсионный анализ или двусторонний дисперсионный анализ ) предполагают, что дисперсия между несколькими группами одинакова.

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

Этот тест имеет следующие гипотезы:

Нулевая гипотеза (H 0 ) : дисперсия среди групп одинакова.

Альтернативная гипотеза ( HA ) : дисперсия среди групп не одинакова.

Если p-значение из теста меньше выбранного нами уровня значимости, мы можем отклонить нулевую гипотезу и сделать вывод, что у нас достаточно доказательств, чтобы утверждать, что дисперсия между группами не одинакова.

Как провести тест Левена в R

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

leveneTest (переменная ответа ~ групповая переменная, данные = данные)

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

#make this example reproducible
set. seed (0)

#create data frame
data <- data.frame(program = 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

Чтобы проверить, одинакова ли дисперсия потери веса среди этих трех программ, мы можем использовать функцию leveneTest() и использовать 0,05 в качестве нашего уровня значимости:

#load car package
library (car)

#conduct Levene's Test for equality of variances
leveneTest(weight_loss ~ program, data = data)

#Levene's Test for Homogeneity of Variance (center = median)
# Df F value Pr(>F) 
#group 2 4.1716 0.01862 \*
# 87 
#---
#Signif. codes: 0 '\*\*\*' 0.001 '\*\*' 0.01 '\*' 0.05 '.' 0.1 ' ' 1

Значение p теста составляет 0,01862 , что меньше нашего уровня значимости 0,05.

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

Визуализация различий в отклонениях

Из проведения теста Левена мы знаем, что дисперсии среди трех групп не равны.

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

boxplot(weight_loss ~ program,
 data = data,
 main = "Weight Loss Distribution by Program",
 xlab = "Program",
 ylab = "Weight Loss",
 col = "steelblue",
 border = "black") 
Блочные диаграммы в R

Мы видим, что дисперсия потери веса заметно выше для участников программы C по сравнению с двумя другими программами.

Таким образом, имеет смысл то, что тест Левена отклонил нулевую гипотезу о том, что дисперсии равны между тремя группами.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять тест Левена в различных статистических программах:

Как выполнить тест Левена в Excel
Как выполнить тест Левена в Python
Как выполнить тест Левена в SPSS
Как выполнить тест Левена в Stata

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