Econometría II

Series de tiempo

Carlos Andrés Yanes

Universidad del Norte

August 5, 2024

Entorno de trabajo

Nuestro Lenguaje por “Default”

Vamos a seguir trabajando con R y Rstudio

  • Es un programa excelente para los economistas
  • Requerimos ser mas pulcros en esto
  • Nos diferencia de los demás que se dedican a la ciencia de datos

Antes de continuar…

Vamos a instalar o cargar un par de Paquetes de

R libraries

Los paquetes para el análisis de Rezagos y regresión dinámica son los siguientes

install.packages(c("pacman", "atsa" "modelsummary", "tseries", "tidyverse", "KableExtra", "huxtable"))

Ejecución

No olvide que debe desde luego tener presente en su documento de R Markdown cargar estos paquetes.

library(pacman)
p_load(modelsummary, tseries, atsa, readxl, rstatix, tidyverse, KableExtra)

Caso de estudio

Caso 1

Recordeis y estructura de serie de tiempo

  • Recuerde que un modelo de regresión estático/dinámico de series tiempo viene a ser:
  • Tendencia simple: \(y_t= \delta_0+\delta_1 T_t+u_t\)
  • Tendencia y rezago \(y_t= \delta_0+\delta_1 T_t+\delta_2 y_{t-1}+u_t\)
  • Este modelo solo nos muestra la relación de la variable objetivo con su Tendencia
  • Anteriormente se usaba mucho para intentar predecir el siguiente movimiento de la serie

Caso 1

  • Vamos a tomar la base de datos suministrada en Discord que se denomina bsd1.xls. Corresponde a la encuesta de Consumo de los EEUU (Census Bureau de 1959-1994) de algo de 45 items. El libro de econometría de referencia es el de (Dougherty 2011).
  • Las variables de referencia para este caso son: HOUSE, que es el gasto en consumo agregado con referencia a los servicios de los hogares americanos; DPI el ingreso personal disponible, ambas medidas a precios constantes en billones de dolares de US.

Caso 1

  • Dentro del análisis también vamos a tener una variable por construcción que es el indice relativo de precios conocido como PRELHOUSE, cuya formula es:
    • \(PRELHOUSE=100\times \frac{Phouse}{PTPE}\)
  • Las variables para este estimativo son PHOUSE que hace referencia a los precios relativos de los servicios del hogar, divididos por PTPE que es indice de precios para los gastos personales. En Colombia es ampliamente conocido como IPC de servicios.

Caso 1

Se solicita lo siguiente:

  1. Un vistazo general a la base para familiarizarse con las variables.
  2. Trabajar con un grupo de variables explicativas incluyendo logaritmos y rezagos y escoger la mejor especificación del modelo
  3. Hacer una lectura general con rezagos e intentar construir un modelo de rezagos distribuidos.

Solución en

Vistazo

# Cargar la base de datos
library(readxl)
bsd1 <- read_excel("GuiasdeR/bsd1.xls")

Vistazo

# Cargar la base de datos
library(readxl)
bsd1 <- read_excel("GuiasdeR/bsd1.xls")
names(bsd1) # Nombres
 [1] "ADM"   "BOOK"  "BUSI"  "CLOT"  "DATE"  "DENT"  "DOC"   "DPI"   "FLOW" 
[10] "FOOD"  "FURN"  "GAS"   "GASO"  "HOUS"  "LEGL"  "MAGS"  "MASS"  "OPHT" 
[19] "PADM"  "PBOOK" "PBUSI" "PCLOT" "PDENT" "PDOC"  "PFLOW" "PFOOD" "PFURN"
[28] "PGAS"  "PGASO" "PHOUS" "PLEGL" "PMAGS" "PMASS" "POP"   "POPHT" "PRELG"
[37] "PTELE" "PTOB"  "PTOYS" "PTPE"  "RELG"  "TELE"  "TIME"  "TOB"   "TOYS" 
[46] "TPE"  

Resumen de estadísticas

  • Tenemos un conjunto de 46 variables y una muestra \((n=45)\) datos como tal.

  • Los datos del consumo en servicios del hogar ha venido incrementando en el tiempo. Los hogares han mostrado una tendencia creciente de consumo.

Dinámica

