ANÁLISIS EXPLORATORIO DE DATOS: Medidas de Resumen
UNIDAD 3 - Parte 2
Fundamentos de Ciencia de Datos 2026
MÉTRICAS DE CORRELACIÓN
CORRELACIÓN
El análisis de correlación tiene como objetivo estudiar el comportamiento conjunto de dos variables aleatorias \(X\) e \(Y\), es decir, el grado en que ambas varían o “cambian” conjuntamente.
EJEMPLO
A lo largo de la clase, utilizaremos el dataset penguins, que contiene datos recolectados sobre una serie de 344 pingüinos de tres especies diferentes que anidan en una colonia del Archipiélago Palmer, en la Antártida.
EJEMPLO
El dataset puede cargarse directamente de la librería seaborn.
import seaborn as snsdf = sns.load_dataset('penguins')df.head()
species
island
bill_length_mm
bill_depth_mm
flipper_length_mm
body_mass_g
sex
0
Adelie
Torgersen
39.1
18.7
181.0
3750.0
Male
1
Adelie
Torgersen
39.5
17.4
186.0
3800.0
Female
2
Adelie
Torgersen
40.3
18.0
195.0
3250.0
Female
3
Adelie
Torgersen
NaN
NaN
NaN
NaN
NaN
4
Adelie
Torgersen
36.7
19.3
193.0
3450.0
Female
FLIPPER LENGTH y BODY MASS
Si estuviéramos particularmente interesados en el largo de la aleta (flipper_length_mm) y en el peso (body_mass_g) de los pingüinos del Archipiélago Palmer, podríamos explorar ambas variables individualmente, haciendo un análisis descriptivo de la información con la que se cuenta para cada una (clase anterior).
¿Cómo podemos resumir la información sobre cada una de estas variables, individualmente?
flipper_length_mm body_mass_g
count 342.00 342.00
mean 200.92 4201.75
std 14.06 801.95
min 172.00 2700.00
25% 190.00 3550.00
50% 197.00 4050.00
75% 213.00 4750.00
max 231.00 6300.00
🌱 ¿Cuál es la longitud de aleta promedio de los pingüinos?
🔥 ¿Qué porcentaje de los pingüinos pesa más de 4750 g?
🧠 ¿Cuál de los dos conjuntos de observaciones presenta mayor variabilidad?
También podemos representar ambas variables mediante boxplots:
🌱 ¿Qué nos dicen los gráficos sobre la simetría de cada set de datos? ¿Se observan valores atípicos?
FLIPPER LENGTH vs. BODY MASS
Pero quizás también puede interesarnos estudiar si existe algún tipo de asociación entre ambas.
El primer paso en el análisis conjunto de dos variables, antes de calcular cualquier métrica de correlación, es GRAFICAR los datos registrados de ambas medidas para todos los pingüinos del dataset.
¿Qué tipo de gráfico podemos construir para representar esa información?
GRÁFICO DE DISPERSIÓN (Scatterplot)
Un scatterplot muestra la relación entre dos variables cuantitativas. Los valores de una variable se grafican en el eje de abscisas y los de la otra, en el de las ordenadas. Cada par de observaciones viene representado en el gráfico por un punto.
sns.scatterplot(x ='body_mass_g', y ='flipper_length_mm', data = df);
GRÁFICO DE DISPERSIÓN (Scatterplot)
🤓 ¿Qué tipo de información nos brinda este gráfico sobre la relación entre la longitud la aleta y el peso de los pingüinos?
LA COVARIANCIA: intuición
Las medias de ambas variables nos definen 4 cuadrantes. ¿Qué ocurre con la mayoría de los productos \((x_{i} - \bar{x})(y_{i} - \bar{y})\)?
LA COVARIANCIA (Sxy)
La covariancia es una medida estadística que brinda información acerca del grado en que dos variables varían linealmente en forma conjunta.
Suponiendo que se cuenta con un conjunto de n pares de observaciones de dos variables, \(X\) e \(Y\), se calcula de la siguiente forma:
La covariancia provee información acerca de la dirección de la asociación lineal entre las dos variables.
Si la relación entre ambas variables es directa o positiva, Sxy > 0.
Si la relación entre ambas variables es inversa o negativa, Sxy < 0.
Se puede demostrar que para dos variables estadísticamente independientesSxy = 0 (\(\sigma_{xy}\) a nivel poblacional). Sin embargo, lo opuesto no es necesariamente cierto: 2 variables pueden tener una Sxy = 0 y aún así no ser estadísticamente independientes (asociaciones no lineales).
LA COVARIANCIA (Sxy)
En nuestro ejemplo, podemos calcular la covariancia entre el largo de la aleta y la masa corporal utilizando el método cov() de la librería Pandas:
import pandas as pddf[['body_mass_g','flipper_length_mm']].cov()
body_mass_g
flipper_length_mm
body_mass_g
643131.077327
9824.416062
flipper_length_mm
9824.416062
197.731792
LIMITACIONES DE LA COVARIANCIA
La covariancia no tiene un rango de variación acotado, por lo que su magnitud no indica nada con respecto a la fuerza de la asociación.
La covariancia es sensible a las unidades de medida de las variables, por lo que puede hacerse arbitrariamente grande o pequeña si alguna de ellas es modificada.
COFICIENTE DE CORRELACIÓN DE PEARSON (r)
El coeficiente de correlación lineal de Pearson mide el grado de asociación lineal que existe entre dos variables cuantitativas continuas. Se calcula de la siguiente manera:
\[r = \frac{S_{xy}}{S_{x}S_{y}}\]
PROPIEDADES DE r
Su signo indica si la relación es positiva o negativa.
Está acotado (\(-1 \leq r \leq 1\))
Su magnitud es indicativa de la fuerza de la asociación lineal entre las variables: cuanto más cercano a 0, más débil es la asociación; cuanto más cercano a 1 se encuentre en valor absoluto, más fuertemente relacionadas están las variables.
Si \(X\) e \(Y\) son dos variables independientes, entonces r = 0 (\(\rho\), a nivel poblacional). Sin embargo, la recíproca no es cierta.r = 0 no implica necesariamente falta de asociación, sino que podría indicar falta de linealidad en la relación entre las variables.
PROPIEDADES DE r
Una regla práctica que puede emplearse como una guía para la interpretación de la intensidad de la relación es la siguiente (es un criterio arbitrario):
|r| < 0.5: la relación lineal entre las variables es débil.
0.5 ≤ |r| < 0.8: la relación lineal entre las variables es moderada.
|r| ≥ 0.8: la relación lineal entre las variables es intensa.
EJEMPLOS
CÁLCULO DE r
Para calcular el r de Pearson en el ejemplo, podemos recurrir al método corr() de Pandas, que por default usa el método de Pearson (hay otros).
El resultado es una matriz de correlación que incluye las variables de interés.
A partir del valor obtenido, ¿cómo caracterizaríamos a la relación entre ambas variables?
PROBLEMAS DE INTERPRETACIÓN/USO DE r
Asumir que un alto valor de r implica causalidad. El hecho de que dos variables estén fuertemente correlacionadas no implica que una cause a la otra: correlación no implica causalidad.
PROBLEMAS DE INTERPRETACIÓN/USO DE r
Calcular e informar el valor de r cuando la relación entre ambas variables no es lineal. La correlación de Pearson mide fuerza de asociación lineal y no nos dice nada acerca de la intensidad de otro tipo de asociación (cuadrática, hiperbólica, cosenoidal, etc.). Por lo tanto, en estos casos calcular e informar r es inapropiado.
Por este motivo, es más que importante graficar previamente los datos para evaluar si tiene o no sentido calcular el coeficiente de correlación de Pearson.
PROBLEMAS DE INTERPRETACIÓN/USO DE r
Se ve afectado por la presencia de outliers. Un punto importante a marcar sobre el coeficiente de correlación de Pearson es que es una métrica bastante sensible a la presencia de valores atípicos en las observaciones, los cuales pueden distorsionar enormemente su valor y, en ciertos casos, conducir a conclusiones equivocadas.
CORRELACIÓN DE SPEARMAN
Vimos que el coeficiente de Pearson presenta algunas limitaciones: es sensible a la presencia de outliers y solo mide asociaciones lineales. El coeficiente de correlación de Spearman surge como una alternativa útil en ciertos contextos.
Se calcula rankeando los datos de las dos variables y luego computando el coeficiente de correlación de Pearson sobre los rangos asignados:
\[r_{s} = \frac{S_{RxRy}}{S_{Rx}S_{Ry}}\]
CORRELACIÓN DE SPEARMAN
El uso de rangos lo hace especialmente útil en tres situaciones:
cuando se trabaja con datos ordinales,
cuando la relación entre las variables es monótona pero no lineal (toda relación lineal es monótona, pero no toda relación monótona es lineal),
cuando hay outliers que podrían distorsionar el coeficiente de correlación de Pearson.
🔎 Una relación es monótona si, en términos generales, al aumentar una variable la otra tiende siempre a aumentar o siempre a disminuir.
PROPIEDADES DE rs
● Provee una medida de la fuerza y la dirección de asociaciones o relaciones monótonas entre dos variables cuantitativas.
● Toma valores entre -1 y 1, donde \(|r_{s}| = 1\) indica una relación monótona perfecta.
PROPIEDADES DE rs
● Como está basado en rangos, es menos sensible a la presencia de outliers que el coeficiente de correlación de Pearson.
● Puede cuantificar o medir la fuerza de cualquier tipo de relación monótona, a diferencia del coeficiente de correlación de Pearson que sólo se emplea para relaciones lineales.
UN EJEMPLO
Supongamos que contamos con información sobre los tiempos de reacción y edad de un conjunto de 9 gamers:
Edad (años)
10
15
20
25
30
35
45
60
Tiempo (ms)
115
120
170
150
210
180
175
220
UN EJEMPLO
¿Cómo luce un scatterplot de estos datos?
🤓 ¿Qué características de la relación entre la edad y el tiempo de reacción se observan en el gráfico?
CÁLCULO DE rs
Edad (años)
Tiempo (ms)
Redad
Rtiempo
10
115
1
1
15
120
2
2
20
170
3
5
25
150
4
3
30
210
5
7
35
180
6
6
45
165
7
4
60
220
8
8
Para calcular el rs necesitamos tener los registros de las dos variables rankeados.
CÁLCULO DE rs
¿Cómo luce el scatterplot de los rangos?
El rs es el coeficiente de correlación lineal de Pearson calculado con los datos representados en el gráfico.
CÁLCULO DE rs
Afortunadamente, si queremos utilizar Pandas, la librería se encarga de realizar internamente el proceso de asignación de rangos. Lo que tenemos que hacer es setear el parámetro method=‘spearman’.
data_gamers.corr(method ='spearman')
edad_anios
tiempo_ms
edad_anios
1.000
0.786
tiempo_ms
0.786
1.000
🤔 ¿Cómo podemos caracterizar a la relación entre ambas variables en base al valor obtenido?
MATRIZ DE COVARIANCIA/CORRELACIÓN
En el caso de que contemos con información sobre múltiples variables cuantitativas en el dataset, podemos construir una matriz en la que se muestren las métricas de correlación (covariancia, coeficientes de correlación de Pearson, Spearman, etc.) para todos los pares.
MATRIZ DE COVARIANCIA/CORRELACIÓN
De todas las variables con las que contamos en el dataset penguins, sólo son variables cuantitativas las siguientes:
bill_length_mm
bill_depth_mm
flipper_length_mm
body_mass_g
Seleccionaremos únicamente estas variables para construir nuestra matriz.
MATRIZ DE COVARIANCIA/CORRELACIÓN
Para construir la matriz de covariancia, utilizamos el método cov() de Pandas:
¿Qué aporta en relación a la matriz de covariancia?
CORRELOGRAMA
Un correlograma es una representación gráfica que muestra las correlaciones entre todas las combinaciones posibles de variables en un conjunto de datos (es la versión gráfica de una matriz de correlación).
Podemos construirlo generando la matriz de correlación de nuestros datos y luego ploteándola con la función heatmap() de la librería seaborn. Hay algunas cuestiones impor tantes referidas a la escala de colores que las abordaremos en la próxima unidad.
CORRELOGRAMA
# Generamos la matriz de correlaciónmatriz = df[['bill_length_mm', 'bill_depth_mm', 'flipper_length_mm', 'body_mass_g']].corr()# Construimos el heatmapsns.heatmap(matriz, annot =True)
CORRELOGRAMA
A partir del gráfico, ¿cómo podríamos caracterizar la asociación entre los distintos pares de variables?
¿NOS ESTÁ ENGAÑANDO r? 😲🚩
El coeficiente de correlación de Pearson entre profundidad de pico y longitud de aleta es \(r = -0.58\).
Pero…¿este valor es realmente un reflejo de lo que vemos en el gráfico de dispersión?