Técnicas para ‘Big Data’ en Economía - Curso 2024/25
Universidad de Alicante
Dpto. de Fundamentos del Análisis Económico. Universidad de Alicante
AED es una fase inicial importante, con dos objetivos:
Conocer nuestros datos e identificar problemas \(\Longrightarrow\) 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
Es un proceso iterativo para descubrir información
Contexto: conocimiento previo de nuestros datos, aquí o aquí
fuente (de dónde han salido), cómo están almacenados (.csv, .xlsx, …)
“diccionario”: información de cada variable (descripción, unidades, etc.)
Limpiar y procesar los datos para asegurar que son ordenados:
¿Tienen las variables la información y el tipo adecuado? P.e.: job en Bank. Convertimos datos a factores, numéricas, etc.
Eliminar filas vacías, observaciones duplicadas
Renombrar variables (para mayor claridad), generar nuevas
Detectar inconsistencias en texto, fechas, unidades, etc.
Caso destacado: identificar cuántos NAs
en cada variable
NAs
al modelizar)La variación es la tendencia de los valores de una variable a cambiar entre medidas (p.e., educación de dos personas o ventas de dos empresas)
Las técnicas para analizar el patrón de variación, es decir, la distribución de valores, dependen del tipo de variable
Variables Categóricas (previamente convertidas a factores):
summary()
, table()
, mode()
o summarize()
, count()
Variables Numéricas:
summary()
o summarize()
con funciones para estadísticosDetectar inconsistencias en la distribución de valores o en las categorías: p.e., “unknown” en job de Bank
Valores frecuentes, concentración en valores concretos (p.e., ceros, números “redondos”, etc.): ¿por qué se producen? ¿son “esperables”?
¿Sería preferible discretizar alguna variable continua? Ej., grupos de edad
Variables con alta dispersión o distribución asimétrica (logs?)
Valores inusuales (“atípicos” o “outliers”): no encajan en el patrón general
skimr
(o modelsummary
) y DataExplorer
El paquete janitor
contiene herramientas para limpieza de datos
La biblioteca dlookr
ofrece heramientas para diagnóstico y exploración de datos (entre otras), devolviendo data frame (para usar con kable()
)
library(dlookr) # en MacOS, puede pedir instalar XQuartz
Bank %>% diagnose()
Bank %>% describe() %>%
select(described_variables, skewness, mean, p25, p50, p75) %>%
filter(!is.na(skewness)) %>% arrange(desc(abs(skewness)))
Bank %>% group_by(education) %>%
describe(age, balance, campaign, pdays)
Bank %>% mutate(across(where(is.character), ~parse_factor(.x))) %>%
eda_web_report()
La variación describe el comportamiento dentro de una variable
La covariación describe relaciones entre variables: tendencia a que sus valores cambien juntos
Útil para formular modelos, que explican patrones complejos de los datos
¿qué explica la relación sugerida por el patrón de covariación?
¿cómo de fuerte es la relación?
¿otras variables pueden afectar a la relación? ¿varían por subgrupos?
Covariación implica que los valores de una variable se pueden predecir a partir de otra
1.- mediante el histograma o densidad (en el mismo gráfico o diferentes)
ggplot(Bank) + geom_density(aes(x = balance, color = default)) +
scale_x_log10()
ggplot(Bank) + geom_density(aes(x = balance)) + facet_wrap(~default) +
scale_x_log10()
ggplot(Bank) + geom_density(aes(x = balance, color = education)) +
scale_x_log10()
ggplot(Boston) + geom_density(aes(x=lstat, color=as.factor(chas)))
2.- mediante gráficos de caja: menos información pero más fácil de comparar
Si un grupo es mucho más pequeño, es difícil ver las diferencias
Se pueden necesitar reordenar las categorías de un factor, rotar los ejes, etc.
\[ 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} \]
table(Bank$job, Bank$education) %>% prop.table(margin = 2)
Bank %>% count(job, education) %>%
group_by(education) %>% mutate(prop= n/sum(n)) %>% select(-n) %>%
pivot_wider(names_from = education, values_from = prop)
Bank %>% ggplot(aes(x=education)) + geom_bar(aes(fill=job), position = "fill")
Bank %>% count(job, education) %>%
group_by(education) %>% mutate(prop= n/sum(n)) %>%
ggplot() + geom_bar(aes(x=education, y=prop, fill = job),
stat = "identity")
smoothers
ayuda a apreciar un patrón en los puntosGGally
obtenemos una primera visión de conjuntoMuchas partes del AED son parcialmente “automatizables”: muchos paquetes tratan de facilitar esas partes
Radiant
puede instalarse o probarse online
Algunas bibliotecas permiten explorar datos y/o realizar visualizaciones y tableros fácilmente de forma interactiva: GwalkR
, explore
dlookr
, DataExplorer
, DataMaid
, smartEDA