21  Fundamentos del análisis exploratorio de datos

Autor/a

Diego Villalba

Fecha de publicación

16 de octubre de 2026

1 Introducción

El análisis exploratorio de datos (EDA) es el proceso iterativo mediante el cual se conoce un conjunto de datos antes de construir modelos o comunicar resultados definitivos. Combina resúmenes numéricos y visuales para descubrir estructura, evaluar calidad y formular preguntas más precisas (Tukey 1977; Heckert et al. 2012).

Dentro de CRISP-DM, el EDA forma parte del entendimiento de los datos y mantiene una relación iterativa con su preparación. Un hallazgo exploratorio puede exigir corregir una variable; después de corregirla, la distribución debe examinarse nuevamente.

Definición. El EDA es una estrategia de investigación que utiliza estadística descriptiva y visualización para reconocer patrones, anomalías, relaciones y limitaciones antes de elegir un procedimiento de modelado.

2 Preguntas que orientan el EDA

  • ¿Cuál es la unidad de observación y cuántos registros existen?
  • ¿Qué significa cada variable y en qué escala fue medida?
  • ¿Qué valores faltan y por qué podrían faltar?
  • ¿Qué valores son imposibles, inconsistentes o duplicados?
  • ¿Dónde se localizan los valores y cuánto varían?
  • ¿Qué forma tienen las distribuciones?
  • ¿Existen diferencias entre grupos o concentración del total?
  • ¿Qué asociaciones aparecen entre variables?
Mostrar código
flowchart LR
  A["Vista analítica del DW"] --> B["Perfilar variables"]
  B --> C["Resumir y visualizar"]
  C --> D["Formular hallazgos"]
  D --> E["Decidir tratamiento"]
  E --> B
  D --> F["Preparar modelado"]

flowchart LR
  A["Vista analítica del DW"] --> B["Perfilar variables"]
  B --> C["Resumir y visualizar"]
  C --> D["Formular hallazgos"]
  D --> E["Decidir tratamiento"]
  E --> B
  D --> F["Preparar modelado"]

La salida del EDA no es una colección de gráficos. Es una bitácora de hallazgos, evidencia, decisiones y preguntas pendientes.

3 Unidad de observación y granularidad

Antes de calcular cualquier estadístico debe identificarse qué representa una fila: una venta, un producto por tienda, un cliente, una visita o una medición temporal. Mezclar granularidades produce duplicaciones y resúmenes engañosos.

Ejemplo. Si una tabla contiene una fila por producto y outlet, sumar ventas puede ser válido; contar productos sin distinguir el outlet puede contar el mismo producto varias veces.

4 Tipos de variables

4.1 Variables cualitativas

  • Nominales: categorías sin orden intrínseco, como tipo de outlet o método de pago.
  • Ordinales: niveles ordenados sin distancias métricas garantizadas, como satisfacción baja, media y alta.

4.2 Variables cuantitativas

  • Discretas: conteos con valores separados, como número de compras.
  • Continuas: mediciones en un intervalo, como peso, ingreso o duración.
Tipo Resúmenes adecuados Visualizaciones iniciales
Nominal Frecuencias, proporciones, moda, diversidad Barras
Ordinal Frecuencias ordenadas, mediana, cuantiles Barras ordenadas, acumulada
Discreta Frecuencias, centro, dispersión Barras o histograma entero
Continua Centro, dispersión, forma Histograma, ECDF, boxplot

El tipo almacenado no siempre coincide con el tipo estadístico. Un código postal numérico sigue siendo nominal y una fecha guardada como texto sigue representando tiempo.

5 Frecuencias y proporciones

Para valores \(v_1,\ldots,v_K\), la frecuencia absoluta y la proporción son