library(astsa)  # Paquete de series
tsplot(bsd1$HOUS, ylab="Consumo", type="o", col=4, main="Dinámica de consumo")
  • La parte de type puede se cambiado a “l” para linea, lo concerniente a col es el color que quiera usar para la serie de tiempo. Hay mas opciones como p.e (xlab) pero pueden ser consultadas mas adelante en el momento de darle mas del “toque personal” para el resultado gráfico que desea el/la investigador/a.

Dinámica

# A tibble: 3 × 10
  variable     n    min   max median     iqr   mean      sd      se    ci
  <fct>    <dbl>  <dbl> <dbl>  <dbl>   <dbl>  <dbl>   <dbl>   <dbl> <dbl>
1 HOUS        45  243.  1076.  629.   422.    630.   249.    37.2    74.9
2 DPI         45 1716.  7734. 3960   2755.   4245.  1750.   261.    526. 
3 PRELHOUS    45   79.6  105.   90.8    6.58   90.0    6.32   0.943   1.9
library(tidyverse)
library(rstatix)
bsd1 |>
  mutate(PRELHOUS= 100*(PHOUS/PTPE)) |>
  get_summary_stats(
    HOUS, DPI, PRELHOUS,
    type = "common"
  )
  • Recordemos que las estadísticas son claves para ver desde el interior de las variables.
  • No podemos decir nada si no conocemos las características de las series
  • El rango intercuartil (IQR, por sus siglas en inglés) es una medida estadística de dispersión que describe la distancia entre el primer cuartil (Q1) y el tercer cuartil (Q3) de un conjunto de datos.
  • El IC viene a ser el intervalo de confianza de la media de la distribución.
Resultados de forma mas ordenada
variable n min max median iqr mean sd se ci
HOUS 45 242.607 1076.099 629.022 421.975 630.283 249.262 37.158 74.887
DPI 45 1715.500 7733.800 3960.000 2754.600 4245.120 1749.535 260.805 525.618
PRELHOUS 45 79.597 104.669 90.815 6.584 89.996 6.325 0.943 1.900
library(tidyverse)
library(rstatix)
library(flextable)
p1<-bsd1 |>
  mutate(PRELHOUS= 100*(PHOUS/PTPE)) |>
  get_summary_stats(
    HOUS, DPI, PRELHOUS,
    type = "common"
  )
knitr::kable(p1, caption = "Resultados de forma mas ordenada")

Modelo estático

Especificación de la regresión

Nuestro modelo principal es:

\[House_{t} = \delta_0 + \delta_1 DPI_{t} + \delta_2 PRELHOUSE_{t} + \varepsilon_{t}\]

  • Todo opera de la misma manera que un MCO(OLS) para la estimación
  • Recuerde que existen paquetes como knitr, flextable y huxreg para hacer el resumen de modelos

Estimación

library(tidyverse)
library(kableExtra)
dt1<-bsd1 |>
  mutate(PRELHOUS= 100*(PHOUS/PTPE))
lm(HOUS~DPI+PRELHOUS, data=dt1)|>
  tidy() |>
  kable(
    caption = "Modelo Estático de Regresión",
    col.names = c("Variables", "Parámetro", "SE", "t", "P-value"),
    digits = c(0, 3, 3, 2, 3)
  )

Estimación

Modelo Estático de Regresión
Variables Parámetro SE t P-value
(Intercept) 334.666 37.266 8.98 0
DPI 0.151 0.002 90.66 0
PRELHOUS -3.834 0.460 -8.33 0

Interpretación

  • Para la lectura del modelo lo haremos de forma tradicional. Esto indica que leemos de tal manera las variables explicativas.
  • Nuestra primera variable DPI nos dice que si el ingreso agregado aumenta en 1 billon de dolares, entonces el gasto de los hogares en servicios de la casa se incrementa es 151 millones de dolares. Desde luego marginalmente dice que por cada dolar que aumente el ingreso el gasto aumenta en una proporción de 50 centavos de dolar.

Diferentes estimaciones

Caso 1

