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 einValueErrorausgelö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
Hinweise
Die Daten werden angenommen, dass sie aus Wahrscheinlichkeitsverteilungen
f(x)undf(x/s) / sstammen. Die Nullhypothese ist, dasss == 1.Bei mehrdimensionalen Arrays, wenn die Eingaben die Formen
(n0, n1, n2, n3)und(n0, m1, n2, n3)haben, und wennaxis=1, werden die resultierenden z- und p-Werte die Form(n0, n2, n3)haben. Beachten Sie, dassn1undm1nicht 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 innp.ndarraykonvertiert. In diesem Fall ist die Ausgabe eine Skalar- odernp.ndarraymit geeigneter Form anstelle eines 2D-np.matrix. Ebenso werden, während maskierte Elemente von Masked Arrays ignoriert werden, die Ausgabe eine Skalar- odernp.ndarrayanstelle eines Masked Arrays mitmask=Falsesein.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]))