El coeficiente de correlación de Pearson, explicado de forma sencilla

Para construir un modelo de regresión, lo que significa ajustar una línea recta a los datos para predecir valores futuros, primero visualizamos nuestros datos para tener una idea de cómo se ven y ver los patrones y relaciones.

Puede parecer que los datos muestran una relación lineal positiva, pero la confirmamos calculando el coeficiente de correlación de Pearson, que nos indica qué tan cerca están nuestros datos de la linealidad.

Consideremos un conjunto de datos salariales simple para comprender el coeficiente de correlación de Pearson.

El conjunto de datos consta de dos columnas:

AñosExperiencia: el número de años que una persona lleva trabajando

Salario (objetivo): el salario anual correspondiente en dólares estadounidenses

Ahora necesitamos construir un modelo que prediga el salario en función de los años de experiencia.

Podemos entender que esto se puede hacer con un modelo de regresión lineal simple porque solo tenemos un predictor y una variable objetivo continua.

Pero, ¿podemos aplicar directamente el algoritmo de regresión lineal simple así como así?

No.

Tenemos varios supuestos para aplicar la regresión lineal, y uno de ellos es la linealidad.

Necesitamos comprobar la linealidad y, para ello, calculamos el coeficiente de correlación.

Pero ¿qué es la linealidad?

Entendamos esto con un ejemplo.

Imagen por autor

En la tabla anterior, podemos ver que por cada aumento de un año en la experiencia, hay un aumento de salario de $5,000.

El cambio es constante y cuando trazamos estos valores, obtenemos una línea recta.

Este tipo de relación se llama relación lineal.

Ahora bien, en la regresión lineal simple, ya sabemos que ajustamos una línea de regresión a los datos para predecir valores futuros, y esto puede ser efectivo sólo cuando los datos tienen una relación lineal.

Entonces, necesitamos verificar la linealidad en nuestros datos.

Para eso, calculemos el coeficiente de correlación.

Antes de eso, primero visualizamos los datos usando un diagrama de dispersión para tener una idea de la relación entre las dos variables.

importar matplotlib.pyplot como plt importar seaborn como sns importar pandas como pd # Cargar el conjunto de datos df = pd.read_csv(“C:/Salary_dataset.csv”) # Establecer estilo de trazado sns.set(style=”whitegrid”) # Crear diagrama de dispersión plt.figure(figsize=(8, 5)) sns.scatterplot(x=’YearsExperience’, y=’Salario’, data=df, color=’azul’, s=60) plt.title(“Gráfico de dispersión: años de experiencia frente a salario”) plt.xlabel(“Años de experiencia”) plt.ylabel(“Salario (USD)”) plt.tight_layout() plt.show()

Imagen por autor

Podemos observar en el diagrama de dispersión que a medida que aumentan los años de experiencia, el salario también tiende a aumentar.

Aunque los puntos no forman una línea recta perfecta, la relación parece ser fuerte y lineal.

Para confirmar esto, calculemos ahora el coeficiente de correlación de Pearson.

importar pandas como pd # Cargar el conjunto de datos df = pd.read_csv(“C:/Salary_dataset.csv”) # Calcular la correlación de Pearson pearson_corr = df[‘YearsExperience’].corr(df)[‘Salary’]método=’pearson’) print(f”Coeficiente de correlación de Pearson: {pearson_corr:.4f}”)

El coeficiente de correlación de Pearson es 0,9782.

Obtenemos el valor del coeficiente de correlación entre -1 y +1.

Si es…
cerca de 1: fuerte relación lineal positiva
cerca de 0: no hay relación lineal
cerca de -1: fuerte relación lineal negativa

Aquí, obtuvimos un valor de coeficiente de correlación de 0,9782, lo que significa que los datos siguen en su mayoría un patrón de línea recta y existe una relación positiva muy fuerte entre las variables.

A partir de esto, podemos observar que la regresión lineal simple es muy adecuada para modelar esta relación.

