[PYTHON] Calcul du coefficient de corrélation de rang de Spearman

Quel est le coefficient de corrélation de rang de Spear Maman?

Un index montrant la corrélation entre deux données de classement. Pour plus de détails, veuillez vous référer à l'URL ci-dessous. Wiki: [Coefficient de corrélation des rangs de Spearman](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: [Coefficient de corrélation de rang Spearman](http://ibisforest.org/index.php?Spearman%E9%A0%86%E4%BD%8D%E7%9B%B8%E9%96%A2 % E4% BF% 82% E6% 95% B0)

Il existe plusieurs formules, mais cette fois nous utiliserons cette formule.

式

De plus, je pense que vous devriez utiliser celui de l'URL suivante pour faire correspondre les réponses du programme créé. Le coefficient de corrélation de rang est célèbre, donc si vous le recherchez, vous pouvez trouver d'autres échantillons. Introduction aux statistiques de coefficient de corrélation de rang de Spearman

Programme de calcul

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) )

Vous pouvez facilement calculer comme ça. L'argument list crée une séquence de nombres comme [1,2,3 ...]. Normalement, vous pouvez créer une liste de deux séquences et la passer avec zip. Si vous utilisez numpy, la partie de notation d'inclusion sera éliminée et elle sera simplifiée.

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)

Puisqu'il y avait une erreur, j'ai réfléchi au commentaire d'owdowt. Merci beaucoup. [Date de correction: 19/02/26]

Celui-ci est plus simple et meilleur. L'argument crée une séquence de nombres comme numpy.array ([1,2,3 ...]). Lorsque vous utilisez une chaîne numérique en python, il est préférable d'utiliser numpy.

Gestion des exceptions

Je n'ai rien fait sur la gestion des exceptions cette fois. De plus, si les nombres ont le même ordre, la formule de calcul sera différente, alors référez-vous à l'URL introduite au début.

Recommended Posts

Calcul du coefficient de corrélation de rang de Spearman
[Python] Calcul du coefficient kappa (k)
[Python] Calcul de la similarité d'image (coefficient de dés)
Comparaison temporelle: calcul du coefficient de corrélation en Python
Repenser le coefficient de corrélation
[Introduction à Scipy] Calcul de la courbe de Lorenz et du coefficient de Gini ♬
Calcul de similitude par MinHash
À propos du calcul des coûts de MeCab