scipy.stats.

median_test#

scipy.stats.median_test(*samples, ties='below', correction=True, lambda_=1, nan_policy='propagate')[Quelle]#

Führt einen Mood’s Median-Test durch.

Testet, ob zwei oder mehr Stichproben aus Populationen mit demselben Median stammen.

Sei n = len(samples) die Anzahl der Stichproben. Der „Gesamtmedian“ aller Daten wird berechnet, und eine Kontingenztafel wird gebildet, indem die Werte in jeder Stichprobe als oberhalb oder unterhalb des Gesamtmedians klassifiziert werden. Die Kontingenztafel wird zusammen mit correction und lambda_ an scipy.stats.chi2_contingency übergeben, um die Teststatistik und den p-Wert zu berechnen.

Parameter:
stichprobe1, stichprobe2, …array_like

Die Menge der Stichproben. Es müssen mindestens zwei Stichproben vorhanden sein. Jede Stichprobe muss eine eindimensionale Sequenz mit mindestens einem Wert sein. Die Stichproben müssen nicht die gleiche Länge haben.

tiesstr, optional

Bestimmt, wie Werte, die gleich dem Gesamtmedian sind, in der Kontingenztafel klassifiziert werden. Der String muss einer der folgenden sein

"below":
    Values equal to the grand median are counted as "below".
"above":
    Values equal to the grand median are counted as "above".
"ignore":
    Values equal to the grand median are not counted.

Der Standardwert ist „below“.

correctionbool, optional

Wenn True und es nur zwei Stichproben gibt, wird die Yates’ Korrektur für Stetigkeit bei der Berechnung der Teststatistik, die mit der Kontingenztafel verbunden ist, angewendet. Standard ist True.

lambda_float oder str, optional

Standardmäßig ist die in diesem Test berechnete Statistik die Chi-Quadrat-Statistik nach Pearson. lambda_ ermöglicht stattdessen die Verwendung einer Statistik aus der Cressie-Read-Potenzdivergenz-Familie. Details finden Sie unter power_divergence. Standard ist 1 (Chi-Quadrat-Statistik nach Pearson).

nan_policy{‘propagate’, ‘raise’, ‘omit’}, optional

Definiert, wie mit vorhandenen NaN-Werten umgegangen wird. „propagate“ gibt NaN zurück, „raise“ löst einen Fehler aus, „omit“ führt die Berechnungen unter Ignorierung von NaN-Werten durch. Standard ist „propagate“.

Rückgabe:
resMedianTestResult

Ein Objekt, das Attribute enthält

statisticfloat

Die Teststatistik. Die zurückgegebene Statistik wird durch lambda_ bestimmt. Standardmäßig ist dies die Chi-Quadrat-Statistik nach Pearson.

pvaluefloat

Der p-Wert des Tests.

medianfloat

Der Gesamtmedian.

tablendarray

Die Kontingenztafel. Die Form der Tabelle ist (2, n), wobei n die Anzahl der Stichproben ist. Die erste Zeile enthält die Zählungen der Werte oberhalb des Gesamtmedians und die zweite Zeile die Zählungen der Werte unterhalb des Gesamtmedians. Die Tabelle ermöglicht weitere Analysen, z. B. mit scipy.stats.chi2_contingency oder mit scipy.stats.fisher_exact, wenn es zwei Stichproben gibt, ohne die Tabelle neu berechnen zu müssen. Wenn nan_policy „propagate“ ist und NaN im Eingabewert vorhanden sind, ist der Rückgabewert für table None.

Siehe auch

kruskal

Berechnet den Kruskal-Wallis H-Test für unabhängige Stichproben.

mannwhitneyu

Berechnet den Mann-Whitney-Rangtest für die Stichproben x und y.

Hinweise

Hinzugefügt in Version 0.15.0.

Referenzen

[1]

Mood, A. M., Introduction to the Theory of Statistics. McGraw-Hill (1950), S. 394-399.

[2]

Zar, J. H., Biostatistical Analysis, 5. Aufl. Prentice Hall (2010). Siehe Abschnitte 8.12 und 10.15.

Beispiele

Ein Biologe führt ein Experiment durch, bei dem es drei Pflanzengruppen gibt. Gruppe 1 hat 16 Pflanzen, Gruppe 2 hat 15 Pflanzen und Gruppe 3 hat 17 Pflanzen. Jede Pflanze produziert eine Anzahl von Samen. Die Samenzählungen für jede Gruppe sind

Group 1: 10 14 14 18 20 22 24 25 31 31 32 39 43 43 48 49
Group 2: 28 30 31 33 34 35 36 40 44 55 57 61 91 92 99
Group 3:  0  3  9 22 23 25 25 33 34 34 40 45 46 48 62 67 84

Der folgende Code wendet den Mood’s Median-Test auf diese Stichproben an.

>>> g1 = [10, 14, 14, 18, 20, 22, 24, 25, 31, 31, 32, 39, 43, 43, 48, 49]
>>> g2 = [28, 30, 31, 33, 34, 35, 36, 40, 44, 55, 57, 61, 91, 92, 99]
>>> g3 = [0, 3, 9, 22, 23, 25, 25, 33, 34, 34, 40, 45, 46, 48, 62, 67, 84]
>>> from scipy.stats import median_test
>>> res = median_test(g1, g2, g3)

Der Median ist

>>> res.median
34.0

und die Kontingenztafel ist

>>> res.table
array([[ 5, 10,  7],
       [11,  5, 10]])

p ist zu groß, um zu schlussfolgern, dass die Mediane nicht gleich sind

>>> res.pvalue
0.12609082774093244

Der „G-Test“ kann durchgeführt werden, indem lambda_="log-likelihood" an median_test übergeben wird.

>>> res = median_test(g1, g2, g3, lambda_="log-likelihood")
>>> res.pvalue
0.12224779737117837

Der Median tritt mehrmals in den Daten auf, daher erhalten wir ein anderes Ergebnis, wenn zum Beispiel ties="above" verwendet wird

>>> res = median_test(g1, g2, g3, ties="above")
>>> res.pvalue
0.063873276069553273
>>> res.table
array([[ 5, 11,  9],
       [11,  4,  8]])

Dieses Beispiel zeigt, dass der p-Wert, wenn der Datensatz nicht groß ist und Werte gleich dem Median vorhanden sind, empfindlich auf die Wahl von ties reagieren kann.