Ein Index, der die Korrelation zwischen zwei Rangdaten zeigt. Einzelheiten entnehmen Sie bitte der unten stehenden URL. Wiki: [Spearman-Rangkorrelationskoeffizient](https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%94%E3%82%A2%E3%83%9E%E3%83 % B3% E3% 81% AE% E9% A0% 86% E4% BD% 8D% E7% 9B% B8% E9% 96% A2% E4% BF% 82% E6% 95% B0) Toki no Mori Wiki: [Spearman-Rangkorrelationskoeffizient](http://ibisforest.org/index.php?Spearman%E9%A0%86%E4%BD%8D%E7%9B%B8%E9%96%A2 % E4% BF% 82% E6% 95% B0)
Es gibt verschiedene Formeln, aber dieses Mal werden wir diese Formel verwenden.
Ich denke auch, dass Sie die unter der folgenden URL verwenden sollten, um die Antworten des erstellten Programms abzugleichen. Der Rangkorrelationskoeffizient ist berühmt. Wenn Sie ihn also nachschlagen, können Sie andere Stichproben finden. Einführung in die Rangkorrelationskoeffizientenstatistik von Spearman
spearman.py
def spearman(list_a, list_b):
N = len(list_a)
return 1 - ((6 * sum(map(lambda a, b: (a - b) ** 2, \
list_a, list_b) / float(N ** 3 - N) )
Sie können einfach so rechnen. Das Argument "Liste" erzeugt eine Folge von Zahlen wie [1,2,3 ...]. Normalerweise können Sie eine Liste mit zwei Sequenzen erstellen und diese mit "zip" übergeben. Wenn Sie numpy verwenden, wird der Teil der Einschlussnotation entfernt und vereinfacht.
spearman_numpy.py
import numpy
def spearman(array_a, array_b):
N = len(array_a)
return 1 - (6 * sum((array_a - array_b) ** 2)) / float(N**3 - N)
Da ein Fehler aufgetreten ist, habe ich den Kommentar von owdowt reflektiert. Vielen Dank. [Korrekturdatum: 19.02.26]
Dieser ist einfacher und besser. Das Argument erstellt eine Sequenz wie "numpy.array ([1,2,3 ...])". Wenn Sie eine Zahlenfolge in Python verwenden, ist es besser, numpy zu verwenden.
Ich habe diesmal nichts gegen die Ausnahmebehandlung unternommen. Wenn die Zahlen dieselbe Reihenfolge haben, unterscheidet sich die Berechnungsformel. Lesen Sie daher die zu Beginn eingegebene URL.
Recommended Posts