Pero, ¿cómo calculamos este coeficiente de correlación de Pearson?

Consideremos una muestra de datos de 10 puntos de nuestro conjunto de datos.

Imagen por autor

Ahora, calculemos el coeficiente de correlación de Pearson.

Cuando tanto X como Y aumentan juntos, se dice que la correlación es positiva. Por el contrario, si uno aumenta mientras el otro disminuye, la correlación es negativa.

Primero, calculemos la varianza de cada variable.

La varianza nos ayuda a comprender qué tan lejos se encuentran los valores de la media.

Comenzaremos calculando la varianza de X (años de experiencia).
Para hacer eso, primero necesitamos calcular la media de X.

\[
\bar{X} = \frac{1}{n} \sum_{i=1}^{n} X_i
\]

\[
= \frac{1.2 + 3.3 + 3.8 + 4.1 + 5.0 + 5.4 + 8.3 + 8.8 + 9.7 + 10.4}{10}
\]
\[
= \frac{70.0}{10}
\]
\[
= 7.0
\]

Luego, restamos cada valor de la media y luego lo elevamos al cuadrado para cancelar los negativos.

Imagen por autor

Hemos calculado las desviaciones al cuadrado de cada valor de la media.
Ahora podemos encontrar la varianza de X tomando el promedio de esas desviaciones al cuadrado.

\[
\text{Sample Variance of } X = \frac{1}{n – 1} \sum_{i=1}^{n} (X_i – \bar{X})^2
\]

\[
= \frac{33.64 + 13.69 + 10.24 + 8.41 + 4.00 + 2.56 + 1.69 + 3.24 + 7.29 + 11.56}{10 – 1}
\]
\[
= \frac{96.32}{9} \approx 10.70
\]

Aquí dividimos por ‘n-1’ porque estamos tratando con datos de muestra y el uso de ‘n-1’ nos da la estimación insesgada de la varianza.

La varianza muestral de X es 10,70, lo que nos dice que los valores de Años de experiencia están, en promedio, a 10,70 unidades cuadradas de la media.

Dado que la varianza es un valor al cuadrado, tomamos la raíz cuadrada para interpretarla en la misma unidad que los datos originales.

Esto se llama desviación estándar.

\[
s_X = \sqrt{\text{Sample Variance}} = \sqrt{10.70} \approx 3.27
\]

La desviación estándar de X es 3,27, lo que significa que los valores de Años de experiencia caen aproximadamente 3,27 años por encima o por debajo de la media.

De la misma forma calculamos la varianza y la desviación estándar de ‘Y’.

\[
\bar{Y} = \frac{1}{n} \sum_{i=1}^{n} Y_i
\]

\[
= \frac{39344 + 64446 + 57190 + 56958 + 67939 + 83089 + 113813 + 109432 + 112636 + 122392}{10}
\]
\[
= \frac{827239}{10}
\]
\[
= 82,\!723.90
\]
\[
\text{Sample Variance of } Y = \frac{1}{n – 1} \sum (Y_i – \bar{Y})^2
\]
\[
= \frac{7,\!898,\!632,\!198.90}{9} = 877,\!625,\!799.88
\]
\[
\text{Standard Deviation of } Y \text{ is } s_Y = \sqrt{877,\!625,\!799.88} \approx 29,\!624.75
\]

Calculamos la varianza y la desviación estándar de ‘X’ e ‘Y’.

Ahora el siguiente paso es calcular la covarianza entre X e Y.

Ya tenemos las medias de X e Y, así como las desviaciones de cada valor de sus respectivas medias.

Ahora multiplicamos estas desviaciones para ver cómo varían las dos variables juntas.

Imagen por autor

Al multiplicar estas desviaciones, intentamos capturar cómo X e Y se mueven juntos.

Si tanto X como Y están por encima de sus medias, entonces las desviaciones son positivas, lo que significa que el producto es positivo.

