Similitud de Pearson

Escrito por

en

La Similitud de Pearson, basada en el Coeficiente de Correlación de Pearson, es una de las medidas de similitud más utilizadas en los sistemas de recomendación, especialmente en los enfoques de Filtrado Colaborativo (Collaborative Filtering). A diferencia de otras métricas que comparan directamente los valores de dos vectores, la similitud de Pearson evalúa la relación lineal entre ellos, teniendo en cuenta cómo varían respecto a su propia media.

Esta característica permite identificar usuarios o elementos que presentan patrones de comportamiento similares, incluso cuando utilizan escalas de valoración diferentes. Por ejemplo, un usuario puede puntuar habitualmente entre 4 y 5 estrellas, mientras que otro utiliza con mayor frecuencia valores entre 2 y 3. Aunque sus puntuaciones absolutas sean distintas, ambos pueden mostrar preferencias muy similares. La correlación de Pearson es capaz de detectar esta relación.

En este artículo se analizan los fundamentos, funcionamiento, ventajas, limitaciones e implementación práctica de la Similitud de Pearson en Python.

¿Qué es la Similitud de Pearson?

La Similitud de Pearson es una medida estadística que cuantifica el grado de relación lineal entre dos conjuntos de valores.

En sistemas de recomendación se utiliza para comparar:

  • Usuarios.
  • Productos.
  • Películas.
  • Libros.
  • Canciones.
  • Cualquier elemento representado mediante un conjunto de valoraciones.

Su cálculo se basa en el Coeficiente de Correlación de Pearson, definido por la siguiente expresión:

$$
r=
\frac{\sum_{i=1}^{n}(x_i-\bar{x})(y_i-\bar{y})}
{\sqrt{\sum_{i=1}^{n}(x_i-\bar{x})^2}
\sqrt{\sum_{i=1}^{n}(y_i-\bar{y})^2}}
$$

donde:

  • \(x_i\) representa los valores del primer vector.
  • \(y_i\) representa los valores del segundo vector.
  • \(\bar{x}[latex] y [latex]\bar{y}\) son las medias de ambos vectores.

El resultado indica el grado de asociación lineal entre ambos conjuntos de datos.

¿Cómo funciona?

La Similitud de Pearson no compara directamente las puntuaciones, sino el comportamiento relativo de cada usuario o elemento respecto a su propia media.

El proceso general consiste en:

  1. Calcular la media de cada vector.
  2. Restar la media a cada valor.
  3. Calcular el producto entre ambas desviaciones.
  4. Normalizar mediante las desviaciones estándar.
  5. Obtener una puntuación comprendida entre -1 y 1.

Este enfoque permite eliminar el efecto de las diferencias individuales de escala.

Interpretación de los valores

El coeficiente de Pearson siempre se encuentra dentro del intervalo:

$$
-1 \le r \le 1
$$

La interpretación es la siguiente.

ValorInterpretación
1Correlación positiva perfecta
0.8 a 1Muy alta similitud
0.5 a 0.8Similitud moderada
0Sin relación lineal
-0.5 a 0Relación negativa moderada
-1Correlación negativa perfecta

En sistemas de recomendación normalmente interesan las correlaciones positivas elevadas.

Ejemplo conceptual

Supongamos dos usuarios que valoran varias películas.

PelículaUsuario AUsuario B
Acción53
Drama42
Ciencia ficción53
Comedia21

Aunque el Usuario B puntúa sistemáticamente dos estrellas menos, ambos muestran exactamente el mismo patrón de preferencias.

La Similitud de Pearson detectará una correlación muy próxima a 1, mientras que otras métricas basadas únicamente en las diferencias absolutas podrían considerar que ambos usuarios son menos similares.

Diferencia respecto a la Similitud del Coseno

Aunque ambas métricas comparan vectores, presentan diferencias importantes.

  • La Similitud del Coseno compara la dirección de los vectores.
  • La Similitud de Pearson compara cómo varían los valores respecto a sus medias.

Esto hace que Pearson resulte más adecuada cuando distintos usuarios utilizan escalas de valoración diferentes.

¿Por qué es importante en los sistemas de recomendación?

En muchos sistemas de recomendación, cada usuario posee un estilo propio al asignar puntuaciones.

Por ejemplo:

UsuarioEscala habitual
Usuario A4–5 estrellas
Usuario B2–3 estrellas

Aunque ambos disfruten exactamente de las mismas películas, sus puntuaciones absolutas serán distintas.

La Similitud de Pearson elimina este sesgo individual y permite identificar patrones de preferencia similares.

Por esta razón, ha sido una de las métricas clásicas del Filtrado Colaborativo Basado en Usuarios (User-Based Collaborative Filtering).

Beneficios

La Similitud de Pearson ofrece numerosas ventajas.

  • Tiene en cuenta las diferencias individuales de escala.
  • Detecta patrones de comportamiento similares.
  • Reduce el efecto del sesgo en las valoraciones.
  • Produce resultados fácilmente interpretables.
  • Funciona especialmente bien con datos de puntuaciones.
  • Es ampliamente utilizada en sistemas de recomendación clásicos.
  • Se encuentra implementada en numerosas bibliotecas de Machine Learning.

¿Cuándo utilizar la Similitud de Pearson?

Es recomendable utilizarla cuando:

  • Se comparan usuarios mediante puntuaciones.
  • Existen diferencias en la escala utilizada por cada usuario.
  • Se desarrollan sistemas de Filtrado Colaborativo.
  • Se analizan relaciones lineales entre variables.
  • Se trabaja con matrices Usuario-Ítem.
  • Se desea identificar usuarios con gustos similares.

