Ejercicio 47: Análisis de Correlaciones y Visualización con Heatmaps
En este ejercicio, se busca que los estudiantes practiquen el análisis de correlaciones y su visualización mediante heatmaps. Se explorarán distintas técnicas para representar matrices de correlación utilizando Pandas Styling, Matplotlib y Seaborn.
Objetivos
- Generar un dataset de 10 entidades con una serie temporal.
- Calcular la matriz de correlación entre las entidades.
- Aplicar Pandas Styling para visualizar la matriz con formato de heatmap.
- Representar la matriz de correlación con
imshow
de Matplotlib y anotaciones. - Usar Seaborn para generar un heatmap de la correlación.
Parte A: Generación de Datos y Cálculo de Correlaciones
Se generará un dataset sintético con 10 entidades y valores temporales aleatorios.
Tareas
- Crear un DataFrame de Pandas con 10 columnas representando entidades y 100 filas representando valores en el tiempo.
- Calcular la matriz de correlación con
.corr()
. - Redondear los valores de la matriz de correlación a tres decimales para facilitar la lectura.
Código Base
import pandas as pd
import numpy as np
# Generar datos aleatorios
np.random.seed(0)
data = np.random.rand(100, 10)
# Crear DataFrame
df = pd.DataFrame(data, columns=[f'entidad_{i}' for i in range(1, 11)])
# TODO: Implementar cálculo de la matriz de correlación y redondeo
Parte B: Visualización con Pandas Styling
Se aplicará formateo y estilo con Pandas para representar la matriz de correlación como un heatmap.
Tareas
- Aplicar Pandas Styling:
- Usar
.style.background_gradient(cmap='coolwarm')
para resaltar valores. - Usar
.format("{:.3f}")
para mostrar pocos decimales. - Ajustar la escala de colores para interpretar mejor la correlación.
- Usar
Código Base
# TODO: Implementar visualización con Pandas Styling
Parte C: Visualización con Matplotlib (imshow
o matshow
)
Se generará un heatmap usando Matplotlib con anotaciones de valores de correlación.
Tareas
- Crear un heatmap con
imshow
omatshow
de Matplotlib.- Aplicar un mapa de color (
cmap='coolwarm'
). - Agregar etiquetas en los ejes con los nombres de las entidades.
- Mostrar valores de correlación sobre las celdas con
plt.text()
.
- Aplicar un mapa de color (
Código Base
import matplotlib.pyplot as plt
# TODO: Implementar visualización con Matplotlib
Parte D: Visualización con Seaborn (sns.heatmap
)
Se utilizará Seaborn para generar una versión más detallada del heatmap de correlación.
Tareas
- Usar
sns.heatmap()
para representar la matriz de correlación.- Personalizar el mapa de color con
cmap='coolwarm'
. - Agregar valores de correlación dentro del heatmap (
annot=True
). - Ajustar los límites del color para facilitar la interpretación (
vmin=-1, vmax=1
).
- Personalizar el mapa de color con
Código Base
import seaborn as sns
# TODO: Implementar visualización con Seaborn
Pruebas
Ejemplo de prueba para verificar la correcta implementación de la matriz de correlación:
# Prueba de cálculo de correlación
correlation_matrix = df.corr().round(3)
print(correlation_matrix)
Reflexiones
- ¿Por qué es útil analizar correlaciones en datasets de múltiples variables?
- ¿Cuándo es más conveniente usar Pandas Styling en lugar de una librería de visualización?
- ¿Cuáles son las ventajas de usar Matplotlib para visualizar correlaciones?
- ¿Cómo se comparan las distintas formas de visualizar la correlación?
Entrega esperada
- Código bien estructurado con generación y exploración de datos.
- Matriz de correlación formateada y visualizada con Pandas Styling.
- Heatmap con Matplotlib (
imshow/matshow
) con anotaciones. - Heatmap con Seaborn (
sns.heatmap
) con personalización de colores y valores. - Reflexiones sobre las ventajas de cada método de visualización.