scipy.stats.

ranksums#

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

Berechnet die Wilcoxon-Rangsummen-Statistik für zwei Stichproben.

Der Wilcoxon-Rangsummen-Test prüft die Nullhypothese, dass zwei Messsätze aus derselben Verteilung stammen. Die Alternativhypothese besagt, dass Werte in einer Stichprobe eher größer sind als die Werte in der anderen Stichprobe.

Dieser Test sollte zum Vergleich zweier Stichproben aus kontinuierlichen Verteilungen verwendet werden. Er behandelt keine Gleichstände zwischen Messungen in x und y. Für die Behandlung von Gleichständen und eine optionale Stetigkeitskorrektur siehe scipy.stats.mannwhitneyu.

Parameter:
x,yarray_like

Die Daten aus den beiden Stichproben.

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

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

  • ‘two-sided’: eine der Verteilungen (unterliegend x oder y) ist stochastisch größer als die andere.

  • ‘less’: die Verteilung unterliegend x ist stochastisch kleiner als die Verteilung unterliegend y.

  • ‘greater’: die Verteilung unterliegend x ist stochastisch größer als die Verteilung unterliegend y.

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 unter der Annahme großer Stichproben, dass die Rangsummen-Statistik normalverteilt ist.

pvaluefloat

Der p-Wert des Tests.

Hinweise

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

Beispiele

Wir können die Hypothese testen, dass zwei unabhängige Stichproben ungleicher Größe aus derselben Verteilung gezogen werden, indem wir die Wilcoxon-Rangsummen-Statistik berechnen.

>>> import numpy as np
>>> from scipy.stats import ranksums
>>> rng = np.random.default_rng()
>>> sample1 = rng.uniform(-1, 1, 200)
>>> sample2 = rng.uniform(-0.5, 1.5, 300) # a shifted distribution
>>> ranksums(sample1, sample2)
RanksumsResult(statistic=-7.887059,
               pvalue=3.09390448e-15) # may vary
>>> ranksums(sample1, sample2, alternative='less')
RanksumsResult(statistic=-7.750585297581713,
               pvalue=4.573497606342543e-15) # may vary
>>> ranksums(sample1, sample2, alternative='greater')
RanksumsResult(statistic=-7.750585297581713,
               pvalue=0.9999999999999954) # may vary

Der p-Wert von weniger als 0.05 zeigt an, dass dieser Test die Hypothese auf dem 5%-Signifikanzniveau ablehnt.