Taller de Modelos de Regresión en Econometría (Log-Log, Log-Lin, Lin-Log, Lin-Lin) Objetivo:
Estimar e interpretar coeficientes en diferentes formas funcionales.
Aplicar conceptos de elasticidad (precio de la demanda, ingreso de la demanda).
Usar datos reales y R para análisis replicables.
#1. Elasticidad Precio de la Demanda
Contexto: Analizar cómo el precio afecta la demanda de gasolina en EE.UU.
options(scipen = 999)
# Modelo log-log
modelo_elasticidad <- lm(log(gas) ~ log(price), data = USGasB)
summary(modelo_elasticidad)
##
## Call:
## lm(formula = log(gas) ~ log(price), data = USGasB)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.39496 -0.14438 0.01257 0.16578 0.29385
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 18.51776 0.05248 352.830 < 0.0000000000000002 ***
## log(price) 0.46323 0.05668 8.173 0.00000000102 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1843 on 36 degrees of freedom
## Multiple R-squared: 0.6498, Adjusted R-squared: 0.64
## F-statistic: 66.79 on 1 and 36 DF, p-value: 0.000000001015
Preguntas:
Interprete el coeficiente de log(price). ¿Es inelástica la demanda?
El coeficiente nos dice que un incremento del 1% en el precio de la gasolina en EE.UU está asociado con un aumento del 0.46% en la cantidad demandada. La demanda de gasolina es inelástica, ya que el valor estimado de la elasticidad precio es 0.46, es decir, menor que 1. Esto indica que, ante un aumento en el precio, la cantidad demandada disminuye pero en menor proporción. Ademas, la gasolina es un bien esencial con pocos sustitutos disponibles, por lo que los consumidores tienden a mantener su consumo aun cuando el precio tienda a subir.
Grafique la relación con ggplot2: y comente la grafica
library(ggplot2)
ggplot(USGasB, aes(x = price, y = gas)) +
geom_point(color = "darkblue") +
geom_smooth(method = "lm", se = FALSE, color = "red") +
labs(
title = "Relación entre log(price) y log(gas)",
x = "log(price)",
y = "log(gas)"
) +
theme_minimal()
La gráfica muestra en el eje horizontal los valores de log(price) y en el vertical los de log(gas), con cada punto azul representando un par observado de precio y demanda en escala logarítmica, y la línea roja trazando la regresión “log(gas)=18.52+0.463log(price)”. El precio y consumo de gasolina comparten una tendencia creciente a lo largo del tiempo por lo antes mencionado”la gasolina es un bien esencial con pocos sustitutos disponibles, por lo que los consumidores tienden a mantener su consumo aun cuando el precio tienda a subir. ”
Para este ejercicio se utilizo un Modelo Log - Log
#2. Elasticidad Ingreso de la Demanda Contexto: Relación entre PIB per cápita y consumo privado (datos del Banco Mundial).
library(WDI)
datos_pib <- WDI(country = "US", indicator = c("NY.GDP.PCAP.CD", "NE.CON.PRVT.CD"))
# Modelo log-log
modelo_ingreso <- lm(log(NE.CON.PRVT.CD) ~ log(NY.GDP.PCAP.CD), data = datos_pib)
summary(modelo_ingreso)
##
## Call:
## lm(formula = log(NE.CON.PRVT.CD) ~ log(NY.GDP.PCAP.CD), data = datos_pib)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.06280 -0.02693 0.00737 0.02870 0.07787
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 16.364616 0.067879 241.1 <0.0000000000000002 ***
## log(NY.GDP.PCAP.CD) 1.255718 0.006644 189.0 <0.0000000000000002 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.03686 on 52 degrees of freedom
## (11 observations deleted due to missingness)
## Multiple R-squared: 0.9985, Adjusted R-squared: 0.9985
## F-statistic: 3.572e+04 on 1 and 52 DF, p-value: < 0.00000000000000022
Preguntas:
¿El coeficiente sugiere que el consumo es un bien necesario o de lujo?
El coeficiente de consumo privado se esta comportando como un bien de lujo ya que la elasticidad ingreso es mayor que 1.
¿Cómo se compara con la teoría keynesiana? Keynes decía que, cuando las personas ganan un 1 % más, su gasto en consumo sólo aumenta en una proporción menor ya que siempre reservan una parte para ahorrar. En cambio,este modelo muestra que si el ingreso per cápita sube un 1 %, el consumo privado crece un 1.25 %. Es decir, la gente está aumentando su gasto más de lo que aumenta su ingreso, un comportamiento típico de un bien de lujo. Por eso, este resultado choca con la idea clásica de Keynes, que esperaba un crecimiento del consumo más moderado frente al aumento de ingresos.
Para este ejercicio se utilizo un Modelo Log - Log
#3. Función de Producción Cobb-Douglas Contexto: Rendimientos de escala en la producción industrial.
library(pwt10)
data("pwt10.0")
# Modelo log-log: Y = A·L^β1·K^β2
modelo_produccion <- lm(log(rgdpna) ~ log(emp) + log(ck), data = pwt10.0)
summary(modelo_produccion)
##
## Call:
## lm(formula = log(rgdpna) ~ log(emp) + log(ck), data = pwt10.0)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.9039 -0.3102 0.0767 0.3937 1.6357
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 14.631508 0.036461 401.29 <0.0000000000000002 ***
## log(emp) 0.261641 0.006569 39.83 <0.0000000000000002 ***
## log(ck) 0.697640 0.005559 125.49 <0.0000000000000002 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.6123 on 7092 degrees of freedom
## (5715 observations deleted due to missingness)
## Multiple R-squared: 0.9067, Adjusted R-squared: 0.9066
## F-statistic: 3.444e+04 on 2 and 7092 DF, p-value: < 0.00000000000000022
Preguntas:
Sume los coeficientes de log(emp) y log(ck). ¿Hay rendimientos constantes a escala?
sum(`log(emp)`,`log(ck)`)
## [1] 0.959281
Teniendo en cuenta que la suma de log(emp) y log(ck) es menor que 1 no hay rendimientos constantes a escala, pero si hay rendimientos decrecienetes a escala.
Interprete el coeficiente de log(emp).
Un aumento del 1 % en el empleo está asociado con un incremento de aproximadamente 0.26 % en el PIB real (rgdpna), manteniéndose constante el nivel de capital (ck).
Para este ejercicio se utilizo un Modelo Log - Log
#4. Elasticidad Precio de la Oferta Agrícola Contexto: Respuesta de la producción de soja a cambios de precio (datos simulados).
# Datos simulados (en un taller real, usar datos de FAO)
set.seed(123)
datos_soja <- data.frame(
precio <- runif(100, 10, 20),
produccion <- 50 * precio^0.7 * exp(rnorm(100, 0, 0.1))
)
modelo_oferta <- lm(log(produccion) ~ log(precio), data = datos_soja)
summary(modelo_oferta)
##
## Call:
## lm(formula = log(produccion) ~ log(precio), data = datos_soja)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.223373 -0.061032 -0.002298 0.059845 0.221377
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.94822 0.13500 29.25 <0.0000000000000002 ***
## log(precio) 0.68454 0.05008 13.67 <0.0000000000000002 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.09692 on 98 degrees of freedom
## Multiple R-squared: 0.656, Adjusted R-squared: 0.6524
## F-statistic: 186.8 on 1 and 98 DF, p-value: < 0.00000000000000022
Preguntas:
¿La oferta es elástica o inelástica?
Como el valor es menor que 1, la oferta es inelástica porque los productores no responden proporcionalmente al alza de precios. Que la oferta de soja sea inelástica quiere decir que, aunque el precio suba, los productores no pueden aumentar la producción en la misma proporción.
¿Qué factores podrían sesgar la estimación?
Hay varios factores que podrian sesgar la estimacion. Primero, el precio y la producción se influyen mutuamente, de modo que si no se ajusta, el modelo puede “confundir” cuándo el precio cambia por la oferta o por la demanda. Además, muchos otros factores importan como el costo del fertilizante, el clima, los subsidios estatales o las nuevas máquinas, también hay ciclos de siembra y cosecha que hacen subir o bajar la producción en ciertas épocas.
Para este ejercicio se utilizo un Modelo Log - Log
#5. Curva de Mincer (Educación vs. Salarios) Contexto: Retorno de la educación en salarios por hora.
data("CPS1985", package = "AER")
modelo_salarios <- lm(log(wage) ~ log(education) + experience, data = CPS1985)
summary(modelo_salarios)
##
## Call:
## lm(formula = log(wage) ~ log(education) + experience, data = CPS1985)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.07240 -0.34543 0.03125 0.32321 1.83472
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.728055 0.259812 -2.802 0.00526 **
## log(education) 1.014442 0.096465 10.516 < 0.0000000000000002 ***
## experience 0.011653 0.001803 6.463 0.000000000233 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.4782 on 531 degrees of freedom
## Multiple R-squared: 0.182, Adjusted R-squared: 0.1789
## F-statistic: 59.06 on 2 and 531 DF, p-value: < 0.00000000000000022
¿Como interpretaria el efecto de un año de educacion sobre el salario de un individuo?
Un aumento del 1 % en los años de educación se asocia con un aumento aproximado del 1.014442 % en el salario, manteniendo constante la experiencia.
#6. Estimar la tasa de crecimiento anual del PIB de EE.UU.
data("USMacroG")
datos <- as.data.frame(USMacroG)
modelo_crecimiento <- lm(log(gdp) ~ time(USMacroG), data = datos)
summary(modelo_crecimiento)
##
## Call:
## lm(formula = log(gdp) ~ time(USMacroG), data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.092049 -0.031466 -0.001865 0.025561 0.084527
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -56.7650509 0.3667110 -154.8 <0.0000000000000002 ***
## time(USMacroG) 0.0329443 0.0001856 177.5 <0.0000000000000002 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.03903 on 202 degrees of freedom
## Multiple R-squared: 0.9936, Adjusted R-squared: 0.9936
## F-statistic: 3.149e+04 on 1 and 202 DF, p-value: < 0.00000000000000022
Cual es la tasa de crecimiento anual y de que periodo se esta analizando
tasa_crecimiento <- 0.0329443*100
print(tasa_crecimiento)
## [1] 3.29443
La tasa de crecimiento anual es de 3.29%
start(USMacroG)
## [1] 1950 1
end(USMacroG)
## [1] 2000 4
Se analiza el crecimiento anual durante un periodo de tiempo de 50 años.
Para este ejercicio se utilizo un Modelo Log - Lin
Nota:
1.Para cada uno de los ejercicios especifique que modelo se esta utilizando 2. utilice la funcion rename para renombrar las variables 3. Utilice funcion Option scipen para quitar notacion cientifica.