\[ f_k=\#\{i:x_i=v_k\}, \qquad p_k=\frac{f_k}{n}, \qquad \sum_{k=1}^{K}p_k=1. \tag{1} \]

La colección \((p_1,\ldots,p_K)\) es la distribución empírica de una variable categórica o discreta.

6 Frecuencias acumuladas y ECDF

Cuando existe un orden natural,

\[ F_k=\sum_{j\le k}f_j, \qquad P_k=\sum_{j\le k}p_j. \tag{2} \]

Para una variable cuantitativa, la función de distribución empírica es

\[ \widehat F_n(x)=\frac{1}{n}\sum_{i=1}^{n}\mathbf{1}(x_i\le x). \tag{3} \]

Definición. La ECDF indica la proporción observada de datos menores o iguales que cada umbral. A diferencia del histograma, no requiere elegir intervalos.

7 Ejemplo de calidad categórica

Mostrar código
import numpy as np
import pandas as pd
import plotly.express as px
import plotly.graph_objects as go
from plotly.subplots import make_subplots

resultado = pd.Series([
    "Asistió", "No asistió", "ASISTIÓ", "Canceló", "Asistió",
    "NA", "No asistió", "No  asistió", None, "Asistió",
    "Canceló", "ASISTIÓ", "No asistió", "NA", "Asistió"
], name="resultado_cita")

conteos = resultado.fillna("<faltante>").value_counts().rename_axis("Categoría").reset_index(name="Frecuencia")
conteos["Proporción"] = conteos["Frecuencia"]/conteos["Frecuencia"].sum()
fig = px.bar(conteos, x="Categoría", y="Frecuencia", color="Categoría", text="Frecuencia",
             title="Frecuencias que revelan duplicados semánticos y faltantes")
fig.update_layout(showlegend=False)
fig.show()

Hallazgo. Asistió y ASISTIÓ, así como No asistió y No asistió, son duplicados semánticos. NA y <faltante> podrían representar la misma ausencia, pero debe confirmarse con el diccionario de datos antes de recodificar.

8 Ejemplo discreto y acumulado

Mostrar código
rng = np.random.default_rng(2026)
espera = np.r_[rng.poisson(12, 600), [-4, -1, 95, 120]]
tabla = pd.Series(espera).value_counts().sort_index().rename_axis("Días").reset_index(name="Frecuencia")
tabla["Acumulada"] = tabla["Frecuencia"].cumsum()/tabla["Frecuencia"].sum()

fig = make_subplots(specs=[[{"secondary_y": True}]])
fig.add_bar(x=tabla["Días"], y=tabla["Frecuencia"], name="Frecuencia", secondary_y=False)
fig.add_scatter(x=tabla["Días"], y=tabla["Acumulada"], mode="lines+markers",
                name="Proporción acumulada", secondary_y=True)
fig.update_yaxes(title_text="Frecuencia", secondary_y=False)
fig.update_yaxes(title_text="Proporción acumulada", tickformat=".0%", secondary_y=True)
fig.update_layout(title="Tiempo de espera: distribución y acumulación")
fig.show()

Los tiempos negativos son imposibles bajo la definición habitual y requieren revisión. Los valores de 95 y 120 días son extremos, pero podrían ser casos reales; no deben eliminarse sin evidencia.

9 Datos faltantes

El porcentaje faltante debe analizarse por variable y por grupos relevantes. Un promedio global puede ocultar que la ausencia se concentra en una fuente, fecha o categoría. La decisión de imputar pertenece al preprocesamiento, pero el EDA debe documentar patrón, magnitud y posibles mecanismos.

10 Valores atípicos y anomalías

Un valor atípico es una observación alejada según una regla estadística; una anomalía es un caso incompatible con el proceso esperado. No son sinónimos de error.

Evidencia Pregunta Acción posible
Valor imposible ¿Contradice el dominio? Corregir, marcar o excluir con trazabilidad
Valor raro pero posible ¿Es un segmento real? Conservar y analizar por separado
Cola extensa ¿La escala es adecuada? Transformar o usar medidas robustas
Categoría infrecuente ¿Es error o nivel real? Estandarizar o agrupar con criterio

11 Ruta descriptiva del libro

Los siguientes capítulos desarrollan seis perspectivas complementarias:

  1. Medidas de localización: ¿dónde están los valores?
  2. Medidas de variabilidad: ¿cuánto cambian?
  3. Medidas de forma: ¿cómo son sus colas y simetría?
  4. Medidas de heterogeneidad: ¿cambian entre categorías o grupos?
  5. Medidas de concentración: ¿quién acumula el total?
  6. Medidas de correlación: ¿cómo se asocian dos variables?

Cada capítulo teórico está seguido por una práctica reproducible con BigMart.

12 Checklist de salida

Un EDA reproducible debe dejar: diccionario y granularidad, perfil de faltantes, dominios validados, resúmenes con unidades, visualizaciones pertinentes, hallazgos redactados, decisiones justificadas y preguntas pendientes.

13 Ejercicios

  1. Clasifique cada variable de BigMart por escala estadística y justifique los casos ambiguos.
  2. Proponga una regla de validación para tres columnas del dataset.
  3. Compare qué información aporta un histograma frente a una ECDF.

Referencias