En este estudio de caso, aplicaremos las técnicas y métodos aprendidos a lo largo del curso para analizar un conjunto de datos de ventas. El objetivo es descubrir información útil que pueda apoyar la toma de decisiones en una empresa.

Objetivos del Estudio de Caso

  1. Comprender el conjunto de datos de ventas.
  2. Realizar una limpieza y preparación de los datos.
  3. Explorar los datos para identificar patrones y tendencias.
  4. Modelar los datos para predecir ventas futuras.
  5. Evaluar y validar los modelos creados.
  6. Comunicar los resultados de manera efectiva.

Paso 1: Comprender el Conjunto de Datos de Ventas

Descripción del Conjunto de Datos

El conjunto de datos de ventas contiene información sobre las transacciones realizadas por una empresa durante un año. Las columnas incluyen:

  • Fecha: Fecha de la transacción.
  • Producto: Nombre del producto vendido.
  • Cantidad: Cantidad de unidades vendidas.
  • Precio: Precio por unidad.
  • Ingresos: Ingresos generados por la transacción.
  • Región: Región donde se realizó la venta.

Ejemplo de Datos

Fecha Producto Cantidad Precio Ingresos Región
2023-01-01 Producto A 10 15.00 150.00 Norte
2023-01-02 Producto B 5 20.00 100.00 Sur
2023-01-03 Producto A 7 15.00 105.00 Este
2023-01-04 Producto C 3 25.00 75.00 Oeste

Paso 2: Limpieza y Preparación de los Datos

Identificación y Manejo de Datos Faltantes

Primero, identificamos si hay datos faltantes en el conjunto de datos.

import pandas as pd

# Cargar el conjunto de datos
df = pd.read_csv('ventas.csv')

# Verificar datos faltantes
print(df.isnull().sum())

Ejercicio Práctico

  1. Cargar el conjunto de datos de ventas.
  2. Identificar y manejar los datos faltantes.

Solución

# Cargar el conjunto de datos
df = pd.read_csv('ventas.csv')

# Identificar datos faltantes
print(df.isnull().sum())

# Manejo de datos faltantes (ejemplo: eliminación de filas con datos faltantes)
df = df.dropna()

Transformación y Normalización de Datos

Normalizamos los datos para asegurar que estén en un formato adecuado para el análisis.

# Convertir la columna 'Fecha' a tipo datetime
df['Fecha'] = pd.to_datetime(df['Fecha'])

# Normalizar los precios (ejemplo: ajustar precios a una escala común)
df['Precio'] = df['Precio'] / df['Precio'].max()

Paso 3: Exploración de Datos

Análisis Exploratorio de Datos (EDA)

Realizamos un análisis exploratorio para entender mejor los datos.

import matplotlib.pyplot as plt

# Resumen estadístico
print(df.describe())

# Gráfico de ventas por producto
df.groupby('Producto')['Ingresos'].sum().plot(kind='bar')
plt.title('Ingresos por Producto')
plt.xlabel('Producto')
plt.ylabel('Ingresos')
plt.show()

Ejercicio Práctico

  1. Realizar un análisis exploratorio de los datos.
  2. Crear gráficos para visualizar las ventas por producto y región.

Solución

# Resumen estadístico
print(df.describe())

# Gráfico de ventas por producto
df.groupby('Producto')['Ingresos'].sum().plot(kind='bar')
plt.title('Ingresos por Producto')
plt.xlabel('Producto')
plt.ylabel('Ingresos')
plt.show()

# Gráfico de ventas por región
df.groupby('Región')['Ingresos'].sum().plot(kind='bar')
plt.title('Ingresos por Región')
plt.xlabel('Región')
plt.ylabel('Ingresos')
plt.show()

Paso 4: Modelado de Datos

Regresión Lineal para Predecir Ventas Futuras

Utilizamos la regresión lineal para predecir las ventas futuras basadas en los datos históricos.

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression

# Preparar los datos
X = df[['Cantidad', 'Precio']]
y = df['Ingresos']

# Dividir los datos en conjuntos de entrenamiento y prueba
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Crear el modelo de regresión lineal
model = LinearRegression()
model.fit(X_train, y_train)

# Predecir las ventas futuras
y_pred = model.predict(X_test)

# Evaluar el modelo
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_test, y_pred)
print(f'Error Cuadrático Medio: {mse}')

Ejercicio Práctico

  1. Dividir los datos en conjuntos de entrenamiento y prueba.
  2. Crear y entrenar un modelo de regresión lineal.
  3. Evaluar el modelo utilizando el error cuadrático medio.

Solución

# Dividir los datos en conjuntos de entrenamiento y prueba
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Crear el modelo de regresión lineal
model = LinearRegression()
model.fit(X_train, y_train)

# Predecir las ventas futuras
y_pred = model.predict(X_test)

# Evaluar el modelo
mse = mean_squared_error(y_test, y_pred)
print(f'Error Cuadrático Medio: {mse}')

Paso 5: Evaluación y Validación de Modelos

Validación Cruzada

Utilizamos la validación cruzada para evaluar la robustez del modelo.

from sklearn.model_selection import cross_val_score

# Validación cruzada
scores = cross_val_score(model, X, y, cv=5)
print(f'Puntajes de Validación Cruzada: {scores}')
print(f'Promedio de Puntajes: {scores.mean()}')

Ejercicio Práctico

  1. Realizar validación cruzada del modelo de regresión lineal.
  2. Calcular y mostrar los puntajes de validación cruzada.

Solución

# Validación cruzada
scores = cross_val_score(model, X, y, cv=5)
print(f'Puntajes de Validación Cruzada: {scores}')
print(f'Promedio de Puntajes: {scores.mean()}')

Paso 6: Comunicación de Resultados

Creación de Reportes

Creamos un reporte que resuma los hallazgos y las predicciones del modelo.

# Crear un resumen de los resultados
reporte = {
    'Error Cuadrático Medio': mse,
    'Puntajes de Validación Cruzada': scores.tolist(),
    'Promedio de Puntajes': scores.mean()
}

# Mostrar el reporte
print(reporte)

Ejercicio Práctico

  1. Crear un reporte que incluya el error cuadrático medio y los puntajes de validación cruzada.
  2. Mostrar el reporte.

Solución

# Crear un resumen de los resultados
reporte = {
    'Error Cuadrático Medio': mse,
    'Puntajes de Validación Cruzada': scores.tolist(),
    'Promedio de Puntajes': scores.mean()
}

# Mostrar el reporte
print(reporte)

Conclusión

En este estudio de caso, hemos aplicado técnicas de análisis de datos para comprender, limpiar, explorar, modelar y comunicar los resultados de un conjunto de datos de ventas. A través de ejercicios prácticos, hemos reforzado los conceptos aprendidos y hemos demostrado cómo estos métodos pueden ser utilizados para apoyar la toma de decisiones en una empresa.

Resumen de Conceptos Aprendidos

  1. Comprensión y preparación de datos.
  2. Análisis exploratorio y visualización de datos.
  3. Modelado predictivo utilizando regresión lineal.
  4. Evaluación y validación de modelos.
  5. Comunicación efectiva de resultados.

Este estudio de caso proporciona una base sólida para abordar problemas de análisis de datos en el mundo real y aplicar técnicas avanzadas en futuros proyectos.

© Copyright 2024. Todos los derechos reservados