Correlación y covarianza
Correlación de Pearson y Spearman, matriz de covarianza e interpretación de la correlación en machine learning.
Correlación y covarianza es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.
Medir relaciones
La covarianza y la correlación cuantifican cómo se mueven conjuntamente dos variables. Son la base de la selección de características, la teoría de carteras y el análisis exploratorio.
Covarianza
La covarianza es positiva cuando las variables aumentan juntas y negativa cuando una aumenta mientras la otra disminuye. Su magnitud depende de las unidades, lo que dificulta interpretar la covarianza sin escalar.
import numpy as np
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 5, 4, 6])
print(np.cov(x, y, ddof=1)) # 2x2 covariance matrixLa matriz de covarianza
np.cov devuelve una matriz: la diagonal contiene las varianzas y los elementos fuera de la diagonal contienen la covarianza entre pares. Se generaliza a muchas variables y sirve de base para PCA.
data = np.array([[1, 2, 3], [2, 4, 5], [3, 6, 7]], dtype=float)
print(np.cov(data.T)) # 3x3 covariance matrix of the columnsCorrelación: covarianza escalada
La correlación de Pearson reescala la covarianza al intervalo de -1 a 1 dividiéndola por el producto de las desviaciones estándar, por lo que no depende de las unidades y permite realizar comparaciones.
print(np.corrcoef(x, y)) # 2x2 correlation matrix, diagonal is 1Interpretar la correlación
+1 indica una relación lineal positiva perfecta, -1 una negativa perfecta y 0 ninguna relación LINEAL. Los valores cercanos a 0 aún pueden ocultar un patrón no lineal fuerte.
Correlación en pandas
df.corr() calcula de una sola vez las correlaciones por pares entre todas las columnas numéricas, la forma más rápida de explorar las relaciones de un conjunto de datos.
import pandas as pd
df = pd.DataFrame({"a": [1,2,3,4,5], "b": [2,4,5,4,6], "c": [9,7,6,5,3]})
print(df.corr()) # Pearson by defaultPearson frente a Spearman
Pearson mide la asociación LINEAL sobre los valores originales. Spearman trabaja con RANGOS, por lo que detecta cualquier relación monótona y es resistente a los valores atípicos.
from scipy import stats
x = np.array([1, 2, 3, 4, 100])
y = np.array([1, 2, 3, 4, 5])
print(stats.pearsonr(x, y).statistic) # distorted by outlier
print(stats.spearmanr(x, y).statistic) # 1.0 (perfectly monotonic)Elección del método
df.corr(method="spearman") cambia pandas para usar la correlación de rangos. Prefiera Spearman cuando haya valores atípicos o relaciones no lineales pero monótonas; utilice Pearson con datos lineales limpios.
print(df.corr(method="spearman"))La correlación NO implica causalidad
Una correlación fuerte no significa que una variable cause la otra. Un factor de confusión oculto puede influir en ambas. Pregúntese siempre qué más podría explicar la relación.
Correlación espuria
Con suficientes variables, algunas se correlacionarán por pura casualidad. Las ventas de helado y los ahogamientos están correlacionados porque ambos aumentan con el calor del verano, no porque uno cause el otro. Analice con escepticismo las correlaciones inesperadas.
Visualización con un mapa de calor
Un mapa de calor de correlaciones hace que los patrones sean evidentes. Los pares de características muy correlacionadas pueden ser redundantes y candidatos a eliminarse antes de crear el modelo.
# import seaborn as sns
# sns.heatmap(df.corr(), annot=True, cmap="coolwarm")Comprobación rápida
Compruebe sus conocimientos sobre correlación.
Resumen
Herramientas para trabajar con correlaciones:
- La covarianza muestra la dirección, pero depende de las unidades;
np.covproporciona la matriz - La correlación se reescala al intervalo -1..1:
np.corrcoef,df.corr() - Pearson (lineal) frente a Spearman (rangos, robusta, monótona)
- La correlación no implica causalidad; tenga cuidado con los factores de confusión y las relaciones espurias
Preguntas frecuentes
¿La lección «Correlación y covarianza» es gratis?
Sí — el texto completo de «Correlación y covarianza» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.
¿Qué aprenderé en «Correlación y covarianza»?
Correlación de Pearson y Spearman, matriz de covarianza e interpretación de la correlación en machine learning. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Learn AI with Python?
No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Correlación y covarianza»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?
Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Estadística descriptiva y distribuciones
- Probabilidad y teorema de Bayes
- Contraste de hipótesis
- Correlación y covarianza