Estimación

  • Para la variable PRELHOUS si este indice aumenta en un punto el gasto de los hogares cae en promedio en 3.84 billones de dolares.
  • Vamos hacer una estimación adicional
  • Suponga que le han pedido estimar \(HOUS=\delta_0DPI^{\delta_1}PRELHOUS^{\delta_2}\varepsilon_t\)
  • Vamos entonces a tener que linearizar
  • Nuestro modelo viene a ser: \(Log(Hous)=Log\;\delta_0+ \delta_1 Log\;DPI+\delta_2 Log\;PRELHOUS+log\;\varepsilon_t\)

Caso 1

Comparaciones

tinytable_tb9y4n5h6tkubzmz2p33
(1) (2)
Ingreso o renta a precios constantes 0.151
(0.002)
Indice de precios de los servicios -3.834
(0.460)
Logaritmo de DPI 1.032
(0.007)
Logaritmo de Indice de precios -0.483
(0.042)
Num.Obs. 45 45
R2 0.997 0.999
R2 Adj. 0.997 0.999
AIC 371.9 -236.9
BIC 377.4 -231.4
RMSE 14.11 0.02
Std.Errors IID IID

Caso 1

Interpretación en elasticidad

  • Cuando tenemos Logaritmos en nuestras variables, la cosa ya pinta “distinta”.
  • Ahora nuestra primera variable LOGDPI nos indica que la elasticidad es de 1.03.
  • Es esto plausible?
  • Desde luego que si. Es como si la propensión del gasto subiera al mismo nivel de (%) para el ingreso.

Caso 1

Interpretación en elasticidad

  • Les cuento ademas que uno espera que esa elasticidad sea menor a (1). Sabe por qué?
  • Porque muchas personas y hogares piensan que gastar en la casa es un lujo, por ello no lo hacen todo el tiempo.
  • Las personas u hogares con el tiempo su ingreso adicional lo terminan gastando en mas cosas de su entorno de vida, compra una mejor cama, adorna con mas elementos su casa, etc. Se da un fenómeno de auto-satisfacción
  • Por el lado de la variable LOGPRELHOUS, la elasticidad es menor a (1) y nos dice que un mayor costo (precio) reduce un poco el gasto en ella y es lógico.

Lo dinámico

Modelo Dinámico

Miremos la parte de rezagos

Rezagos en t

El primer rezago de una serie \((Y_t)\) es lo que se conoce como LAG, puede igual verlo como una (L) o como notación tal que:

\[Y_t=L(Y_t)=Y_{t-1}\]

Diferencias

La primera diferencia de una serie lo que se conoce como DIF o \((\Delta)\), Se escribe como:

\[\Delta Y_t= Y_t-Y_{t-1}\]

Operadores

Rezagos

  • Las series de tiempo pueden ser transformadas por logaritmos, tasas de crecimiento, rezagos y diferencias.
  • Dentro de los cuales sirven muchas veces para retirar o descomponer los componentes que afectan su dinámica o propiedades para desde luego tener una serie mas “parqueada” o estable.
  • Adicionalmente en la composición de los logaritmos podríamos tener: \[\Delta Log(Y_t)=Log(Y_{t})-Log(Y_{t-1})\]

Rezago

# Tomamos la base de datos
bsd1|>
  mutate(LAGHOUS=lag(HOUS))

Rezago

# Tomamos la base de datos
bsd1|>
  mutate(LAGHOUS=lag(HOUS))|>
  select(HOUS,LAGHOUS)
# A tibble: 45 × 2
    HOUS LAGHOUS
   <dbl>   <dbl>
 1  243.     NA 
 2  255.    243.
 3  268.    255.
 4  283.    268.
 5  296.    283.
 6  310.    296.
 7  327.    310.
 8  342.    327.
 9  358.    342.
10  376.    358.
# ℹ 35 more rows

Si deseo un orden superior de (L)? 😬

Orden P de rezago

# Tomamos la base de datos
bsd1|>
  mutate(LAGHOUS=lag(HOUS),
  LAGHOUS_2=lag(HOUS, 2))

Orden P de rezago

# Tomamos la base de datos
bsd1|>
  mutate(LAGHOUS=lag(HOUS),
  LAGHOUS_2=lag(HOUS, 2))|>
  select(HOUS,LAGHOUS, LAGHOUS_2)
