Python · Capítulo 12 · Lección de conceptos · 7 min de lectura

Qué dice una correlación y qué no

Un número de correlación dice cuánto se mueven juntas dos columnas, nada sobre el porqué. Aprende a leerlo, a revisar qué más podría mover a ambas y a escribir una conclusión que afirme solo lo que muestran los datos.

La idea

La correlación responde una pregunta estrecha: cuando una columna está por encima de su media, ¿la otra suele estar también por encima de la suya? Da la respuesta como un solo número, r, entre -1 y +1.

  • Cerca de +1: suben juntas. Los productos más caros tienen costos más altos.
  • Cerca de -1: una sube mientras la otra baja.
  • Cerca de 0: saber una te dice poco de la otra, al menos en línea recta.

Eso es todo lo que dice. Describe el patrón en las filas que tienes. No dice por qué existe el patrón, si se mantendría al cambiar una columna a propósito, ni si es lo bastante grande como para importar.

Figura 1

Precio y costo: cuando uno es alto, el otro también

products
product_idunit_priceunit_cost
102919.00503.50
103789.00429.87
104429.00214.70
105449.00232.70
106229.0079.35

Paso 1 de 3 Cinco productos de Furniture, dos columnas numéricas. La correlación hace una sola pregunta: cuando unit_price está por encima de la media, ¿unit_cost también lo está?

  1. Cinco productos de Furniture, dos columnas numéricas. La correlación hace una sola pregunta: cuando unit_price está por encima de la media, ¿unit_cost también lo está?
  2. El producto 102 tiene el precio más alto y el costo más alto. El 106 tiene el más bajo de ambos. Las dos columnas suben y bajan juntas.
  3. En los 111 productos que tienen costo, df[['unit_price', 'unit_cost']].corr() da 0.98. Cerca de +1 significa que se mueven juntas casi en línea recta.

Por qué existe

A un analista le preguntan todo el tiempo "¿X va con Y?". ¿Más gasto en publicidad va con más pedidos? ¿Un precio más alto va con menos unidades vendidas? ¿Las sesiones más largas van con más compras? Leer filas para averiguarlo no funciona más allá de un puñado, y un gráfico de dispersión no escala a 20 pares. El número de correlación comprime un par de columnas en un valor comparable, así que corr() sobre un DataFrame entero ordena todos los pares a la vez.

Por eso la lección va después de los gráficos. Un diagrama de caja, un histograma y un regplot te muestran los datos, y el número de correlación los resume; usados juntos, cubren los puntos ciegos del otro.

También es donde los analistas afirman demasiado con más frecuencia. El número es tan limpio que pide citarse como una causa. Aprender qué respalda y qué no es la diferencia entre un hallazgo y un bochorno en la próxima reunión, cuando alguien pregunte "¿pero no podría ser la temporada?".

Cómo funciona por dentro

De columnas a un número

df.corr() estandariza cada columna (a cuántas desviaciones estándar de la media está cada valor) y promedia los productos de los pares correspondientes. Cuando ambas están por encima de la media a la vez, o por debajo a la vez, los productos son positivos y r sube. Cuando una es alta mientras la otra es baja, los productos son negativos. El resultado es una matriz: cada columna numérica frente a todas las demás, con 1.0 en la diagonal porque una columna coincide perfectamente consigo misma.

Un mapa de calor de seaborn, sns.heatmap(df.corr(), annot=True), pinta esa matriz para que resalten las celdas fuertes. Léelo buscando las celdas oscuras fuera de la diagonal. La matriz es simétrica, así que cada par aparece dos veces, y "los pares más fuertes" significa mirar un solo triángulo. Un buen hábito es ordenar los pares por valor absoluto, porque -0.9 es tan fuerte como +0.9.

Lo que r no mide

r mide la coincidencia en línea recta. Una relación que sube y luego baja puede tener una r cerca de 0 y seguir siendo perfectamente clara en un gráfico. Por eso también dibujas el gráfico de dispersión (sns.regplot): el número te dice cuánta fuerza, la imagen te dice qué forma.

También es sensible a los valores atípicos. Un solo punto extremo puede subir o bajar r, porque el valor extremo aporta un producto grande. Encuentra primero los atípicos, con la regla del IQR o un diagrama de caja, y luego decide si el punto pertenece a la historia.

Por qué una r fuerte aún puede engañar

Toma 2025 por mes. El gasto en publicidad y los pedidos tienen r = 0.95.

Figura 2

Gasto en publicidad y pedidos por mes, 2025