No suele ser la mejor opción para datos binarios o representaciones TF-IDF.

Ventajas y desventajas

VentajasDesventajas
Elimina el efecto de la escala individualSolo detecta relaciones lineales
Muy adecuada para valoracionesSensible a valores atípicos
Fácil interpretaciónRequiere suficientes elementos comunes
Muy utilizada en Filtrado ColaborativoNo funciona bien con datos muy dispersos
Compensa diferencias entre usuariosPuede ser inestable con pocas observaciones

Limitaciones

Aunque es una métrica muy potente, presenta ciertas limitaciones.

  • Solo detecta relaciones lineales.
  • Puede verse afectada por valores extremos.
  • Requiere que ambos usuarios hayan valorado suficientes elementos comunes.
  • Resulta poco fiable cuando existen muy pocas coincidencias.
  • No es adecuada para datos binarios.
  • En matrices muy dispersas puede producir correlaciones poco representativas.

En aplicaciones modernas suele combinarse con técnicas adicionales de ponderación o con modelos basados en factorización matricial.

Similitud de Pearson vs otras medidas

MedidaQué comparaConsidera la mediaTipo de datos recomendado
Similitud de PearsonRelación linealValoraciones
Similitud del CosenoDirección de los vectoresNoTexto, TF-IDF, Embeddings
Índice de JaccardElementos compartidosNoDatos binarios
Distancia EuclidianaDistancia geométricaNoVariables numéricas
Distancia ManhattanDiferencias absolutasNoVariables numéricas

La elección depende del tipo de datos y del problema a resolver.

Aplicaciones en Data Science y Machine Learning

La Similitud de Pearson tiene aplicaciones en numerosos ámbitos.

Entre las más habituales destacan:

  • Sistemas de recomendación.
  • Filtrado colaborativo basado en usuarios.
  • Filtrado colaborativo basado en elementos.
  • Análisis de preferencias.
  • Minería de datos.
  • Análisis exploratorio de datos.
  • Estadística.
  • Análisis financiero.
  • Bioinformática.
  • Ciencias sociales.
  • Psicometría.

Su principal aplicación sigue siendo la comparación de perfiles de usuarios mediante puntuaciones.

Implementación en Python

Calcular la correlación entre dos usuarios

import pandas as pd

usuario_a = pd.Series([5, 4, 5, 2])
usuario_b = pd.Series([3, 2, 3, 1])

correlacion = usuario_a.corr(usuario_b)

print(correlacion)

Resultado:

1.0

Utilizando NumPy

import numpy as np

usuario_a = np.array([5, 4, 5, 2])
usuario_b = np.array([3, 2, 3, 1])

correlacion = np.corrcoef(
    usuario_a,
    usuario_b
)[0, 1]

print(correlacion)

Calcular la matriz de correlación

import pandas as pd

ratings = pd.DataFrame({
    "Usuario_A": [5, 4, 5, 2],
    "Usuario_B": [3, 2, 3, 1],
    "Usuario_C": [1, 5, 2, 4]
})

matriz = ratings.corr(method="pearson")

print(matriz)

Resultado aproximado:

            Usuario_A  Usuario_B  Usuario_C
Usuario_A       1.000      1.000     -0.77
Usuario_B       1.000      1.000     -0.77
Usuario_C      -0.770     -0.770      1.00

Esta matriz constituye la base de muchos algoritmos de recomendación basados en usuarios.

Encontrar los usuarios más similares

usuario = "Usuario_A"

similares = (
    matriz[usuario]
    .sort_values(ascending=False)
)

print(similares)

Este procedimiento permite identificar rápidamente los usuarios con patrones de valoración más parecidos.

Complejidad computacional

El cálculo de la Similitud de Pearson depende del número de observaciones compartidas.

Para dos vectores con n elementos comunes:

  • El cálculo de una correlación tiene una complejidad aproximada de O(n).

Cuando se desea calcular la similitud entre todos los usuarios de una matriz:

  • La complejidad puede aproximarse a O(m² · n),

donde:

  • m representa el número de usuarios.
  • n el número medio de elementos valorados.

En conjuntos de datos muy grandes suelen emplearse técnicas de reducción de dimensionalidad o aproximación de vecinos para reducir el coste computacional.

Buenas prácticas

Para utilizar correctamente la Similitud de Pearson se recomienda:

  • Comparar únicamente usuarios con suficientes valoraciones en común.
  • Eliminar valores atípicos cuando sea posible.
  • Utilizar matrices de valoraciones limpias y consistentes.
  • Complementar la correlación con un número mínimo de coincidencias.
  • Evaluar otras medidas de similitud para comparar resultados.
  • Validar experimentalmente el rendimiento del recomendador.

Conclusión

La Similitud de Pearson es una de las medidas más utilizadas para comparar usuarios y elementos en sistemas de recomendación basados en Filtrado Colaborativo. Al centrarse en la relación lineal entre las valoraciones y no en sus valores absolutos, permite identificar patrones de preferencias similares incluso cuando los usuarios utilizan escalas de puntuación diferentes.

Su facilidad de interpretación, su sólida base estadística y su amplia disponibilidad en bibliotecas como Pandas y NumPy la convierten en una herramienta muy valiosa para construir sistemas de recomendación clásicos. No obstante, su eficacia depende de disponer de suficientes valoraciones compartidas y de comprender sus limitaciones frente a datos dispersos o relaciones no lineales. Elegir la medida de similitud adecuada y validarla sobre el problema concreto sigue siendo un paso fundamental para desarrollar recomendadores precisos y robustos.