2009-12-03 21 views

Respuesta

42

La correlación de Pearson y la similitud del coseno son invariables a escala, es decir, multiplican todos los elementos por una constante distinta de cero. La correlación de Pearson también es invariante para agregar cualquier constante a todos los elementos. Por ejemplo, si tiene dos vectores X1 y X2, y su función de correlación de Pearson se llama pearson(), pearson(X1, X2) == pearson(X1, 2 * X2 + 3). Esta es una propiedad bastante importante porque a menudo no te importa que dos vectores sean similares en términos absolutos, solo que varían de la misma manera.

+3

Disculpas. Estaba un poco equivocado. La similitud del coseno es ** no ** invariante al agregar una constante a todos los elementos. He arreglado esto El punto más grande aún se mantiene. – dsimcha

17

La diferencia entre Pearson Coeficiente de correlación y el coseno de similaridad se puede ver en sus fórmulas:

enter image description here

La razón Pearson Coeficiente de correlación es invariante a la adición de cualquier constante es que los medios se restan a cabo por la construcción. También es fácil ver que Pearson Correlation Coefficient y Cosine Similarity son equivalentes cuando X y Y tienen medias de 0, por lo que podemos pensar en Pearson Correlation Coefficient como una versión degradada de Cosine Similarity.

Para el uso práctico, vamos a considerar los retornos de los dos activos x y y:

In [275]: pylab.show() 

In [276]: x = np.array([0.1, 0.2, 0.1, -0.1, 0.5]) 

In [277]: y = x + 0.1 

enter image description here

rendimientos de estos activos tienen exactamente la misma variabilidad, que se mide por Pearson coeficiente de correlación (1) , pero no son exactamente similares, lo que se mide por la similitud del coseno (0,971).

In [281]: np.corrcoef([x, y]) 
Out[281]: 
array([[ 1., 1.], # The off diagonal are correlations 
     [ 1., 1.]]) # between x and y 

In [282]: from sklearn.metrics.pairwise import cosine_similarity 

In [283]: cosine_similarity(x, z) 
Out[283]: array([[ 0.97128586]]) 
1

Además de respuesta de @ dsimcha, las similitudes coseno de un subconjunto de los datos originales son el mismo que el de los datos originales, que no es cierto para la correlación de Pearson. Esto puede ser útil cuando se agrupan subconjuntos de sus datos: son (topológicamente) idénticos a la agrupación original, por lo que se pueden visualizar e interpretar más fácilmente

Cuestiones relacionadas