Ejercicio 45: Análisis Estadístico y Visualización de Datos con tips y ventaCasas

Este ejercicio tiene como objetivo que los estudiantes practiquen medidas estadísticas descriptivas y visualización de datos en Python utilizando Pandas, Matplotlib y Seaborn. Se trabajará con los datasets tips y ventaCasas, explorando técnicas como boxplots, violin plots, análisis de tendencias y formatos gráficos mejorados.

Objetivos

  1. Calcular medidas de tendencia central y dispersión.
  2. Crear gráficos de boxplots y violin plots con personalización avanzada.
  3. Aplicar transformaciones y análisis en variables derivadas.
  4. Interpretar patrones y diferencias entre grupos dentro de los datos.

Parte A: Carga y Exploración de Datos

Se trabajará con los siguientes datasets:

  1. Tips Dataset: Contiene información sobre propinas en restaurantes con variables como total_bill, tip, sex, day, time y size (cantidad de comensales).
  2. VentaCasas Dataset: Contiene datos sobre precios de venta de casas y variables relacionadas con las propiedades.

Tareas

  1. Cargar ambos datasets y visualizar sus primeras filas.
  2. Verificar valores nulos y realizar un resumen estadístico (describe()).
  3. Identificar qué tipo de variables contiene cada dataset y su distribución.

Pregunta de reflexión: ¿Por qué es importante explorar los datos antes de visualizarlos?

Parte B: Cálculo de Medidas Estadísticas

Se calcularán métricas descriptivas para analizar la distribución de los datos.

Tareas

  1. Dataset: Tips

    • Calcular media, mediana y moda de tip.
    • Calcular medidas de dispersión: rango, desviación estándar e IQR (percentiles 25, 50 y 75).
    • Comparar estas medidas entre diferentes grupos (sex, day).
  2. Dataset: VentaCasas

    • Calcular las mismas métricas para PrecioDeVenta.
    • Comparar precios de venta agrupados por alguna variable relevante.

Pregunta de reflexión: ¿Cómo se interpretan estas métricas en cada dataset?

Parte C: Análisis de Distribuciones con Boxplots y Violin Plots

Se utilizarán diferentes tipos de gráficos para analizar la dispersión de los datos.

Tareas

  1. Boxplots de Propinas (tips)

    • Crear un boxplot de tip por sex, agregando valores medios (showmeans=True).
    • Agregar etiquetas y personalizar los ejes (set_xlabel(), set_ylabel()).
  2. Boxplots de Precios de Venta (ventaCasas)

    • Generar un boxplot de PrecioDeVenta, aplicando formato de moneda (ticker.StrMethodFormatter).
    • Comparar con histogramas para evaluar la distribución.
  3. Violin Plots en tips

    • Crear un violin plot de tip por sex, diferenciando con colores personalizados.
    • Comparar con el boxplot y analizar diferencias en la distribución.

Pregunta de reflexión: ¿Cuándo es mejor utilizar un violin plot en lugar de un boxplot?

Parte D: Transformaciones y Análisis de Variables Derivadas

Se explorarán relaciones nuevas creando variables transformadas.

Tareas

  1. Crear una nueva variable en tips

    • Agregar la columna tip_percentage = tip / total_bill * 100.
    • Generar un boxplot de tip_percentage por sex.
  2. Estudio de tip_percentage por Día y Sexo

    • Generar un boxplot de tip_percentage por day, diferenciando por sex (hue="sex").

Pregunta de reflexión: ¿Existe una diferencia significativa en la proporción de propinas según el día de la semana o el sexo del cliente?

Parte E: Visualización de Patrones y Tendencias

Se utilizarán gráficos de líneas y histogramas para evaluar patrones en los datos.

Tareas

  1. Histogramas y KDE

    • Crear un histograma de PrecioDeVenta con sns.histplot().
    • Comparar con un gráfico de densidad (sns.kdeplot()) para evaluar diferencias.
  2. Gráfico de Boxplot Mejorado para PrecioDeVenta

    • Aplicar configuraciones avanzadas en Matplotlib para mejorar la presentación.

Pregunta de reflexión: ¿Qué información adicional aportan los gráficos de densidad en comparación con los histogramas?

Entrega esperada

  • Código bien estructurado con medidas estadísticas descriptivas.
  • Boxplots y violin plots bien interpretados.
  • Transformaciones y análisis de variables derivadas.
  • Histogramas y gráficos de densidad bien diseñados.
  • Reflexiones sobre la utilidad de cada tipo de visualización.

A continuación, se proporciona el código base para comenzar con el ejercicio:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# Cargar el dataset de tips
tips = sns.load_dataset('tips')

# TODO: Implementar

# Cargar el dataset de ventaCasas
# venta_casas = pd.read_csv('ruta_al_archivo/ventaCasas.csv')

# TODO: Implementar

Pruebas y ejemplos se deben realizar en celdas separadas para cada parte del ejercicio.