Si tanto X como Y están por debajo de sus medias, entonces las desviaciones son negativas, pero como un negativo multiplicado por un negativo es positivo, el producto es positivo.

Si uno está por encima de la media y el otro por debajo, el producto es negativo.

Este producto nos dice si las dos variables tienden a moverse en la misma dirección (ambas aumentando o ambas disminuyendo) o en direcciones opuestas.

Usando la suma del producto de las desviaciones, ahora calculamos la covarianza muestral.

\[
\text{Sample Covariance} = \frac{1}{n – 1} \sum_{i=1}^{n}(X_i – \bar{X})(Y_i – \bar{Y})
\]

\[
= \frac{808771.5}{10 – 1}
\]
\[
= \frac{808771.5}{9} = 89,\!863.5
\]

Obtuvimos una covarianza muestral de 89863,5. Esto indica que a medida que aumenta la experiencia, el salario también tiende a aumentar.

Pero la magnitud de la covarianza depende de las unidades de las variables (años × dólares), por lo que no es directamente interpretable.

Este valor sólo muestra la dirección.

Ahora dividimos la covarianza por el producto de las desviaciones estándar de X e Y.

Esto nos da el coeficiente de correlación de Pearson, que puede denominarse como una versión normalizada de la covarianza.

Dado que la desviación estándar de X tiene unidades de años e Y tiene unidades de dólares, multiplicarlas nos da años por dólares.

Estas unidades se cancelan cuando dividimos, lo que da como resultado el coeficiente de correlación de Pearson, que no tiene unidades.

Pero la razón principal por la que dividimos la covarianza por las desviaciones estándar es para normalizarla, de modo que el resultado sea más fácil de interpretar y pueda compararse entre diferentes conjuntos de datos.

\[
r = \frac{\text{Cov}(X, Y)}{s_X \cdot s_Y}
= \frac{89,\!863.5}{3.27 \times 29,\!624.75}
= \frac{89,\!863.5}{96,\!992.13} \approx 0.9265
\]

Entonces, el coeficiente de correlación de Pearson (r) que calculamos es 0,9265.

Esto nos dice que existe una relación lineal positiva muy fuerte entre años de experiencia y salario.

De esta forma encontramos el coeficiente de correlación de Pearson.

La fórmula para el coeficiente de correlación de Pearson es:

\[
r = \frac{\text{Cov}(X, Y)}{s_X \cdot s_Y}
= \frac{\frac{1}{n – 1} \sum_{i=1}^{n} (X_i – \bar{X})(Y_i – \bar{Y})}
{\sqrt{\frac{1}{n – 1} \sum_{i=1}^{n} (X_i – \bar{X})^2} \cdot \sqrt{\frac{1}{n – 1} \sum_{i=1}^{n} (Y_i – \bar{Y})^2}}
\]

\[
= \frac{\sum_{i=1}^{n} (X_i – \bar{X})(Y_i – \bar{Y})}
{\sqrt{\sum_{i=1}^{n} (X_i – \bar{X})^2} \cdot \sqrt{\sum_{i=1}^{n} (Y_i – \bar{Y})^2}}
\]

Necesitamos asegurarnos de que se cumplan ciertas condiciones antes de calcular el coeficiente de correlación de Pearson:

La relación entre las variables debe ser lineal. Ambas variables deben ser continuas y numéricas. No debería haber valores atípicos fuertes. Los datos deben estar distribuidos normalmente.

Conjunto de datos

El conjunto de datos utilizado en este blog es el conjunto de datos Salario.

Está disponible públicamente en Kaggle y tiene la licencia Creative Commons Zero (dominio público CC0). Esto significa que se puede utilizar, modificar y compartir libremente para fines comerciales y no comerciales sin restricciones.

Espero que esto le haya dado una comprensión clara de cómo se calcula el coeficiente de correlación de Pearson y cuándo se utiliza.

¡Gracias por leer!