Ciencia de datos - Correlación estadística


Correlación

La correlación mide la relación entre dos variables.

Mencionamos que una función tiene el propósito de predecir un valor, convirtiendo la entrada (x) en salida (f(x)). También podemos decir que una función usa la relación entre dos variables para la predicción.


Coeficiente de correlación

El coeficiente de correlación mide la relación entre dos variables.

El coeficiente de correlación nunca puede ser inferior a -1 ni superior a 1.

  • 1 = hay una relación lineal perfecta entre las variables (como Average_Pulse frente a Calorie_Burnage)
  • 0 = no hay relación lineal entre las variables
  • -1 = existe una relación lineal negativa perfecta entre las variables (por ejemplo, menos horas trabajadas, conduce a una mayor quema de calorías durante una sesión de entrenamiento)

Ejemplo de una Relación Lineal Perfecta (Coeficiente de Correlación = 1)

Usaremos el diagrama de dispersión para visualizar la relación entre Average_Pulse y Calorie_Burnage (hemos usado el pequeño conjunto de datos del reloj deportivo con 10 observaciones).

Esta vez queremos diagramas de dispersión, así que cambiamos tipo a "dispersión":

Ejemplo

import matplotlib.pyplot as plt

health_data.plot(x ='Average_Pulse', y='Calorie_Burnage', kind='scatter')
plt.show()

Producción:

Coeficiente de correlación = 1

Como vimos anteriormente, existe una relación lineal perfecta entre Average_Pulse y Calorie_Burnage.



Ejemplo de una relación lineal negativa perfecta (coeficiente de correlación = -1)

Coeficiente de correlación = -1

Hemos trazado datos ficticios aquí. El eje x representa la cantidad de horas trabajadas en nuestro trabajo antes de una sesión de entrenamiento. El eje y es Calorie_Burnage.

Si trabajamos más horas, tendemos a tener una menor quema de calorías porque estamos agotados antes de la sesión de entrenamiento.

El coeficiente de correlación aquí es -1.

Ejemplo

import pandas as pd
import matplotlib.pyplot as plt

negative_corr = {'Hours_Work_Before_Training': [10,9,8,7,6,5,4,3,2,1],
'Calorie_Burnage': [220,240,260,280,300,320,340,360,380,400]}
negative_corr = pd.DataFrame(data=negative_corr)

negative_corr.plot(x ='Hours_Work_Before_Training', y='Calorie_Burnage', kind='scatter')
plt.show()

Ejemplo de relación no lineal (coeficiente de correlación = 0)

Coeficiente de correlación = 0

Aquí, hemos trazado Max_Pulse frente a Duration del conjunto full_health_data.

Como puede ver, no existe una relación lineal entre las dos variables. Significa que una sesión de entrenamiento más larga no conduce a un Max_Pulse más alto.

El coeficiente de correlación aquí es 0.

Ejemplo

import matplotlib.pyplot as plt

full_health_data.plot(x ='Duration', y='Max_Pulse', kind='scatter')
plt.show()