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_ anscipy.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_contingencyoder mitscipy.stats.fisher_exact, wenn es zwei Stichproben gibt, ohne die Tabelle neu berechnen zu müssen. Wennnan_policy„propagate“ ist und NaN im Eingabewert vorhanden sind, ist der Rückgabewert fürtableNone.
Siehe auch
kruskalBerechnet den Kruskal-Wallis H-Test für unabhängige Stichproben.
mannwhitneyuBerechnet 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"anmedian_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.