# A tibble: 45 × 3
    HOUS LAGHOUS LAGHOUS_2
   <dbl>   <dbl>     <dbl>
 1  243.     NA        NA 
 2  255.    243.       NA 
 3  268.    255.      243.
 4  283.    268.      255.
 5  296.    283.      268.
 6  310.    296.      283.
 7  327.    310.      296.
 8  342.    327.      310.
 9  358.    342.      327.
10  376.    358.      342.
# ℹ 35 more rows

Modelos Dinámicos

Modelos Dinámicos

Modelos Dinámicos

Modelos Dinámicos

Modelos Dinámicos

Modelos Dinámicos

Y entonces 😱 … estimo y estimo y no es?

De los modelos Dinámicos

Algunos comentarios

  • Los resultados de todos los modelos tienen problema de multicolinealidad sobre todo en sus rezagos.
  • Los errores estandar de los parámetros tambien se hicieron mucho mas grandes
  • En conclusión estamos especificando incorrectamente el modelo

Matriz de relación rezago

dt2|>
  select(logDPI, LlogDPI)

Matriz de relación rezago

dt2|>
  select(logDPI, LlogDPI)|>
  cor(method = "pearson", use = "complete.obs")
           logDPI   LlogDPI
logDPI  1.0000000 0.9993452
LlogDPI 0.9993452 1.0000000

Elasticidades del Modelo

Elasticidades (1) (2) (3) (4) (5)
Elasticidad del Ingreso 1.03 1.01 0.98 1.01 1.00
Elasticidad Precio -0.48 -0.43 -0.38 -0.45 -0.43
  • Recuerde que la suma de parámetros es catalogado como el efecto total

  • Requerimos de un modelo que aislé el fenómeno y podamos estimar mejor nuestro modelo

Especificación del modelo

Especificación

  • El modelo es: \[Y_t=\beta_0+\beta_1X_t+\beta_2X_{t-1}+\beta_3X_{t-2}+\varepsilon_t\]
  • Para el efecto total \[Y_t=\beta_0+\beta_1\tilde{X}+\beta_2\tilde{X}+\beta_3\tilde{X}+\varepsilon_t=\quad \beta_0+\tilde{X}\left(\beta_1+\beta_2+\beta_3\right)\]
  • Lo que hay que corregir es usando entonces las diferencias de rezagos \[\beta_0+X_t\left(\beta_1+\beta_2+\beta_3\right)-\beta_2\left(\color{#A020F0}{X_t-X_{t-1}}\right)-\beta_3\left(\color{#FF0000}{X_t-X_{t-2}}\right)+\varepsilon_t\]

Estimación dinámica

# Crear las variables del modelo transformado
mfinal<-dt1|>
  mutate(logDPI=log(DPI),
    LlogDPI=lag(log(DPI)),
         LlogPRELHOUS=lag(log(PRELHOUS)),
         LlogDPI2=lag(log(DPI),2),
         LlogPRELHOUS2=lag(log(PRELHOUS),2),
         FDPI1=logDPI-LlogDPI,
         FDPI2=logDPI-LlogDPI2,
    FPRELHOUS1=log(PRELHOUS)-LlogPRELHOUS,
    FPRELHOUS2=log(PRELHOUS)-LlogPRELHOUS2)

# Modelo transformado
lm(log(HOUS)~log(DPI)+FDPI1+FDPI2+log(PRELHOUS)+FPRELHOUS1+FPRELHOUS2, data=mfinal)|>
  tidy() |>
  kable(
    caption = "Modelo Dinámico de Regresión",
    col.names = c("Variables", "Parámetro", "SE", "t", "P-value"),
    digits = c(0, 3, 3, 2, 3)
  )

Estimación dinámica

Modelo Dinámico de Regresión
Variables Parámetro SE t P-value
(Intercept) 0.047 0.134 0.35 0.728
log(DPI) 1.000 0.007 142.96 0.000
FDPI1 -0.221 0.196 -1.13 0.266
FDPI2 -0.491 0.134 -3.65 0.001
log(PRELHOUS) -0.425 0.034 -12.67 0.000
FPRELHOUS1 -0.233 0.298 -0.78 0.439
FPRELHOUS2 0.379 0.176 2.15 0.038

Gracias por su atención!!

Referencias

Dougherty, Christopher. 2011. Introduction to Econometrics. Oxford university press.