shapiro#
- scipy.stats.shapiro(x, *, axis=None, nan_policy='propagate', keepdims=False)[Quellcode]#
Führt den Shapiro-Wilk-Test auf Normalverteilung durch.
Der Shapiro-Wilk-Test prüft die Nullhypothese, dass die Daten aus einer Normalverteilung stammen.
- Parameter:
- xarray_like
Array von Stichprobendaten. Muss mindestens drei Beobachtungen enthalten.
- axisint oder None, Standard: None
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 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:
- statisticfloat
Die Teststatistik.
- p-Wertfloat
Der p-Wert für den Hypothesentest.
Siehe auch
andersonDer Anderson-Darling-Test auf Normalverteilung
kstestDer Kolmogorov-Smirnov-Test auf Anpassungsgüte.
- Shapiro-Wilk-Test auf Normalität
Erweitertes Beispiel
Hinweise
Der verwendete Algorithmus wird in [4] beschrieben, aber die dort genannten Zensurparameter sind nicht implementiert. Für N > 5000 ist die W-Teststatistik genau, aber der p-Wert ist möglicherweise nicht.
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
[2]Shapiro, S. S. & Wilk, M.B, „An analysis of variance test for normality (complete samples)“, Biometrika, 1965, Vol. 52, S. 591-611, DOI:10.2307/2333709
[3]Razali, N. M. & Wah, Y. B., „Power comparisons of Shapiro-Wilk, Kolmogorov-Smirnov, Lilliefors and Anderson-Darling tests“, Journal of Statistical Modeling and Analytics, 2011, Vol. 2, S. 21-33.
[4]Royston P., „Remark AS R94: A Remark on Algorithm AS 181: The W-test for Normality“, 1995, Applied Statistics, Vol. 44, DOI:10.2307/2986146
Beispiele
>>> import numpy as np >>> from scipy import stats >>> rng = np.random.default_rng() >>> x = stats.norm.rvs(loc=5, scale=3, size=100, random_state=rng) >>> shapiro_test = stats.shapiro(x) >>> shapiro_test ShapiroResult(statistic=0.9813305735588074, pvalue=0.16855233907699585) >>> shapiro_test.statistic 0.9813305735588074 >>> shapiro_test.pvalue 0.16855233907699585
Ein detaillierteres Beispiel finden Sie unter Shapiro-Wilk-Test auf Normalverteilung.