kendalltau#
- scipy.stats.kendalltau(x, y, *, nan_policy='propagate', method='auto', variant='b', alternative='two-sided', axis=None, keepdims=False)[Quelle]#
Berechnet Kendalls Tau, ein Korrelationsmaß für ordinale Daten.
Kendalls Tau ist ein Maß für die Übereinstimmung zwischen zwei Ranglisten. Werte nahe 1 deuten auf starke Übereinstimmung hin, und Werte nahe -1 deuten auf starke Uneinigkeit hin. Dies implementiert zwei Varianten von Kendalls Tau: Tau-b (die Standardeinstellung) und Tau-c (auch bekannt als Stuarts Tau-c). Diese unterscheiden sich nur in ihrer Normalisierung, um im Bereich von -1 bis 1 zu liegen; die Hypothesentests (ihre p-Werte) sind identisch. Kendalls ursprüngliches Tau-a wird nicht separat implementiert, da sowohl Tau-b als auch Tau-c bei fehlenden Bindungen zu Tau-a werden.
- Parameter:
- x, yarray_like
Arrays von Ranglisten gleicher Form. Wenn die Arrays nicht 1-D sind, werden sie auf 1-D abgeflacht.
- 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.
- method{‘auto’, ‘asymptotic’, ‘exact’}, optional
Definiert, welche Methode zur Berechnung des p-Werts verwendet wird [5]. Die folgenden Optionen sind verfügbar (Standard ist 'auto')
'auto': wählt die geeignete Methode basierend auf einem Kompromiss zwischen Geschwindigkeit und Genauigkeit
'asymptotic': verwendet eine Normalnäherung, die für große Stichproben gültig ist
'exact': berechnet den exakten p-Wert, kann aber nur verwendet werden, wenn keine Bindungen vorhanden sind. Mit zunehmender Stichprobengröße kann die 'exakte' Berechnungszeit wachsen und das Ergebnis kann an Genauigkeit verlieren.
- variant{'b', 'c'}, optional
Definiert, welche Variante von Kendalls Tau zurückgegeben wird. Standard ist 'b'.
- alternative{‘zweiseitig’, ‘kleiner’, ‘größer’}, optional
Definiert die Alternativhypothese. Standard ist ‘zweiseitig’. Folgende Optionen sind verfügbar
'two-sided': die Rangkorrelation ist nicht null
'less': die Rangkorrelation ist negativ (kleiner als null)
'greater': die Rangkorrelation ist positiv (größer als null)
- 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.- 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
- statisticfloat
Die Tau-Statistik.
- pvaluefloat
Der p-Wert für einen Hypothesentest, dessen Nullhypothese eine Abwesenheit von Assoziation ist, tau = 0.
- Löst aus:
- ValueError
Wenn nan_policy 'omit' ist und variant nicht 'b' ist oder wenn method 'exact' ist und Bindungen zwischen x und y vorhanden sind.
Siehe auch
spearmanrBerechnet einen Spearman-Rangkorrelationskoeffizienten.
theilslopesBerechnet den Theil-Sen-Schätzer für eine Menge von Punkten (x, y).
weightedtauBerechnet eine gewichtete Version von Kendalls Tau.
- Kendalls Tau-Test
Erweitertes Beispiel
Hinweise
Die verwendete Definition von Kendalls Tau ist [2]
tau_b = (P - Q) / sqrt((P + Q + T) * (P + Q + U)) tau_c = 2 (P - Q) / (n**2 * (m - 1) / m)
wobei P die Anzahl der konkordanten Paare, Q die Anzahl der diskordanten Paare, T die Anzahl der nur in x gebundenen Paare und U die Anzahl der nur in y gebundenen Paare ist. Wenn eine Bindung für dasselbe Paar sowohl in x als auch in y auftritt, wird sie weder zu T noch zu U addiert. n ist die Gesamtzahl der Stichproben und m ist die Anzahl der eindeutigen Werte entweder in x oder in y, je nachdem, welcher Wert kleiner ist.
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]Maurice G. Kendall, „A New Measure of Rank Correlation“, Biometrika Vol. 30, No. 1/2, S. 81-93, 1938.
[2]Maurice G. Kendall, „The treatment of ties in ranking problems“, Biometrika Vol. 33, No. 3, S. 239-251. 1945.
[3]Gottfried E. Noether, „Elements of Nonparametric Statistics“, John Wiley & Sons, 1967.
[4]Peter M. Fenwick, „A new data structure for cumulative frequency tables“, Software: Practice and Experience, Vol. 24, No. 3, S. 327-336, 1994.
[5]Maurice G. Kendall, „Rank Correlation Methods“ (4. Auflage), Charles Griffin & Co., 1970.
Beispiele
>>> from scipy import stats >>> x1 = [12, 2, 1, 12, 2] >>> x2 = [1, 4, 7, 1, 0] >>> res = stats.kendalltau(x1, x2) >>> res.statistic -0.47140452079103173 >>> res.pvalue 0.2827454599327748
Ein detaillierteres Beispiel finden Sie unter Kendalls Tau-Test.