months
monthad_spendorders
Jan35944296
Feb31328235
Mar36418326
Apr36895318
May40022352
Jun38016352
Jul39652344
Aug40143352
Sep39381345
Oct42808371
Nov70675715
Dec59359777

Paso 1 de 4 Doce meses, dos columnas. ad_spend es el total de marketing_spend.amount, orders el número de pedidos hechos ese mes.

  1. Doce meses, dos columnas. ad_spend es el total de marketing_spend.amount, orders el número de pedidos hechos ese mes.
  2. En estos meses la correlación es 0.95: los meses con más gasto tuvieron más pedidos. Es fuerte, y es cierta.
  3. Fíjate en quién la sostiene. Noviembre y diciembre tienen con diferencia más gasto y más pedidos. La temporada navideña puede estar empujando a ambos, o se subió el presupuesto porque venía la demanda.
  4. El número no puede distinguir entre estas historias. Solo dice que las columnas se mueven juntas. Saber si el gasto *causó* pedidos exige otro tipo de evidencia.

Hay al menos tres explicaciones para un número así. El gasto puede causar pedidos. Los pedidos pueden causar gasto, por ejemplo un presupuesto que sigue a los ingresos. O algo más, aquí la temporada navideña, puede elevar ambos. La correlación es la misma en los tres casos. Para distinguirlos necesitas un experimento (cambiar el gasto en unas regiones y no en otras), una comparación que mantenga fija la temporada, o saber cómo se fijó el presupuesto.

La pendiente ayuda con el tamaño. Una recta por los 12 puntos sube unos 14 pedidos por cada $1,000 más de gasto mensual. Eso es una descripción de los meses de los datos. Extenderla a un presupuesto duplicado va más allá de los datos que tienes.

Escribir la conclusión

Un análisis que se detiene en el número está sin terminar. Un directivo necesita una frase sobre la que actuar, y la frase tiene una forma.

Figura 3

Una conclusión tiene cuatro partes

  1. Hallazgo lo que muestran los números
  2. Tamaño cuánto, en unidades que el lector conoce
  3. Y entonces qué hacer o revisar después
  4. Límite lo que los datos no pueden decir

Paso 1 de 4 Di lo que encontraste, en una frase que un directivo pueda repetir: 'Los meses con más gasto en publicidad tuvieron más pedidos en 2025.'

  1. Di lo que encontraste, en una frase que un directivo pueda repetir: 'Los meses con más gasto en publicidad tuvieron más pedidos en 2025.'
  2. Di cuánto, calculado y no adivinado: correlación 0.95, unos 14 pedidos más por cada $1,000 más de gasto mensual.
  3. Di qué se sigue de ello: prueba un cambio de gasto en un mes tranquilo antes de dar por hecha la relación.
  4. Di lo que los datos no pueden mostrar: noviembre y diciembre elevan ambos, así que esto no prueba que el gasto cause pedidos.

Cada número debería calcularse con tus datos, no estimarse a ojo. El límite es parte del hallazgo: le dice al lector hasta dónde confiar en él, y te protege cuando alguien cita tu frase sin el contexto.

Errores comunes

"Una correlación de 0.95 significa que el gasto en publicidad causa el 95% de los pedidos"

r no es un porcentaje de nada. Elevada al cuadrado es la parte de la variación de una columna que describe una recta sobre la otra, cerca del 91% aquí, y sigue siendo una afirmación sobre patrones en las filas. La causa necesita evidencia aparte: un experimento, o una razón por la que fallan las otras explicaciones.

"Si r es casi cero, las columnas no están relacionadas"

Significa que no hay relación en línea recta. Una relación en forma de U puede esconderse tras r = 0. Mira siempre el gráfico de dispersión antes de decir "no hay relación", y comprueba si un grupo de filas cancela a otro, como los consumidores frente a los clientes de empresa.

"Una correlación fuerte en los totales se mantendrá en cada grupo"

Las correlaciones pueden cambiar de signo al dividir los datos. Dos columnas pueden moverse juntas en toda la tienda y moverse en sentido contrario dentro de cada categoría o segmento, porque los grupos están en niveles distintos. Si un par importa para una decisión, vuelve a calcularlo por grupo (groupby y luego corr) antes de escribir la conclusión.

Ponte a prueba

Una pregunta. Al responderla, la lección queda marcada en el mapa; nunca bloquea un nivel.

El gasto mensual en publicidad y los pedidos mensuales tienen una correlación de 0.95 en 2025. ¿Qué afirmación respalda ese número por sí solo?

Elige qué puede ejecutarse en este sitio. Puedes cambiarlo cuando quieras desde "Configurar cookies", al pie de cada página.