scipy.stats.

mood#

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

Führt Moods Test auf gleiche Skalenparameter durch.

Moods zweiseitiger Test auf Skalenparameter ist ein nichtparametrischer Test für die Nullhypothese, dass zwei Stichproben aus derselben Verteilung mit demselben Skalenparameter stammen.

Parameter:
x, yarray_like

Arrays mit Stichprobendaten. Es müssen insgesamt mindestens drei Beobachtungen vorhanden sein.

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.

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

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

  • ‘two-sided’: Die Skalen der zugrundeliegenden Verteilungen von x und y sind unterschiedlich.

  • ‘less’: Die Skala der zugrundeliegenden Verteilung von x ist kleiner als die Skala der zugrundeliegenden Verteilung von y.

  • ‘greater’: Die Skala der zugrundeliegenden Verteilung von x ist größer als die Skala der zugrundeliegenden Verteilung von y.

Hinzugefügt in Version 1.7.0.

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:
resSignificanceResult

Ein Objekt, das Attribute enthält

statisticSkalar oder ndarray

Der z-Score für den Hypothesentest. Bei 1D-Eingaben wird ein Skalar zurückgegeben.

pvalueSkalar ndarray

Der p-Wert für den Hypothesentest.

Siehe auch

fligner

Ein nichtparametrischer Test für die Gleichheit von k Varianzen

ansari

Ein nichtparametrischer Test für die Gleichheit von 2 Varianzen

bartlett

Ein parametrischer Test auf Gleichheit von k Varianzen bei normalverteilten Stichproben

levene

Ein parametrischer Test auf Gleichheit von k Varianzen

Hinweise

Die Daten werden angenommen, dass sie aus Wahrscheinlichkeitsverteilungen f(x) und f(x/s) / s stammen. Die Nullhypothese ist, dass s == 1.

Bei mehrdimensionalen Arrays, wenn die Eingaben die Formen (n0, n1, n2, n3) und (n0, m1, n2, n3) haben, und wenn axis=1, werden die resultierenden z- und p-Werte die Form (n0, n2, n3) haben. Beachten Sie, dass n1 und m1 nicht gleich sein müssen, die anderen Dimensionen jedoch.

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] Mielke, Paul W. „Note on Some Squared Rank Tests with Existing Ties.“

Technometrics, vol. 9, no. 2, 1967, pp. 312-14. JSTOR, https://doi.org/10.2307/1266427. Zugänglich am 18. Mai 2022.

Beispiele

>>> import numpy as np
>>> from scipy import stats
>>> rng = np.random.default_rng()
>>> x2 = rng.standard_normal((2, 45, 6, 7))
>>> x1 = rng.standard_normal((2, 30, 6, 7))
>>> res = stats.mood(x1, x2, axis=1)
>>> res.pvalue.shape
(2, 6, 7)

Finden Sie die Anzahl der Punkte, an denen der Unterschied in der Skala nicht signifikant ist

>>> (res.pvalue > 0.1).sum()
78

Führen Sie den Test mit unterschiedlichen Skalen durch

>>> x1 = rng.standard_normal((2, 30))
>>> x2 = rng.standard_normal((2, 35)) * 10.0
>>> stats.mood(x1, x2, axis=1)
SignificanceResult(statistic=array([-5.76174136, -6.12650783]),
                   pvalue=array([8.32505043e-09, 8.98287869e-10]))