Як виконати тест брауна-форсайта в python


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

Одне з припущень одностороннього дисперсійного аналізу полягає в тому, що дисперсії популяцій, з яких відбираються зразки, рівні.

Одним із найпоширеніших способів перевірити це є використання тесту Брауна-Форсайта , який є статистичним тестом, який використовує такі припущення :

  • H 0 : дисперсії між популяціями рівні.
  • H A : Відмінності між популяціями неоднакові.

Якщо p-значення тесту нижче певного рівня значущості (наприклад, α = 0,05), тоді ми відхиляємо нульову гіпотезу та робимо висновок, що дисперсії не однакові між різними сукупностями.

Цей підручник надає покроковий приклад того, як виконати тест Брауна-Форсайта в Python.

Крок 1: Введіть дані

Припустімо, дослідники хочуть знати, чи призводять три різні добрива до різних рівнів росту рослин.

Вони випадковим чином вибирають 30 різних рослин і ділять їх на три групи по 10 рослин, вносячи в кожну групу різні добрива. Через місяць вимірюють висоту кожної рослини.

У наступних таблицях показано висоту рослин у кожній із трьох груп:

 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: Узагальніть дані

Перед виконанням тесту Брауна-Форсайта ми можемо розрахувати дисперсію вимірювань рослин у кожній групі:

 #import numpy
import numpy as np

#calculate variance of plant measurements in each group
print (np. var (group1), np. var (group2), np. var (group3))

8.69 7.81 7.0

Ми бачимо, що дисперсії між групами відрізняються, але щоб визначити, чи ці відмінності є статистично значущими , ми можемо виконати тест Брауна-Форсайта.

Крок 3: Виконайте тест Брауна-Форсайта

Щоб виконати тест Брауна-Форсайта в Python, ми можемо використати функцію scipy.stats.levene() і вказати, що центр є медіаною :

 import scipy.stats as stats

stats. levene (group1, group2, group3, center=' median ')

LeveneResult(statistic=0.17981072555205047, pvalue=0.8364205218185946)

З результату можна помітити наступне:

  • Статистика тесту: 0,1798
  • p-значення: 0,8364

P-значення тесту виявляється більшим за 0,05, тому ми не можемо відхилити нульову гіпотезу тесту.

Відмінності в дисперсіях між групами не є статистично значущими.

Наступні кроки

Якщо нам не вдається відхилити нульову гіпотезу тесту Брауна-Форсайта, ми можемо виконати односторонній дисперсійний аналіз даних.

Однак якщо ми відхиляємо нульову гіпотезу, це означає, що припущення про рівність дисперсій не виконується. У цьому випадку у нас є два варіанти:

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

Виявляється, односторонній дисперсійний аналіз фактично стійкий до нерівних дисперсій, якщо найбільша дисперсія не перевищує найменшу дисперсію в 4 рази.

На кроці 2 прикладу вище ми виявили, що найменша дисперсія становила 7,0, а найбільша – 8,69. Таким чином, співвідношення найбільшої дисперсії до найменшої становить 8,69/7,0 = 1,24 .

Оскільки це значення менше 4, ми могли б просто продовжити односторонній дисперсійний аналіз, навіть якщо тест Брауна-Форсайта показав, що дисперсії не рівні.

2. Виконайте тест Крускала-Уолліса

Якщо відношення найбільшої дисперсії до найменшої дисперсії перевищує 4, замість цього можна вибрати тест Краскела-Уолліса . Це вважається непараметричним еквівалентом одностороннього дисперсійного аналізу.

Ви можете знайти покроковий приклад тесту Крускала-Уолліса в Python тут .

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *