Correlación

Coeficiente de correlación

Aunque la covarianza nos da el signo de la relación entre dos variables, al depender de las unidades de \(X\) y de \(Y\), no sabemos si un valor es alto o bajo; sólo sabemos el signo. Para solucionar esto, estandarizamos los valores.

Dada una muestra \((x_1, y_1), (x_2, y_2), ..., (x_n, y_n)\), calculamos la correlación entre \(X\) e \(Y\), y la denotamos por \(r_{XY}\) al cociente de la covarianza dividida entre el producto de las desviaciones típicas.

\[ r_{XY} = \frac{S_{XY}}{S_X S_Y} \]

Pregunta

Esto es igual a calcular la covarianza entre las variables \(X\), \(Y\) estandarizadas. ¿Podrías demostrarlo?

Este estadístico, también conocido como Coeficiente de correlación de Pearson se encuentra entre -1 y 1.

Sin relación lineal o con relación lineal débil
- \(r_{XY}\) es igual o cercano a cero

Relación lineal directa y fuerte
- \(r_{XY}\) es igual o cercano a 1

Relación lineal inversa y fuerte
- \(r_{XY}\) es igual o cercano a -1

Existen escalas para interpretar la correlación como débil, moderada o fuerte. Sin embargo, estas escalas son subjetivas. La definición de una correlación débil o fuerte depende de cada caso. El mismo valor podría interpretarse como débil o fuerte según la situación.

Cuando una variable es una transformación lineal de otra, la correlación es perfecta. Por ejemplo, si tienes dos variables, una que mide distancia recorrida en cierto tiempo y otra que mide velocidad (asumiendo que la velocidad es constante en ese mismo tiempo), el coeficiente de correlación será 1.

Cálculo de la correlación en python

Vamos a descargar iris desde un repositorio público de github. Ya los nombres vienen en un formato legible y que cumple con las características del PEP8

import pandas as pd

iris = pd.read_csv("https://raw.githubusercontent.com/toneloy/data/master/iris.csv")
iris.head()
##    sepal_length  sepal_width  petal_length  petal_width species
## 0           5.1          3.5           1.4          0.2  setosa
## 1           4.9          3.0           1.4          0.2  setosa
## 2           4.7          3.2           1.3          0.2  setosa
## 3           4.6          3.1           1.5          0.2  setosa
## 4           5.0          3.6           1.4          0.2  setosa

En python utilizamos el método .corr() para calcular la matriz de correlación.

corr_mat = iris.corr()
corr_mat
##               sepal_length  sepal_width  petal_length  petal_width
## sepal_length      1.000000    -0.117570      0.871754     0.817941
## sepal_width      -0.117570     1.000000     -0.428440    -0.366126
## petal_length      0.871754    -0.428440      1.000000     0.962865
## petal_width       0.817941    -0.366126      0.962865     1.000000
corr_mat.loc["petal_length", "petal_width"]
## 0.9628654314027955

Pregunta

¿Cómo evaluarías la relación entre petal_length y sepal_width?

  • Relación directa y fuerte
  • Relación directa y debil
  • Relación inversa y fuerte
  • Relación inversa y moderada


Mostrar respuesta

Propiedades de la correlación

Dada una muestra \((x_1, y_1), (x_2, y_2), ..., (x_n, y_n)\), se cumplen las siguientes propiedades relacionadas con la correlación \(r_{XY}\):

  • Si se transforman linealmente las variables \(X\), \(Y\) mediante \(X' = a + bX\) y \(Y' = c + dY\), la correlación entre \(X'\) e \(Y'\), \(r_{X'Y'}\) será la correlación original multiplicada por el signo de \(bd\), siempre que \(b \ne 0\) y \(d \ne 0\).

\[ r_{X'Y'} = \frac{bd}{|bd|}r_{XY} \]

iris["petal_length_transform"] = 5 + 2*iris["petal_length"]
iris["petal_width_transform"] = 3 - 4*iris["petal_width"]

corr_mat = iris.corr()
corr_mat.loc["petal_length", "petal_width"]
## 0.9628654314027955
corr_mat.loc["petal_length_transform", "petal_width_transform"]
## -0.962865431402796

  • La correlación de una variable consigo misma es 1
corr_mat.loc["petal_length", "petal_length"]
## 1.0

  • La correlación entre \(X\) e \(Y\) es igual a la correlación entre \(Y\) y \(X\)
corr_mat.loc["petal_length", "petal_width"]
## 0.9628654314027955
corr_mat.loc["petal_width", "petal_length"]
## 0.9628654314027955

Pregunta

¿Qué valor tendría la correlación entre \(X\) y \(-X\)?

  • 1
  • -1
  • 0


Mostrar respuesta

Cómo se ve la correlación

Además de identificar en cuáles cuadrantes está la mayoría de los puntos de un diagrama de dispersión, el coeficiente de correlación mide qué tan cerca están los puntos de una línea recta que refleja la tendencia de los datos. Mientras más cercanos estén a esa línea, mayor será el valor absoluto de \(r_{XY}\).

Te dejo un link para que juegues a adivinar la correlación de un diagrama de dispersión en Guess the correlation.

Relaciones no lineales

Es importante resaltar que la covarianza y el coeficiente de correlación no detectan relaciones no lineales entre las variables. Por ejemplo, si la relación entre \(X\) e \(Y\) es cuadrática (o polinímica de mayor órden), logarítmica, exponencial, etc., podríamos tener un coeficiente de correlación cercano a 0, pero esto no significaría que no hay relación entre \(X\) e \(Y\); sólo significa que no hay relación lineal entre estas variables.

¡Pero no te preocupes! Hay métodos estadísticos para analizar este tipo de relaciones, sólo que son más avanzados y los cubriremos más adelante.