Proceso para conocer y entender nuestros datos
Dpto. de Fundamentos del Análisis Económico. Universidad de Alicante
El AED es una fase inicial importante, con dos objetivos:
Conocer nuestros datos e identificar problemas → Preprocesamiento
Análisis descriptivo: identificar patrones y encontrar escenarios de análisis
NO hay una “receta”: el proceso es diferente con distintos datos o con los mismos datos para diferentes objetivos
Una consultora analiza 500 PYMES europeas fundadas entre 1980-2020 para:
Fuente de datos: pymes_europa.csv
Objetivo del AED:
Contexto: conocimiento previo de los datos (fuente, cómo están almacenados, etc.)
Cargar los datos
Reconocimiento inicial de las características: ¿todo como esperamos?
Consultar el “diccionario” de datos
Verificar que las variables la información y el tipo adecuado
Detectar inconsistencias en texto, fechas, unidades, etc.
Ej.: en sector, “Tecnología”, “tecnologia”, “TECNOLOGÍA” son la misma categoría
este tipo de problemas se puede descubrir más adelante.
NAs, pero se suele preferir decidir al modelizarVariables que contienen información redundante
activos_total y total_recursos son pasivos + patrimonio_neto (igualdad contable)Renombrar variables (para mayor claridad), generar nuevas
¿Mantenemos solo algunas variables u observaciones?
Otras…
Queremos entender cómo cambian los valores de una variable entre distintas observaciones (p. e., ventas de diferentes empresas), es decir, su distribución
Aspectos a observar en la distribución
Inconsistencias: categorías erróneas (“unknown”), valores fuera de rango
Concentración de valores: ceros, números redondos o repeticiones excesivas → ¿errores o patrones reales?
Categorías: ¿tienen sentido? ¿agrupar de manera diferente? ¿reagrupar si hay pocas observaciones?
Continuas: dispersión o asimetría (usar log?); ¿discretizar (ej. grupos de edad)?
Valores inusuales (“atípicos” o “outliers”): no encajan en el patrón general
summary(), table(), mode() o con summarize(), count()Este análisis puede detectar situaciones donde queremos agrupar categorías:
# frecuencias absolutas
ggplot(data = pymes) + geom_bar(aes(x = tipo_propiedad))
# frecuencias relativas (proporciones)
ggplot(data = pymes)+ geom_bar(aes(x = tipo_propiedad,
y = after_stat(prop), group = 1))
# Variantes
pymes |> count(tipo_propiedad) |> ggplot() +
geom_bar(aes(x = tipo_propiedad, y = n), stat = "identity")
ggplot(data = pymes) + geom_bar(aes(x = tipo_propiedad)) +
theme(axis.text.x = element_text(angle = 90))
# barra vertical
ggplot(data = pymes) + geom_bar(aes(x = "", fill = tipo_propiedad))summary()summary(pymes$ingresos)
pymes |>
summarise(
media = mean(ingresos, na.rm = TRUE),
mediana = median(ingresos, na.rm = TRUE),
sd = sd(ingresos, na.rm = TRUE),
min = min(ingresos, na.rm = TRUE),
max = max(ingresos, na.rm = TRUE),
q25 = quantile(ingresos, 0.25, na.rm = TRUE),
q75 = quantile(ingresos, 0.75, na.rm = TRUE),
NAs = sum(is.na(ingresos)))Recordar: usar varios anchos de intervalo. Esto es discretizar la variable continua de formas distintas
Si observamos una distribución muy asimétrica, considerar escala logarítmica
datasummary_skim(): vista rápida de todas las variables (o algunas seleccionada), distinguiendo automáticamente por tipo
DataExplorerdlookr ofrece heramientas para diagnóstico y exploración de datosLa covariación describe relaciones entre variables: tendencia a que los valores de una variable dependan de la otra
Estudiamos la distribución condicional de una variable \(\small{Y}\) dados los valores de otra \(\small{X}\)
Si \(\small{\Pr(Y|X=x_1) = \Pr(Y|X=x_0) = \Pr(Y) \Rightarrow}\) \(\small{Y}\) NO depende de \(\small{X}\)
Si la probabilidad condicional de que \(\small{Y}\) tome valores altos (o bajos) depende de lo que sabemos de \(\small{X}\), se puede predecir (su valor esperado) a partir del valor de \(\small{X}\)
Punto de partida para formular modelos que explican patrones complejos de los datos
¿Es diferente la distribución de Y (continua) por categorías de X?
Cuidado: podemos necesitar escala logarítmica
También ajustes como reordenar las categorías de un factor (forcats), rotar los ejes, etc.
Podemos usar histogramas o densidades, en un mismo gráfico o con facetas
También con gráficos de caja (menos información pero más fácil de comparar)
sector?pymes |> group_by(sector) |>
summarise(media = mean(ingresos, na.rm = TRUE),
mediana = median(ingresos, na.rm = TRUE),
n = n(),
sd = sd(ingresos, na.rm = TRUE))
pymes |> group_by(rating) |>
summarise(media = mean(ingresos, na.rm = TRUE),
mediana = median(ingresos, na.rm = TRUE),
n = n(),
sd = sd(ingresos, na.rm = TRUE))\[ \scriptsize E[Y|X]=\beta_0+\beta_1 X \Rightarrow \begin{cases} E[Y|X=0] &=\beta_0 \\ E[Y|X=1]&=\beta_0+\beta_1 \end{cases} \]
Pero es más informativo la tabla o visualización de la distribución condicional de frecuencias relativas de una variable dada la otra
datos <- pymes |> count(sector, tipo_propiedad) |>
group_by(sector) |> mutate(prop= n/sum(n)) |> select(-n)
datos |> pivot_wider(names_from = sector, values_from = prop)
datos |> ggplot() + geom_bar(aes(x=sector, y=prop, fill = tipo_propiedad),
stat = "identity")
ggplot(pymes, aes(x = sector, fill = tipo_propiedad)) +
geom_bar(position = "fill") +
scale_y_continuous(labels = scales::percent)smoothers ayuda a apreciar un patrón en los puntosCon GGally obtenemos una primera visión de conjunto
Agrupar cuando:
El análisis previo mostró que es necesario
Tiene sentido de negocio
Las categorías agrupadas tienen comportamiento similar
Mejora la robustez sin perder información crítica
El AED manualmente consume tiempo. Se pueden automatizar partes del proceso, pero con precaución
Ventajas de herramientas automatizadas: Velocidad, Exahaustividad, Primera Exploración
Limitaciones críticas:
Ruido: muchos gráficos irrelantes
No entienden contexto de negocio
Interpretación superficial -> No sugieren acciones específicas
Herramientas de AED Automatizado
Analiza pymes_europa.csv. Variables clave: ingresos, roe, sector, país.
Contexto: PYMES europeas 2020-2024. ROE típico: 8-12%.
Pregunta: ¿Qué características tienen empresas con ROE > 15%?
Dame: limpieza, descriptivos, visualizaciones, análisis por sector
Fortalezas
Genera código estándar rápidamente y lo documenta
Sugiere análisis adicionales
Explica conceptos estadísticos
Limitaciones críticas:
No conoce tu contexto de negocio
Análisis superficial y sin identificar patrones específicos del dominio
Riesgo de errores
Limitaciones técnicas: datos < 100-200MB, resultados dependen del prompt
Exploración rápida (automática)
Identificar áreas de interés
Análisis manual profundo (lo que hicimos)
SIEMPRE validación crítica de resultados de IA y documentar
Verifica el código (piensa y re-pregunta)
Valida las decisiones e interpretaciones (piensa y re-pregunta)
Cuestiona las recomendaciones (piensa y re-pregunta)
❌ Usar reportes automatizados como análisis final
❌ Confiar ciegamente en interpretaciones de IA
❌ Incluir todas las visualizaciones automáticas
❌ Olvidar validar hallazgos automáticos
Desarrolla criterio para saber cuándo confiar en automatización
✓ Usar automatización como punto de partida
✓ Validar críticamente todo output automático
✓ Combinar velocidad de herramientas con expertise humano
✓ Mantener el contexto de negocio en el centro
Regla de oro: La automatización acelera, el expertise guía. Nunca al revés.