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


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

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

Пример: тест Левена в Python

Исследователи хотят знать, приводят ли три разных удобрения к разным уровням роста растений. Они случайным образом выбирают 30 разных растений и делят их на три группы по 10 штук, применяя к каждой группе разные удобрения. В конце месяца измеряют высоту каждого растения.

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

Шаг 1: Введите данные.

Во-первых, мы создадим три массива для хранения значений данных:

group1 = [7, 14, 14, 13, 12, 9, 6, 14, 12, 8]
group2 = [15, 17, 13, 15, 15, 13, 9, 12, 10, 8]
group3 = [6, 8, 8, 9, 5, 14, 13, 8, 10, 9]

Шаг 2: Проведите тест Левена.

Далее мы выполним тест Левена, используя функцию levene() из библиотеки SciPy, которая использует следующий синтаксис:

levene (образец1, образец2, …, центр = 'медиана')

куда:

  • sample1, sample2 и т. д.: названия сэмплов.
  • в центре: метод, используемый для теста Левена. По умолчанию используется «медиана», но другие варианты включают «среднее» и «усеченное».

Как упоминалось в документации , на самом деле существует три различных варианта теста Левена, которые вы можете использовать. Рекомендуемые варианты использования следующие:

  • «медиана»: рекомендуется для асимметричных распределений.
  • «среднее»: рекомендуется для симметричных распределений со средними хвостами.
  • «обрезанный»: рекомендуется для распределений с тяжелыми хвостами.

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

import scipy.stats as stats

#Levene's test centered at the median
stats.levene(group1, group2, group3, center='median')

(statistic=0.1798, pvalue=0.8364)

#Levene's test centered at the mean
stats.levene(group1, group2, group3, center='mean')

(statistic=0.5357, pvalue=0.5914)

В обоих методах p-значение составляет не менее 0,05. Это означает, что в обоих случаях мы не смогли бы отвергнуть нулевую гипотезу. Это означает, что у нас нет достаточных доказательств того, что различия в росте растений между тремя удобрениями значительно различаются.

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