scipy.stats.

bartlett#

scipy.stats.bartlett(*samples, axis=0, nan_policy='propagate', keepdims=False)[Quellcode]#

Führt Bartletts Test auf gleiche Varianzen durch.

Bartletts Test testet die Nullhypothese, dass alle Eingabestichproben aus Populationen mit gleichen Varianzen stammen. Für Stichproben aus signifikant nicht-normalen Populationen ist Levines Test levene robuster.

Parameter:
stichprobe1, stichprobe2, …array_like

Arrays mit Stichprobendaten. Nur 1D-Arrays sind akzeptiert, sie können unterschiedliche Längen haben.

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 des Tests.

Siehe auch

fligner

Ein nichtparametrischer Test für die Gleichheit von k Varianzen

levene

Ein robuster parametrischer Test für die Gleichheit von k Varianzen

Bartlett-Test für gleiche Varianzen

Erweitertes Beispiel

Hinweise

Conover et al. (1981) untersuchen viele der bestehenden parametrischen und nicht-parametrischen Tests durch umfangreiche Simulationen und kommen zu dem Schluss, dass die von Fligner und Killeen (1976) sowie Levene (1960) vorgeschlagenen Tests in Bezug auf Robustheit gegenüber Abweichungen von der Normalität und Aussagekraft überlegen erscheinen ([3]).

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]

Snedecor, George W. und Cochran, William G. (1989), Statistical Methods, Eighth Edition, Iowa State University Press.

[3]

Park, C. und Lindsay, B. G. (1999). Robust Scale Estimation and Hypothesis Testing based on Quadratic Inference Function. Technical Report #99-03, Center for Likelihood Studies, Pennsylvania State University.

[4]

Bartlett, M. S. (1937). Properties of Sufficiency and Statistical Tests. Proceedings of the Royal Society of London. Series A, Mathematical and Physical Sciences, Vol. 160, No.901, pp. 268-282.

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.bartlett(a, b, c)
>>> p
1.1254782518834628e-05

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

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]

Für ein detaillierteres Beispiel siehe Bartletts Test für gleiche Varianzen.