scipy.stats.

levene#

scipy.stats.levene(*samples, center='median', proportiontocut=0.05, axis=0, nan_policy='propagate', keepdims=False)[Quelle]#

Führt den Levene-Test auf gleiche Varianzen durch.

Der Levene-Test testet die Nullhypothese, dass alle Eingabestichproben aus Populationen mit gleichen Varianzen stammen. Der Levene-Test ist eine Alternative zum Bartlett-Test bartlett in dem Fall, dass signifikante Abweichungen von der Normalverteilung vorliegen.

Parameter:
stichprobe1, stichprobe2, …array_like

Die Stichprobendaten, möglicherweise mit unterschiedlichen Längen. Nur eindimensionale Stichproben sind zulässig.

center{‘mean’, ‘median’, ‘trimmed’}, optional

Welche Funktion der Daten im Test verwendet werden soll. Der Standardwert ist ‘median’.

proportiontocutfloat, optional

Wenn center ‘trimmed’ ist, gibt dies den Anteil der Datenpunkte an, die von jedem Ende abgeschnitten werden sollen. (Siehe scipy.stats.trim_mean.) Der Standardwert ist 0,05.

axisint oder None, Standard: 0

Wenn es sich um eine ganze Zahl handelt, ist dies die Achse des Eingabearrays, entlang der die Statistik berechnet wird. Die Statistik jedes Achsen-Slices (z. B. Zeile) der Eingabe erscheint dann in einem entsprechenden Element der Ausgabe. Wenn None, wird die Eingabe vor der Berechnung der Statistik geglättet.

nan_policy{‘propagate’, ‘omit’, ‘raise’}

Definiert, wie Eingabe-NaNs behandelt werden.

  • propagate: Wenn ein NaN in der Achsen-Slice (z. B. Zeile) vorhanden ist, entlang der die Statistik berechnet wird, wird der entsprechende Eintrag der Ausgabe NaN sein.

  • omit: NaNs werden bei der Berechnung weggelassen. Wenn im Achsen-Slice, entlang dem die Statistik berechnet wird, nicht genügend Daten verbleiben, wird der entsprechende Eintrag der Ausgabe NaN sein.

  • raise: Wenn ein NaN vorhanden ist, wird ein ValueError ausgelöst.

keepdimsbool, Standard: False

Wenn dies auf True gesetzt ist, bleiben die reduzierten Achsen im Ergebnis als Dimensionen mit der Größe eins erhalten. Mit dieser Option wird das Ergebnis korrekt gegen das Eingabearray gestreut (broadcasted).

Rückgabe:
statisticfloat

Die Teststatistik.

pvaluefloat

Der p-Wert für den Test.

Siehe auch

fligner

Ein nichtparametrischer Test für die Gleichheit von k Varianzen

bartlett

Ein parametrischer Test auf Gleichheit von k Varianzen bei normalverteilten Stichproben

Levene-Test für gleiche Varianzen

Erweitertes Beispiel

Hinweise

Es sind drei Varianten des Levene-Tests möglich. Die Möglichkeiten und ihre empfohlenen Verwendungen sind

  • ‘median’ : Empfohlen für schiefe (nicht-normalverteilte) Verteilungen>

  • ‘mean’ : Empfohlen für symmetrische Verteilungen mit moderaten Rändern.

  • ‘trimmed’ : Empfohlen für Verteilungen mit dicken Rändern.

Die Testversion mit dem Mittelwert wurde im Originalartikel von Levene ([2]) vorgeschlagen, während der Median und der getrimmte Mittelwert von Brown und Forsythe ([3]) untersucht wurden, was manchmal auch als Brown-Forsythe-Test bezeichnet wird.

Seit SciPy 1.9 werden np.matrix-Eingaben (für neuen Code nicht empfohlen) vor der Berechnung in np.ndarray konvertiert. In diesem Fall ist die Ausgabe eine Skalar- oder np.ndarray mit geeigneter Form anstelle eines 2D-np.matrix. Ebenso werden, während maskierte Elemente von Masked Arrays ignoriert werden, die Ausgabe eine Skalar- oder np.ndarray anstelle eines Masked Arrays mit mask=False sein.

Referenzen

[2]

Levene, H. (1960). In Contributions to Probability and Statistics: Essays in Honor of Harold Hotelling, I. Olkin et al. eds., Stanford University Press, S. 278-292.

[3]

Brown, M. B. und Forsythe, A. B. (1974), Journal of the American Statistical Association, 69, 364-367

Beispiele

Prüft, ob die Listen a, b und c aus Populationen mit gleichen Varianzen stammen.

>>> import numpy as np
>>> from scipy import stats
>>> a = [8.88, 9.12, 9.04, 8.98, 9.00, 9.08, 9.01, 8.85, 9.06, 8.99]
>>> b = [8.88, 8.95, 9.29, 9.44, 9.15, 9.58, 8.36, 9.18, 8.67, 9.05]
>>> c = [8.95, 9.12, 8.95, 8.85, 9.03, 8.84, 9.07, 8.98, 8.86, 8.98]
>>> stat, p = stats.levene(a, b, c)
>>> p
0.002431505967249681

Der kleine p-Wert deutet darauf hin, dass die Populationen keine gleichen Varianzen haben.

Dies ist nicht überraschend, da die Stichprobenvarianz von b deutlich größer ist als die von a und c.

>>> [np.var(x, ddof=1) for x in [a, b, c]]
[0.007054444444444413, 0.13073888888888888, 0.008890000000000002]

Ein detaillierteres Beispiel finden Sie unter Levene-Test auf gleiche Varianzen.