Machine learning desde cero · Lección 4.1 · 20 de 33 lecciones listas · 12 min
Exploración: mira antes de modelar
En pocas palabras
Cuatro conjuntos con la misma media, correlación 0,82 y recta no se parecen en nada. Dibuja los datos antes de fiarte de los números y de construir un modelo.
Calentamiento Dos preguntas de lecciones anteriores. Un minuto, y no bloquea la lección.
El módulo 4 empieza antes del modelo. Antes de entrenar nada, mira los datos. El análisis exploratorio de datos (EDA, del inglés exploratory data analysis) consiste en dibujar los datos y calcular resúmenes sencillos para ver con qué tratas: la forma, los grupos, los puntos lejos del resto. Una media o una correlación es un resumen, y un resumen puede esconder justo lo importante. Hoy, dos ejemplos: los cuatro pequeños conjuntos de Anscombe y los pingüinos de la lección 0.1.
Elige una respuesta y tu grado de seguridad.
Responde para desbloquear el experimento.
Experimento interactivo
Este experimento interactivo funciona en un navegador con JavaScript activado. El texto que lo rodea describe lo que muestra.
Ver la respuesta
Respuesta correcta: Totalmente distintos: una nube, un arco, un punto atípico y un punto lejos del resto
Totalmente distintos. El conjunto I es una nube alrededor de la recta. El II está sobre un arco: una parábola explica R² = 1,000 de la variación de y, la recta solo 0,666. En el III diez puntos están casi exactamente sobre otra recta, más plana (pendiente 0,345), y un punto atípico tira de la recta ajustada hacia sí, hasta una pendiente de 0,5. En el IV diez puntos tienen la misma x = 8, y un solo punto en (19; 12,50) fija la recta.
Prueba
- Pasa por los conjuntos I–IV. ¿Qué números bajo los gráficos cambian y cuáles siguen igual?
- ¿En qué conjunto un solo punto fija la recta? ¿Qué le pasaría a la recta sin él?
- Cambia a los pingüinos y elige longitud del pico × profundidad del pico. ¿Qué signo tiene la correlación? Después divide los pingüinos por especie.
- Mira el mismo par dividido por isla. ¿Por qué la imagen es distinta que con las especies?
Cuando lo hayas comprobado en el lab, pongamos nombre a lo que ves.
La idea en palabras sencillas
Los estadísticos descriptivos, es decir, la media, la varianza, la correlación y la recta de regresión, resumen los datos en pocos números. Un resumen siempre pierde algo. En 1973 Francis Anscombe construyó cuatro conjuntos de 11 puntos en los que esos números son casi idénticos: la media de x es 9, la de y 7,50, la varianza de x 11, la de y 4,12–4,13, la correlación 0,816, la recta y = 3,00 + 0,500·x. En un gráfico el conjunto I es una nube, el II un arco, el III una recta con un punto atípico y el IV una columna vertical con un punto lejano. Una regresión lineal ajustada a cada uno da la misma recta, aunque solo describe con sentido el primero.
Los pingüinos muestran lo mismo con datos reales. Con los 342 pingüinos, la correlación entre la longitud y la profundidad del pico es −0,235: cuanto más largo el pico, menos profundo. Al dividir por especie, el signo se invierte: Adelie 0,391, Chinstrap 0,654, Gentoo 0,643. Dentro de cada especie un pico más largo también es más profundo. Un solo número para todo el conjunto describe una relación que no existe en ningún grupo.
Jak to policzono
- Cuarteto: Anscombe (1973), The American Statistician. 4 conjuntos de 11 puntos, copia del repositorio seaborn-data. Varianza dividida por n − 1.
- Pingüinos: Palmer Penguins (Gorman, Williams y Fraser, 2014; paquete palmerpenguins: Horst, Hill y Gorman, 2020), licencia CC0. 342 pingüinos con medidas del pico, 3 especies: Adelie 151, Chinstrap 68, Gentoo 123.
- Correlación r: coeficiente de Pearson, de −1 a 1; 0 significa que no hay relación lineal.
- Rectas: mínimos cuadrados, por separado para cada conjunto y cada grupo.
Por qué funciona
¿De dónde sale el signo invertido de los pingüinos? Los Gentoo tienen picos largos pero poco profundos: de media 47,5 mm de largo y 15,0 mm de profundidad. Los Adelie tienen picos cortos y profundos: 38,8 y 18,3 mm. Una sola correlación para todos compara sobre todo las especies entre sí: los Gentoo quedan abajo a la derecha del gráfico, los Adelie arriba a la izquierda, así que la recta de todos los puntos baja. Dentro de cada especie la relación es positiva, porque un pingüino más grande tiene un pico más grande en las dos direcciones. Es la paradoja de Simpson: cuando los grupos difieren en sus medias, la relación en el total puede tener el signo contrario al de cada grupo.
En el cuarteto el mecanismo es aún más sencillo. La media, la varianza y la correlación son sumas sobre los puntos, y disposiciones distintas de puntos dan las mismas sumas, igual que conjuntos distintos de números tienen la misma media. Los puntos lejos del resto son los que más tiran. En el conjunto IV el punto en x = 19 fija él solo la pendiente, porque los otros 10 puntos tienen la misma x = 8 y no dicen nada sobre la dirección.
¿Es casualidad de esta muestra de pingüinos? En el código de abajo remuestreamos los pingüinos con reemplazo 1000 veces: el mismo número de pingüinos, algunos dos veces, otros ninguna. En 1000 de 1000 remuestreos la correlación con todos es negativa y positiva en cada especie.
Error frecuente
Verdadero o falso: «los estadísticos descriptivos bastan; si dos conjuntos tienen la misma media, varianza y correlación, se parecen». Falso. En el lab los cuatro conjuntos de Anscombe comparten esos números hasta dos decimales y se ven totalmente distintos. Los números resumen: no muestran la forma, los grupos ni los puntos sueltos que tiran del resultado. En los pingüinos una sola correlación de −0,235 dice «pico más largo, pico menos profundo», y dentro de cada especie es al revés.
Para un modelo esto tiene consecuencias concretas. Una regresión lineal ajustada al conjunto II predice una recta donde los datos forman un arco. Un modelo de pingüinos que no conoce la especie aprende una relación negativa que no existe en ninguna especie. Por eso primero dibujas los datos y solo después eliges el modelo y las variables.
Test
Tres preguntas para comprobar lo aprendido. Elige una respuesta o despliega la solución bajo cada pregunta. Con el teclado: las flechas eligen, Enter o Espacio confirma.
Ideas clave
- Antes de construir un modelo, dibuja los datos: la distribución de cada variable, los pares de variables y los grupos.
- Las mismas medias, varianzas y correlaciones pueden esconder una nube, un arco, un punto atípico o un punto de palanca.
- Una relación en el total puede tener el signo contrario al de cada grupo (paradoja de Simpson); colorea los gráficos por grupo.
- Un solo punto lejano puede fijar la recta por sí solo: comprueba qué cambia sin él.
Más a fondo: fórmula, código, práctica
Las matemáticas
Correlación de Pearson: r = Σ(xᵢ − x̄)(yᵢ − ȳ) / √(Σ(xᵢ − x̄)² · Σ(yᵢ − ȳ)²). Recta de mínimos cuadrados: b = r · s_y / s_x, a = ȳ − b · x̄. Así que la recta solo depende de las medias, las desviaciones típicas y la correlación: los conjuntos que comparten esos números comparten la recta, se vean como se vean.
La paradoja de Simpson en una correlación sale de repartir la covarianza por grupos: cov(x, y) = Σ_g p_g · cov_g(x, y) + Σ_g p_g · (x̄_g − x̄)(ȳ_g − ȳ), donde p_g es la proporción del grupo g. El primer término es la relación dentro de los grupos; el segundo, la relación entre las medias de los grupos. Cuando las medias de los grupos están sobre una recta descendente, el segundo término es negativo y puede pesar más que el primero, positivo.
En código (Python)
El mismo cálculo en pandas: los números del cuarteto, la correlación del pico con todos los pingüinos y dentro de cada especie, y 1000 remuestreos con reemplazo que comprueban si el signo invertido es casualidad de esta muestra.
import numpy as np
import pandas as pd
q = pd.read_csv("data/raw/anscombe.csv")
for name, d in q.groupby("dataset"):
slope, intercept = np.polyfit(d.x, d.y, 1)
print(f"set {name}: mean x {d.x.mean():.2f}, mean y {d.y.mean():.2f}, variance x {d.x.var():.2f}, variance y {d.y.var():.2f}, r {d.x.corr(d.y):.3f}, line y = {intercept:.2f} + {slope:.3f}x")
df = pd.read_csv("data/raw/penguins.csv").dropna(subset=["bill_length_mm", "bill_depth_mm"])
r = lambda d: d.bill_length_mm.corr(d.bill_depth_mm)
print(f"{len(df)} penguins, bill length vs bill depth: all r = {r(df):.3f}; " + ", ".join(f"{s} {r(g):.3f}" for s, g in df.groupby("species")))
rng = np.random.default_rng(0)
same = 0
for b in range(1000):
s = df.sample(len(df), replace=True, random_state=rng) # remuestreo con reemplazo: los mismos pingüinos en número, algunos dos veces
same += r(s) < 0 and all(r(g) > 0 for _, g in s.groupby("species"))
print(f"1000 bootstrap resamples: negative over all and positive in every species in {same}")
Resultado
set I: mean x 9.00, mean y 7.50, variance x 11.00, variance y 4.13, r 0.816, line y = 3.00 + 0.500x
set II: mean x 9.00, mean y 7.50, variance x 11.00, variance y 4.13, r 0.816, line y = 3.00 + 0.500x
set III: mean x 9.00, mean y 7.50, variance x 11.00, variance y 4.12, r 0.816, line y = 3.00 + 0.500x
set IV: mean x 9.00, mean y 7.50, variance x 11.00, variance y 4.12, r 0.817, line y = 3.00 + 0.500x
342 penguins, bill length vs bill depth: all r = -0.235; Adelie 0.391, Chinstrap 0.654, Gentoo 0.643
1000 bootstrap resamples: negative over all and positive in every species in 1000
Los cuatro conjuntos solo difieren en el tercer decimal. En los pingüinos el signo invertido no es casualidad de esta muestra: se mantiene en 1000 de 1000 remuestreos con reemplazo.
Descargar el notebook (.ipynb). Ábrelo en Jupyter o súbelo a Google Colab; descarga por sí solo los datos que falten.
Para profesionales
- En pandas:
df.describe(),df.isna().sum()ydf.groupby("species").mean(). En seabornpairplot(df, hue="species")dibuja todos los pares de medidas con los colores de los grupos en una sola llamada. - Mira la distribución de cada variable (histograma), los pares de variables (diagrama de dispersión) y los datos faltantes antes de dividir o entrenar nada.
- Haz el EDA que guía decisiones (elegir variables, umbrales, quitar filas) con la parte de entrenamiento. Mirar el conjunto de prueba para esas decisiones es una fuga (lección 4.5).
- Apunta lo que has visto: grupos, puntos atípicos, códigos raros (p. ej. 0 en lugar de un dato faltante). Es una lista de cosas que comprobar cuando el modelo se comporte de forma extraña.
¿Te ha sido útil?
¡Gracias! Nos ayuda a mejorar.
Profundiza en el Atlas
Entradas de la enciclopedia sobre las ideas de esta lección: