scipy.stats.

ansari#

scipy.stats.ansari(x, y, alternative='two-sided', *, axis=0, nan_policy='propagate', keepdims=False)[Quelle]#

Führt den Ansari-Bradley-Test auf gleiche Skalenparameter durch.

Der Ansari-Bradley-Test ([1], [2]) ist ein nichtparametrischer Test für die Gleichheit des Skalenparameters der Verteilungen, aus denen zwei Stichproben gezogen wurden. Die Nullhypothese besagt, dass das Verhältnis der Skalen der Verteilung, die x zugrunde liegt, zur Skala der Verteilung, die y zugrunde liegt, 1 ist.

Parameter:
x, yarray_like

Arrays von Stichprobendaten.

alternative{‘zweiseitig’, ‘kleiner’, ‘größer’}, optional

Definiert die Alternativhypothese. Standard ist ‘zweiseitig’. Folgende Optionen sind verfügbar

  • ‘two-sided’: Das Verhältnis der Skalen ist nicht gleich 1.

  • ‘less’: Das Verhältnis der Skalen ist kleiner als 1.

  • ‘greater’: Das Verhältnis der Skalen ist größer als 1.

Hinzugefügt in Version 1.7.0.

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

pvaluefloat

Der p-Wert des Hypothesentests.

Siehe auch

fligner

Ein nichtparametrischer Test für die Gleichheit von k Varianzen

mood

Ein nichtparametrischer Test auf Gleichheit zweier Skalenparameter

Hinweise

Der angegebene p-Wert ist exakt, wenn die Stichprobengrößen beide kleiner als 55 sind und keine Bindungen auftreten, andernfalls wird eine Normalapproximation für den p-Wert verwendet.

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

[1]

Ansari, A. R. and Bradley, R. A. (1960) Rank-sum tests for dispersions, Annals of Mathematical Statistics, 31, 1174-1189.

[2]

Sprent, Peter and N.C. Smeeton. Applied nonparametric statistical methods. 3rd ed. Chapman and Hall/CRC. 2001. Abschnitt 5.8.2.

[3]

Nathaniel E. Helwig „Nonparametric Dispersion and Equality Tests“ unter http://users.stat.umn.edu/~helwig/notes/npde-Notes.pdf

Beispiele

>>> import numpy as np
>>> from scipy.stats import ansari
>>> rng = np.random.default_rng()

Für diese Beispiele erstellen wir drei zufällige Datensätze. Die ersten beiden mit den Größen 35 und 25 werden aus einer Normalverteilung mit Mittelwert 0 und Standardabweichung 2 gezogen. Der dritte Datensatz hat die Größe 25 und wird aus einer Normalverteilung mit Standardabweichung 1,25 gezogen.

>>> x1 = rng.normal(loc=0, scale=2, size=35)
>>> x2 = rng.normal(loc=0, scale=2, size=25)
>>> x3 = rng.normal(loc=0, scale=1.25, size=25)

Zuerst wenden wir ansari auf x1 und x2 an. Diese Stichproben werden aus derselben Verteilung gezogen, daher erwarten wir, dass der Ansari-Bradley-Test uns nicht zu dem Schluss führt, dass die Skalen der Verteilungen unterschiedlich sind.

>>> ansari(x1, x2)
AnsariResult(statistic=541.0, pvalue=0.9762532927399098)

Bei einem p-Wert nahe 1 können wir keinen signifikanten Unterschied in den Skalen feststellen (wie erwartet).

Wenden Sie den Test nun auf x1 und x3 an

>>> ansari(x1, x3)
AnsariResult(statistic=425.0, pvalue=0.0003087020407974518)

Die Wahrscheinlichkeit, einen so extremen Wert der Statistik unter der Nullhypothese gleicher Skalen zu beobachten, beträgt nur 0,03087 %. Dies nehmen wir als Beweis gegen die Nullhypothese zugunsten der Alternativhypothese: Die Skalen der Verteilungen, aus denen die Stichproben gezogen wurden, sind nicht gleich.

Wir können den Parameter alternative verwenden, um einen einseitigen Test durchzuführen. Im obigen Beispiel ist die Skala von x1 größer als die von x3, und daher ist das Verhältnis der Skalen von x1 und x3 größer als 1. Das bedeutet, dass der p-Wert, wenn alternative='greater' gesetzt ist, nahe 0 sein sollte und wir daher die Nullhypothese ablehnen können

>>> ansari(x1, x3, alternative='greater')
AnsariResult(statistic=425.0, pvalue=0.0001543510203987259)

Wie wir sehen, ist der p-Wert tatsächlich ziemlich niedrig. Die Verwendung von alternative='less' sollte daher einen großen p-Wert ergeben

>>> ansari(x1, x3, alternative='less')
AnsariResult(statistic=425.0, pvalue=0.9998643258449039)