Ein Mann-Kendall-Trendtest wird verwendet, um festzustellen, ob in Zeitreihendaten ein Trend vorhanden ist oder nicht. Es ist ein nichtparametrischer Test, was bedeutet, dass keine zugrunde liegende Annahme über die Normalität …
Eine einfaktorielle ANOVA wird verwendet, um zu bestimmen, ob es einen signifikanten Unterschied zwischen den Mittelwerten von drei oder mehr unabhängigen Gruppen gibt oder nicht.
Eine der Annahmen einer einfaktorielle ANOVA ist, dass die Varianzen der Populationen, aus denen die Stichproben stammen, gleich sind.
Eine der häufigsten Methoden, um dies zu testen, ist die Verwendung eines Brown-Forsythe-Tests, bei dem es sich um einen statistischen Test handelt, bei dem die folgenden Hypothesen verwendet werden:
- H 0: Die Varianzen zwischen den Populationen sind gleich.
- H A: Die Varianzen zwischen den Populationen sind nicht gleich.
Wenn der p-Wert des Tests unter einem Signifikanzniveau liegt (z. B. α = 0,05), lehnen wir die Nullhypothese ab und schließen daraus, dass die Varianzen zwischen den verschiedenen Populationen nicht gleich sind.
Dieses Tutorial enthält ein schrittweises Beispiel für die Durchführung eines Brown-Forsythe-Tests in Python.
Schritt 1: Geben Sie die Daten ein
Angenommen, die Forscher möchten wissen, ob drei verschiedene Düngemittel zu unterschiedlichem Pflanzenwachstum führen.
Sie wählen zufällig 30 verschiedene Pflanzen aus und teilen sie in drei 10er-Gruppen auf, wobei sie jeder Gruppe einen anderen Dünger zuführen. Am Ende eines Monats messen sie die Höhe jeder Pflanze.
Die folgenden Arrays 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
# Berechnen Sie die Varianz der Pflanzenmessungen in jeder Gruppe
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 das Zentrum als Median angeben:
import scipy.stats as stats
stats.levene(group1, group2, group3, center='median')
LeveneResult(statistic=0.17981072555205047, pvalue=0.8364205218185946)
Aus der Ausgabe können wir Folgendes beobachten:
- Teststatistik: 0,1798
- p-Wert: 0,8364
Der p-Wert des Tests ist größer als 0,05, daher können wir die Nullhypothese des Tests nicht ablehnen.
Die Unterschiede in den Varianzen zwischen den Gruppen sind statistisch nicht signifikant.
Nächste Schritte
Wenn wir die Nullhypothese des Brown-Forsythe-Tests nicht ablehnen, können wir eine einfaktorielle ANOVA für die Daten durchführen.
Wenn wir jedoch die Nullhypothese ablehnen, deutet dies darauf hin, dass die Annahme gleicher Varianzen verletzt wird. In diesem Fall haben wir zwei Möglichkeiten:
1. Fahren Sie trotzdem mit einer einfaktorielle ANOVA fort.
Es stellt sich heraus, dass eine einfaktorielle ANOVA tatsächlich gegenüber ungleichen Varianzen robust ist, solange die größte Varianz nicht größer als das Vierfache der kleinsten Varianz ist.
In Schritt 2 aus dem obigen Beispiel haben wir festgestellt, dass die kleinste Varianz 7,0 und die größte Varianz 8,69 betrug. Somit beträgt das Verhältnis der größten zur kleinsten Varianz 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 ergab, dass die Varianzen nicht gleich waren.
2. Führen Sie einen Kruskal-Wallis-Test durch
Wenn das Verhältnis der größten Varianz zur kleinsten Varianz größer als 4 ist, können wir stattdessen einen Kruskal-Wallis-Test durchführen. Dies wird als nicht parametrisches Äquivalent zur einfaktorielle ANOVA angesehen.
Ein schrittweises Beispiel für einen Kruskal-Wallis-Test in Python finden Sie hier.
So führen Sie einen Mann-Kendall-Trendtest in Python durch
So führen Sie einen Chow-Test in Python durch
Ein Chow-Test wird verwendet, um zu testen, ob die Koeffizienten in zwei verschiedenen Regressionsmodellen auf verschiedenen Datensätzen gleich sind.
Dieser Test wird typischerweise im Bereich der Ökonometrie mit Zeitreihendaten verwendet …