So führen sie einen brown-forsythe-test in python durch
Eine einfaktorielle ANOVA wird verwendet, um zu bestimmen, ob zwischen den Mittelwerten von drei oder mehr unabhängigen Gruppen ein signifikanter Unterschied besteht oder nicht.
Eine der Annahmen einer einfaktoriellen ANOVA besteht darin, dass die Varianzen der Grundgesamtheiten, aus denen die Stichproben gezogen werden, gleich sind.
Eine der gebräuchlichsten Methoden, dies zu testen, ist die Verwendung eines Brown-Forsythe-Tests , einem statistischen Test, der die folgenden Annahmen verwendet:
- H 0 : Die Varianzen zwischen den Populationen sind gleich.
- H A : Die Unterschiede zwischen den Populationen sind nicht gleich.
Wenn der p-Wert des Tests unter einem bestimmten Signifikanzniveau liegt (z. B. α = 0,05), lehnen wir die Nullhypothese ab und kommen zu dem Schluss, dass die Varianzen zwischen verschiedenen Populationen nicht gleich sind.
Dieses Tutorial bietet ein schrittweises Beispiel für die Durchführung eines Brown-Forsythe-Tests in Python.
Schritt 1: Geben Sie die Daten ein
Angenommen, Forscher möchten wissen, ob drei verschiedene Düngemittel zu unterschiedlichem Pflanzenwachstum führen.
Sie wählen nach dem Zufallsprinzip 30 verschiedene Pflanzen aus und teilen sie in drei Gruppen zu je zehn Pflanzen auf, wobei sie jeder Gruppe einen anderen Dünger hinzufügen. Nach einem Monat messen sie die Höhe jeder Pflanze.
Die folgenden Tabellen zeigen die Höhe der Pflanzen in jeder der drei Gruppen:
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]
Schritt 2: Fassen Sie die Daten zusammen
Bevor wir einen Brown-Forsythe-Test durchführen, können wir die Varianz der Pflanzenmessungen in jeder Gruppe berechnen:
#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
Wir können sehen, dass die Varianzen zwischen den Gruppen unterschiedlich sind, aber um festzustellen, ob diese Unterschiede statistisch signifikant sind, können wir den Brown-Forsythe-Test durchführen.
Schritt 3: Führen Sie den Brown-Forsythe-Test durch
Um einen Brown-Forsythe-Test in Python durchzuführen, können wir die Funktion scipy.stats.levene() verwenden und angeben, dass der Mittelpunkt der Median ist:
import scipy.stats as stats
stats. levene (group1, group2, group3, center=' median ')
LeveneResult(statistic=0.17981072555205047, pvalue=0.8364205218185946)
Aus dem Ergebnis können wir Folgendes beobachten:
- Teststatistik: 0,1798
- p-Wert: 0,8364
Es stellt sich heraus, dass der p-Wert des Tests größer als 0,05 ist, sodass wir die Nullhypothese des Tests nicht ablehnen können.
Die Varianzunterschiede zwischen den Gruppen sind statistisch nicht signifikant.
Nächste Schritte
Wenn wir die Nullhypothese des Brown-Forsythe-Tests nicht ablehnen können, können wir eine einfache ANOVA für die Daten durchführen.
Wenn wir jedoch die Nullhypothese ablehnen, deutet dies darauf hin, dass die Annahme der Varianzgleichheit nicht erfüllt ist. In diesem Fall haben wir zwei Möglichkeiten:
1. Führen Sie trotzdem eine einfaktorielle ANOVA durch.
Es stellt sich heraus, dass eine einfaktorielle ANOVA tatsächlich robust gegenüber ungleichen Varianzen ist, solange die größte Varianz nicht größer als das Vierfache der kleinsten Varianz ist.
In Schritt 2 des obigen Beispiels haben wir festgestellt, dass die kleinste Varianz 7,0 und die größte Varianz 8,69 betrug. Das Verhältnis der größten zur kleinsten Varianz beträgt also 8,69 / 7,0 = 1,24 .
Da dieser Wert kleiner als 4 ist, könnten wir einfach mit der einfaktoriellen ANOVA fortfahren, selbst wenn der Brown-Forsythe-Test anzeigt, dass die Varianzen nicht gleich sind.
2. Führen Sie einen Kruskal-Wallis-Test durch
Wenn das Verhältnis der größten zur kleinsten Varianz größer als 4 ist, kann man sich stattdessen für die Durchführung eines Kruskal-Wallis-Tests entscheiden. Dies wird als nichtparametrisches Äquivalent der einfaktoriellen ANOVA angesehen.
Ein Schritt-für-Schritt-Beispiel für einen Kruskal-Wallis-Test in Python finden Sie hier .