1. Introducción y Visualización

El ejercicio pide analizar la relación entre el Gasto en Comida (\(Y\)) y el Ingreso Total (\(X\)). Según la teoría económica, esperamos que la proporción del gasto en comida disminuya a medida que aumenta el ingreso (Ley de Engel).

Visualicemos primero los datos:

ggplot(engel_data, aes(x = Ingreso_Total_X, y = Gasto_Comida_Y)) +
  geom_point(color = "#2c3e50") +
  geom_smooth(method = "loess", se = FALSE, color = "#e74c3c") +
  theme_minimal() +
  labs(title = "Curva de Engel: Comida vs Ingreso Total",
       x = "Ingreso Total (X)", y = "Gasto en Comida (Y)")

2. Estimación de Modelos

Se nos pide estimar 5 modelos diferentes.

Procederemos a crear las variables transformadas y correr las regresiones:

# Crear transformaciones
df_models <- engel_data %>%
  mutate(
    inv_X = 1/Ingreso_Total_X,
    ln_Y = log(Gasto_Comida_Y),
    ln_X = log(Ingreso_Total_X)
  )

# Ajustar modelos
m_lineal      <- lm(Gasto_Comida_Y ~ Ingreso_Total_X, data = df_models)
m_inverso     <- lm(Gasto_Comida_Y ~ inv_X, data = df_models)
m_doble_log   <- lm(ln_Y ~ ln_X, data = df_models)
m_log_inverso <- lm(ln_Y ~ inv_X, data = df_models)
m_log_lineal  <- lm(Gasto_Comida_Y ~ ln_X, data = df_models)

3. Comparación de Resultados

Extraemos las estadísticas clave (\(R^2\) ajustado y significancia) para comparar.

Nota: No podemos comparar directamente el \(R^2\) de modelos con diferente variable dependiente (\(Y\) vs \(\ln Y\)).

# Función para extraer métricas rápidas
get_metrics <- function(model, name) {
  glance(model) %>% 
    select(r.squared, adj.r.squared, AIC, p.value) %>%
    mutate(Modelo = name)
}

bind_rows(
  get_metrics(m_lineal, "Lineal (Y)"),
  get_metrics(m_inverso, "Inverso (Y)"),
  get_metrics(m_log_lineal, "Log-Lineal (Y)"),
  get_metrics(m_doble_log, "Doble-Log (ln Y)"),
  get_metrics(m_log_inverso, "Log-Inverso (ln Y)")
) %>%
  select(Modelo, everything()) %>%
  kable(digits = 20, caption = "Comparación de Ajuste de Modelos")
Comparación de Ajuste de Modelos
Modelo r.squared adj.r.squared AIC p.value
Lineal (Y) 0.3698237 0.3579336 622.32507 0.00000084513287
Inverso (Y) 0.3757518 0.3639735 621.80523 0.00000065311797
Log-Lineal (Y) 0.3769377 0.3651818 621.70065 0.00000062012910
Doble-Log (ln Y) 0.4124688 0.4013833 -30.66612 0.00000012553283
Log-Inverso (ln Y) 0.4216199 0.4107071 -31.52952 0.00000008197808

4. Análisis de Elasticidad e Interpretación

Para elegir el mejor modelo, debemos mirar no solo la estadística, sino la teoría económica. Para un bien necesario como la comida, esperamos que la elasticidad ingreso sea positiva pero menor a 1 (inelástica) y que posiblemente disminuya con el ingreso.

Las fórmulas de elasticidad ingreso (\(\eta\)) para cada modelo son:

Resultados de los coeficientes de pendiente (\(\beta_2\)) :

tidy(m_doble_log) %>% filter(term == "ln_X") %>% select(estimate, p.value) %>% 
  kable(caption = "Coeficiente Doble-Log (Elasticidad Constante)")
Coeficiente Doble-Log (Elasticidad Constante)
estimate p.value
0.7363263 0.0000001
tidy(m_log_inverso) %>% filter(term == "inv_X") %>% select(estimate, p.value) %>%
  kable(caption = "Coeficiente Log-Inverso")
Coeficiente Log-Inverso
estimate p.value
-415.9105 0.0000001

Conclusión y Selección

Considerando el \(R^2\) más alto dentro de los grupos comparables y la lógica económica:

Recomendación: Si buscamos simplicidad, el Doble-Log. Si buscamos rigor teórico sobre la saciedad del consumidor, el Log-Inverso.