La incorporación de efectos diferidos en el tiempo en un modelo econométrico se realiza mediante la utilización de variables retardadas, pudiendo distinguirse dos tipos de modelos que requieren un tratamiento econométrico diferente:

Los modelos autorregresivos, en los que la permanencia del efecto se recoge mediante la incorporación, como variable exógena, de la variable endógena rezagada en algún período:

\[Y_t = \beta_1 + \beta_{2}X_{2t} + \ldots + \beta_{k}X_{kt} + \beta_{k+1}Y_{t-1} + \epsilon_t\]

Los modelos de retardos distribuidos, en los que las variables exógenas son las que ejercen un efecto prolongado en el tiempo sobre la variable endógena. De esta manera, si consideramos un modelo con una sola variable exógena, podríamos tener la siguiente especificación:

\[Y_t = \beta_1 + \beta_{2}X_{2t} + \ldots + \beta_{k}X_{kt} + \beta_{k+1}Y_{t-1} + \epsilon_t\]

\[Y_t = \beta_1 + \beta_{2}X_{2t} + \beta_{3}X_{t-1} + \ldots + \beta_{M}X_{t-M} + \beta_{k+1}Y_{t-1} + \epsilon_t\]

Esquema para diseñar un modelo econometrico dinámico

Descripción de

library(readxl)
library(tseries)
library(stargazer)
library(lmtest)
library(car)
library(strucchange)
# Base de datos
data2 <- read_excel("data2.xlsx", sheet = "data11")
head(data2)

Se declaran las series de tiempo, en el caso de la inversión pública y el PIB se calculo previamente la tasa de crecimiento interanual logarítmica.

# Inversión pública
tclipu = ts(data2[ ,1], 
            start = c(1981,1),
            end = c(2022,4), 
            freq = 4)
plot(tclipu)

# PIB
tcly = ts(data2[ ,2],
          start = c(1981, 1),
          end = c(2022, 4),
          freq = 4)
plot(tcly)

# Dummies
dummy1 = ts(data2[ ,3], 
            start = c(1981, 1),
            end = c(2022, 4),
            freq = 4)

dummy2 = ts(data2[ ,4],
            start = c(1981, 1),
            end = c(2022, 4),
            freq = 4)

dummy3 = ts(data2[ ,5], 
            start = c(1981, 1),
            end = c(2022, 4),
            freq = 4)

dummy4 = ts(data2[ ,6],
            start = c(1981, 1),
            end = c(2022, 4), 
            freq = 4)

dummy5 = ts(data2[ ,7],
            start = c(1981, 1), 
            end = c(2022, 4), 
            freq = 4)

dummy6 = ts(data2[ ,8],
            start = c(1981, 1),
            end = c(2022, 4), 
            freq = 4)

1 Estacionariedad

Para confirmar la estacionaridad de las series se usan las pruebas de Dickey-Fuller (ADF) y Phillips-Perron (PP), donde:

  • \(H_0\): La serie no es estacionaria. \(p.value \geq 0.05\)
  • \(H_1\): La serie es estacionaria. \(p.value \leq 0.05\)
# Prueba de Dickey-Fuller (ADF)
adf.test(tclipu)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  tclipu
## Dickey-Fuller = -4.594, Lag order = 5, p-value = 0.01
## alternative hypothesis: stationary
adf.test(tcly)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  tcly
## Dickey-Fuller = -4.2598, Lag order = 5, p-value = 0.01
## alternative hypothesis: stationary
# Prueba de Phillips-Perron (PP)
pp.test(tclipu)
## 
##  Phillips-Perron Unit Root Test
## 
## data:  tclipu
## Dickey-Fuller Z(alpha) = -101.29, Truncation lag parameter = 4, p-value
## = 0.01
## alternative hypothesis: stationary
pp.test(tcly)
## 
##  Phillips-Perron Unit Root Test
## 
## data:  tcly
## Dickey-Fuller Z(alpha) = -55.031, Truncation lag parameter = 4, p-value
## = 0.01
## alternative hypothesis: stationary

Las series son estacionarias.

2 Rezagos

Se crean las variables rezagadas para la parte sistemática del modelo dinámico para la inversión pública

# Aplicando un termino autoregresivo a la inversión pública
tclipulag1 = lag(tclipu, -1)

3 Diseño muestral

muestra <- ts.intersect(tclipu,
                        tcly,
                        tclipulag1,
                        dummy1,
                        dummy2,
                        dummy3,
                        dummy4,
                        dummy5, 
                        dummy6)

muestra_estimacion <- window(muestra, 
                             start = c(1981, 2),
                             end=c(2022, 4))

4 Estimación del modelo dinámico

La inversión pública esta en función del PIB y la inversión pública rezagada un periodo, más las variables dummies.

mco <- lm(tclipu ~ 
             tcly + 
             tclipulag1 + 
             dummy1 +
             dummy2 +
             dummy3 +
             dummy4 +
             dummy5 + 
             dummy6, 
          muestra_estimacion)

summary(mco)
## 
## Call:
## lm(formula = tclipu ~ tcly + tclipulag1 + dummy1 + dummy2 + dummy3 + 
##     dummy4 + dummy5 + dummy6, data = muestra_estimacion)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -70.542 -11.879   1.885  13.356  72.262 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -5.73150    2.09937  -2.730  0.00705 ** 
## tcly          2.21423    0.27993   7.910 4.20e-13 ***
## tclipulag1    0.09638    0.07071   1.363  0.17483    
## dummy1      -20.48933   11.38660  -1.799  0.07386 .  
## dummy2       53.13173   12.16745   4.367 2.27e-05 ***
## dummy3       13.59422   11.37403   1.195  0.23380    
## dummy4       12.73319   11.42433   1.115  0.26673    
## dummy5       -1.60648   10.10677  -0.159  0.87391    
## dummy6        6.72303   12.01439   0.560  0.57656    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 22.17 on 158 degrees of freedom
## Multiple R-squared:  0.4117, Adjusted R-squared:  0.3819 
## F-statistic: 13.82 on 8 and 158 DF,  p-value: 4.088e-15

Las variables PIB, dummy 1 y dummy 2 son significativas. Sin embargo, solo la dummy 1 tiene un impacto negativo, por lo que volvemos a estimar el modelo solo con las variables de interés.

mco <- lm(tclipu ~ 
             tcly +
             tclipulag1 +
             dummy1, 
          muestra_estimacion)
summary(mco)
## 
## Call:
## lm(formula = tclipu ~ tcly + tclipulag1 + dummy1, data = muestra_estimacion)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -69.288 -11.538   0.851  12.894  89.456 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -2.46468    1.94640  -1.266   0.2072    
## tcly          1.73765    0.26016   6.679 3.61e-10 ***
## tclipulag1    0.15778    0.07178   2.198   0.0293 *  
## dummy1      -21.15650   11.91271  -1.776   0.0776 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 23.24 on 163 degrees of freedom
## Multiple R-squared:  0.3332, Adjusted R-squared:  0.3209 
## F-statistic: 27.15 on 3 and 163 DF,  p-value: 2.701e-14

El modelo queda como:

\[\widehat{tclipu_t} = \beta_0 + \beta_{1}~tcly_t + \beta_{2}~tclipu_{t-1} - \beta_{3}~D_{1985,1,4} + \epsilon_t\] \[\widehat{tclipu_t} = -2.47 + 1.74~tcly_t + 0.16~tclipu_{t-1} - 21.16~D_{1985,1,4} + \epsilon_t\] La inversíón pública depende de la inversión pública en un periodo anterior en 0.16%, es decir, es inelástica, por ser un valor menor a 1, mientras que el PIB impacta en 1.74%, es decir, es elástico

4.1 Evaluación residual

4.1.1 Normalidad

Para evaluar la normalidad de los residuos se usa la prueba de Jarque-Bera, donde:

  • \(H_0\): La muestra proviene de una distribución normal. \(p.value \geq 0.05\)
  • \(H_1\): La muestra no proviene de una distribución normal. \(p.value \leq 0.05\)
# Prueba de Jarque-Bera
Resid <- mco$residuals
jarque.bera.test(Resid)
## 
##  Jarque Bera Test
## 
## data:  Resid
## X-squared = 49.309, df = 2, p-value = 1.962e-11

No hay normalidad en los residuos.

4.1.2 Autocorrelación

Para evaluar la no autocorrelación de los residuos se usa la prueba de Durbin-Watson y Breusch-Godfrey, donde:

  • \(H_0\): No hay autocorrelacion. \(p.value \geq 0.05\)
  • \(H_1\): Si hay autocorrelacion. \(p.value \leq 0.05\)
# Prueba de Durbin-Watson
dwtest(mco)
## 
##  Durbin-Watson test
## 
## data:  mco
## DW = 1.7258, p-value = 0.02832
## alternative hypothesis: true autocorrelation is greater than 0
# Prueba de Breusch-Godfrey
bgtest(mco, order = 1)
## 
##  Breusch-Godfrey test for serial correlation of order up to 1
## 
## data:  mco
## LM test = 12.953, df = 1, p-value = 0.0003194
bgtest(mco, order = 2)
## 
##  Breusch-Godfrey test for serial correlation of order up to 2
## 
## data:  mco
## LM test = 13.566, df = 2, p-value = 0.001133

Hay problemas de autocorrelación en los residuos que se muestran con Durbin-Watson y cpn Breusch-Godfrey a dos residuos.

4.1.3 Heterocedasticidad

Para evaluar la presencia de heterocedasticidad del modelo se usa la prueba de Breusch-Pagan, donde:

  • \(H_0\): Si hay homocedasticidad. \(p.value \geq 0.05\)
  • \(H_1\): No hay homocedasticidad (Heterocedasticidad). \(p.value \leq 0.05\)
# Prueba de Breusch-Pagan
bptest(mco)
## 
##  studentized Breusch-Pagan test
## 
## data:  mco
## BP = 4.4599, df = 3, p-value = 0.2159

El modelo es homocedastico.

4.2 Evaluación sistemática

4.2.1 Multicolinealidad

Para determinar la ausencia de multicolinealidad, el factor de inflación de la varianza (VIF) debe ser menor a 10.

# Factor de Inflacion de la Varianza (VIF)
vif(mco)
##       tcly tclipulag1     dummy1 
##   1.229629   1.257250   1.026093

No hay problemas de multicolinealidad.

4.2.2 Especificidad

Para saber si el modelo esta bien especificados se usa la prueba de Ramsey, donde:

  • \(H_0\): Forma funcional correcta. \(p.value \geq 0.05\)
  • \(H_1\): Forma funcional incorrecta. \(p.value \leq 0.05\)
# Prueba de Ramsey
resettest(mco)
## 
##  RESET test
## 
## data:  mco
## RESET = 4.7642, df1 = 2, df2 = 161, p-value = 0.009769

El modelo no esta bien especificado.

4.2.3 Quiebre estructural

Es necesario conocer si hay un quiebre estructural en la serie de tiempo con la prueba de CUSUM.

ocus <- efp(mco, data = muestra_estimacion, type = "OLS-CUSUM")
bound.ocus <- boundary(ocus, alpha = 0.05)
plot(ocus)

ocus2 <- efp(mco, data = muestra_estimacion, type = "Rec-CUSUM")
bound.ocus <- boundary(ocus2, alpha=0.05)
plot(ocus2)

El modelo es estable.

5 Estimación del modelo estático

Es necesario retirar la variable rezagada.

mco <- lm(tclipu ~ 
             tcly +
             dummy1, 
          muestra_estimacion)

summary(mco)
## 
## Call:
## lm(formula = tclipu ~ tcly + dummy1, data = muestra_estimacion)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -74.845 -12.850  -0.544  14.420  97.856 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -2.7176     1.9656  -1.383   0.1687    
## tcly          1.9847     0.2374   8.362 2.54e-14 ***
## dummy1      -25.3215    11.8977  -2.128   0.0348 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 23.51 on 164 degrees of freedom
## Multiple R-squared:  0.3134, Adjusted R-squared:  0.3051 
## F-statistic: 37.44 on 2 and 164 DF,  p-value: 4.049e-14

El modelo queda como:

\[\widehat{tclipu_t} = \beta_0 + \beta_{1}~tcly_t - \beta_{3}~D_{1985,1,4} + \epsilon_t\]

\[\widehat{tclipu_t} = -2.72 + 1.98~tcly_t - 25.32~D_{1985,1,4} + \epsilon_t\] Por cada incremento del 1% en la tasa de crecimiento del PIB, la inversión pública aumenta 1.98%.

5.1 Evaluación residual

5.1.1 Normalidad

Para evaluar la normalidad de los residuos se usa la prueba de Jarque-Bera, donde:

  • \(H_0\): La muestra proviene de una distribución normal. \(p.value \geq 0.05\)
  • \(H_1\): La muestra no proviene de una distribución normal. \(p.value \leq 0.05\)
# Prueba de Jarque-Bera
Resid <- mco$residuals
jarque.bera.test(Resid)
## 
##  Jarque Bera Test
## 
## data:  Resid
## X-squared = 45.488, df = 2, p-value = 1.326e-10

No hay normalidad en los residuos.

5.1.2 Autocorrelación

Para evaluar la no autocorrelación de los residuos se usa la prueba de Durbin-Watson y Breusch-Godfrey, donde:

  • \(H_0\): No hay autocorrelacion. \(p.value \geq 0.05\)
  • \(H_1\): Si hay autocorrelacion. \(p.value \leq 0.05\)
# Prueba de Durbin-Watson
dwtest(mco)
## 
##  Durbin-Watson test
## 
## data:  mco
## DW = 1.4433, p-value = 9.639e-05
## alternative hypothesis: true autocorrelation is greater than 0
# Prueba de Breusch-Godfrey
bgtest(mco, order = 1)
## 
##  Breusch-Godfrey test for serial correlation of order up to 1
## 
## data:  mco
## LM test = 12.697, df = 1, p-value = 0.0003662
bgtest(mco, order = 2)
## 
##  Breusch-Godfrey test for serial correlation of order up to 2
## 
## data:  mco
## LM test = 12.704, df = 2, p-value = 0.001743

Hay problemas de autocorrelación en los residuos que se muestran con Durbin-Watson y cpn Breusch-Godfrey a dos residuos.

5.1.3 Heterocedasticidad

Para evaluar la presencia de heterocedasticidad del modelo se usa la prueba de Breusch-Pagan, donde:

  • \(H_0\): Si hay homocedasticidad. \(p.value \geq 0.05\)
  • \(H_1\): No hay homocedasticidad (Heterocedasticidad). \(p.value \leq 0.05\)
# Prueba de Breusch-Pagan
bptest(mco)
## 
##  studentized Breusch-Pagan test
## 
## data:  mco
## BP = 4.0993, df = 2, p-value = 0.1288

El modelo es homocedástico.

5.2 Evaluación sistemática

5.2.1 Multicolinealidad

Para determinar la ausencia de multicolinealidad, el factor de inflación de la varianza (VIF) debe ser menor a 10.

# Factor de Inflacion de la Varianza (VIF)
vif(mco)
##     tcly   dummy1 
## 1.000136 1.000136

No hay problemas de multicolinealidad.

5.2.2 Especificidad

Para saber si el modelo esta bien especificados se usa la prueba de Ramsey, donde:

  • \(H_0\): Forma funcional correcta. \(p.value \geq 0.05\)
  • \(H_1\): Forma funcional incorrecta. \(p.value \leq 0.05\)
# Prueba de Ramsey
resettest(mco)
## 
##  RESET test
## 
## data:  mco
## RESET = 6.3408, df1 = 2, df2 = 162, p-value = 0.002232

El modelo no esta bien especificado.

5.2.3 Quiebre estructural

Es necesario conocer si hay un quiebre estructural en la serie de tiempo con la prueba de CUSUM.

ocus <- efp(mco, data = muestra_estimacion, type = "OLS-CUSUM")
bound.ocus <- boundary(ocus, alpha = 0.05)
plot(ocus)

ocus2 <- efp(mco, data = muestra_estimacion, type = "Rec-CUSUM")
bound.ocus <- boundary(ocus2, alpha=0.05)
plot(ocus2)

El modelo es estable.

La diferencia entre el modelo estático y dinámico es que en el primero todas las variables son fijas, en el segundo al menos se tiene una variable regresora que cambia en el tiempo.

6 Correción del modelo dinámico

Se estima un nuevo modelo dinámico sin variables dummy.

muestra_estimacion <- window(muestra, 
                             start = c(1991, 1),
                             end=c(2022, 4))

mco <- lm(tclipu ~ 
             tcly + 
             tclipulag1,
          muestra_estimacion)

summary(mco)
## 
## Call:
## lm(formula = tclipu ~ tcly + tclipulag1, data = muestra_estimacion)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -37.026 -10.372  -0.008   9.101  41.961 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -6.1258     1.7713  -3.458 0.000744 ***
## tcly          2.4815     0.2570   9.657  < 2e-16 ***
## tclipulag1    0.2517     0.0634   3.969 0.000121 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 16.49 on 125 degrees of freedom
## Multiple R-squared:  0.5431, Adjusted R-squared:  0.5358 
## F-statistic: 74.29 on 2 and 125 DF,  p-value: < 2.2e-16

\[\widehat{tclipu_t} = \beta_0 + \beta_{1}~tcly_t + \beta_{2}~tclipu_{t-1} + \epsilon_t\]

\[\widehat{tclipu_t} = -6.13 + 2.48~tcly_t + 0.25~tclipu_{t-1} + \epsilon_t\]

6.1 Evaluación residual

6.1.1 Normalidad

Para evaluar la normalidad de los residuos se usa la prueba de Jarque-Bera, donde:

  • \(H_0\): La muestra proviene de una distribución normal. \(p.value \geq 0.05\)
  • \(H_1\): La muestra no proviene de una distribución normal. \(p.value \leq 0.05\)
# Prueba de Jarque-Bera
Resid <- mco$residuals
jarque.bera.test(Resid)
## 
##  Jarque Bera Test
## 
## data:  Resid
## X-squared = 0.015324, df = 2, p-value = 0.9924

Hay normalidad en los residuos.

6.1.2 Autocorrelación

Para evaluar la no autocorrelación de los residuos se usa la prueba de Durbin-Watson y Breusch-Godfrey, donde:

  • \(H_0\): No hay autocorrelacion. \(p.value \geq 0.05\)
  • \(H_1\): Si hay autocorrelacion. \(p.value \leq 0.05\)
# Prueba de Durbin-Watson
dwtest(mco)
## 
##  Durbin-Watson test
## 
## data:  mco
## DW = 1.3863, p-value = 0.0001828
## alternative hypothesis: true autocorrelation is greater than 0
# Prueba de Breusch-Godfrey
bgtest(mco, order = 1)
## 
##  Breusch-Godfrey test for serial correlation of order up to 1
## 
## data:  mco
## LM test = 25.36, df = 1, p-value = 4.757e-07
bgtest(mco, order = 2)
## 
##  Breusch-Godfrey test for serial correlation of order up to 2
## 
## data:  mco
## LM test = 30.317, df = 2, p-value = 2.61e-07

Hay problemas de autocorrelación.

6.1.3 Heterocedasticidad

Para evaluar la presencia de heterocedasticidad del modelo se usa la prueba de Breusch-Pagan, donde:

  • \(H_0\): Si hay homocedasticidad. \(p.value \geq 0.05\)
  • \(H_1\): No hay homocedasticidad (Heterocedasticidad). \(p.value \leq 0.05\)
# Prueba de Breusch-Pagan
bptest(mco)
## 
##  studentized Breusch-Pagan test
## 
## data:  mco
## BP = 2.5754, df = 2, p-value = 0.2759

El modelo es homocedástico, las varianzas son constantes.

6.2 Evaluación sistemática

6.2.1 Multicolinealidad

Para determinar la ausencia de multicolinealidad, el factor de inflación de la varianza (VIF) debe ser menor a 10.

# Factor de Inflacion de la Varianza (VIF)
vif(mco)
##       tcly tclipulag1 
##    1.11333    1.11333

No hay problemas de multicolinealidad.

6.2.2 Especificidad

Para saber si el modelo esta bien especificados se usa la prueba de Ramsey, donde:

  • \(H_0\): Forma funcional correcta. \(p.value \geq 0.05\)
  • \(H_1\): Forma funcional incorrecta. \(p.value \leq 0.05\)
# Prueba de Ramsey
resettest(mco)
## 
##  RESET test
## 
## data:  mco
## RESET = 8.6748, df1 = 2, df2 = 123, p-value = 0.000299

El modelo no esta bien especificado.

6.2.3 Quiebre estructural

Es necesario conocer si hay un quiebre estructural en la serie de tiempo con la prueba de CUSUM.

ocus <- efp(mco, data = muestra_estimacion, type = "OLS-CUSUM")
bound.ocus <- boundary(ocus, alpha = 0.05)
plot(ocus)

ocus2 <- efp(mco, data = muestra_estimacion, type = "Rec-CUSUM")
bound.ocus <- boundary(ocus2, alpha=0.05)
plot(ocus2)

El modelo es estable.

7 Correción del modelo dinámico 2

muestra_estimacion <- window(muestra, 
                             start = c(2000, 1),
                             end=c(2022, 4))

mco <- lm(tclipu ~ 
             tcly + 
             tclipulag1,
          muestra_estimacion)

summary(mco)
## 
## Call:
## lm(formula = tclipu ~ tcly + tclipulag1, data = muestra_estimacion)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -35.568  -8.320   0.094   7.626  37.396 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -9.72202    2.00993  -4.837 5.49e-06 ***
## tcly         2.98948    0.28417  10.520  < 2e-16 ***
## tclipulag1   0.17483    0.06845   2.554   0.0123 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 15.9 on 89 degrees of freedom
## Multiple R-squared:  0.6316, Adjusted R-squared:  0.6233 
## F-statistic: 76.29 on 2 and 89 DF,  p-value: < 2.2e-16

\[\widehat{tclipu_t} = \beta_0 + \beta_{1}~tcly_t + \beta_{2}~tclipu_{t-1} + \epsilon_t\]

\[\widehat{tclipu_t} = -9.72 + 2.99~tcly_t + 0.17~tclipu_{t-1} + \epsilon_t\]

7.1 Evaluación residual

7.1.1 Normalidad

Para evaluar la normalidad de los residuos se usa la prueba de Jarque-Bera, donde:

  • \(H_0\): La muestra proviene de una distribución normal. \(p.value \geq 0.05\)
  • \(H_1\): La muestra no proviene de una distribución normal. \(p.value \leq 0.05\)
# Prueba de Jarque-Bera
Resid <- mco$residuals
jarque.bera.test(Resid)
## 
##  Jarque Bera Test
## 
## data:  Resid
## X-squared = 0.16462, df = 2, p-value = 0.921

Hay normalidad en los residuos.

7.1.2 Autocorrelación

Para evaluar la no autocorrelación de los residuos se usa la prueba de Durbin-Watson y Breusch-Godfrey, donde:

  • \(H_0\): No hay autocorrelacion. \(p.value \geq 0.05\)
  • \(H_1\): Si hay autocorrelacion. \(p.value \leq 0.05\)
# Prueba de Durbin-Watson
dwtest(mco)
## 
##  Durbin-Watson test
## 
## data:  mco
## DW = 1.2654, p-value = 9.841e-05
## alternative hypothesis: true autocorrelation is greater than 0
# Prueba de Breusch-Godfrey
bgtest(mco, order = 1)
## 
##  Breusch-Godfrey test for serial correlation of order up to 1
## 
## data:  mco
## LM test = 21.937, df = 1, p-value = 2.817e-06
bgtest(mco, order = 2)
## 
##  Breusch-Godfrey test for serial correlation of order up to 2
## 
## data:  mco
## LM test = 24.635, df = 2, p-value = 4.474e-06

Hay problemas de autocorrelación.

7.1.3 Heterocedasticidad

Para evaluar la presencia de heterocedasticidad del modelo se usa la prueba de Breusch-Pagan, donde:

  • \(H_0\): Si hay homocedasticidad. \(p.value \geq 0.05\)
  • \(H_1\): No hay homocedasticidad (heterocedasticidad). \(p.value \leq 0.05\)
# Prueba de Breusch-Pagan
bptest(mco)
## 
##  studentized Breusch-Pagan test
## 
## data:  mco
## BP = 3.431, df = 2, p-value = 0.1799

El modelo es homocedástico, las varianzas son constantes.

7.2 Evaluación sistemática

7.2.1 Multicolinealidad

Para determinar la ausencia de multicolinealidad, el factor de inflación de la varianza (VIF) debe ser menor a 10.

# Factor de Inflacion de la Varianza (VIF)
vif(mco)
##       tcly tclipulag1 
##   1.127822   1.127822

No hay problemas de multicolinealidad.

7.2.2 Especificidad

Para saber si el modelo esta bien especificados se usa la prueba de Ramsey, donde:

  • \(H_0\): Forma funcional correcta. \(p.value \geq 0.05\)
  • \(H_1\): Forma funcional incorrecta. \(p.value \leq 0.05\)
# Prueba de Ramsey
resettest(mco)
## 
##  RESET test
## 
## data:  mco
## RESET = 4.605, df1 = 2, df2 = 87, p-value = 0.01256

El modelo no esta bien especificado.

7.2.3 Quiebre estructural

Es necesario conocer si hay un quiebre estructural en la serie de tiempo con la prueba de CUSUM.

ocus <- efp(mco, data = muestra_estimacion, type = "OLS-CUSUM")
bound.ocus <- boundary(ocus, alpha = 0.05)
plot(ocus)

ocus2 <- efp(mco, data = muestra_estimacion, type = "Rec-CUSUM")
bound.ocus <- boundary(ocus2, alpha=0.05)
plot(ocus2)

El modelo no es estable, hay un quiebre estructural.

8 Correción del modelo dinámico 3

muestra_estimacion <- window(muestra, 
                             start = c(1991, 1),
                             end=c(2019, 4))

mco <- lm(tclipu ~ 
             tcly + 
             tclipulag1,
          muestra_estimacion)

summary(mco)
## 
## Call:
## lm(formula = tclipu ~ tcly + tclipulag1, data = muestra_estimacion)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -39.157  -9.523   1.230   9.664  37.555 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -2.66358    2.01641  -1.321  0.18918    
## tcly         1.20310    0.36692   3.279  0.00139 ** 
## tclipulag1   0.53263    0.07414   7.184 7.71e-11 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 14.15 on 113 degrees of freedom
## Multiple R-squared:  0.4455, Adjusted R-squared:  0.4356 
## F-statistic: 45.39 on 2 and 113 DF,  p-value: 3.408e-15

\[\widehat{tclipu_t} = \beta_0 + \beta_{1}~tcly_t + \beta_{2}~tclipu_{t-1} + \epsilon_t\]

\[\widehat{tclipu_t} = -2.66 + 1.20~tcly_t + 0.53~tclipu_{t-1} + \epsilon_t\]

8.1 Evaluación residual

8.1.1 Normalidad

Para evaluar la normalidad de los residuos se usa la prueba de Jarque-Bera, donde:

  • \(H_0\): La muestra proviene de una distribución normal. \(p.value \geq 0.05\)
  • \(H_1\): La muestra no proviene de una distribución normal. \(p.value \leq 0.05\)
# Prueba de Jarque-Bera
Resid <- mco$residuals
jarque.bera.test(Resid)
## 
##  Jarque Bera Test
## 
## data:  Resid
## X-squared = 0.5818, df = 2, p-value = 0.7476

Hay normalidad en los residuos.

8.1.2 Autocorrelación

Para evaluar la no autocorrelación de los residuos se usa la prueba de Durbin-Watson y Breusch-Godfrey, donde:

  • \(H_0\): No hay autocorrelacion. \(p.value \geq 0.05\)
  • \(H_1\): Si hay autocorrelacion. \(p.value \leq 0.05\)
# Prueba de Durbin-Watson
dwtest(mco)
## 
##  Durbin-Watson test
## 
## data:  mco
## DW = 1.8662, p-value = 0.1997
## alternative hypothesis: true autocorrelation is greater than 0
# Prueba de Breusch-Godfrey
bgtest(mco, order = 1)
## 
##  Breusch-Godfrey test for serial correlation of order up to 1
## 
## data:  mco
## LM test = 1.1814, df = 1, p-value = 0.2771
bgtest(mco, order = 2)
## 
##  Breusch-Godfrey test for serial correlation of order up to 2
## 
## data:  mco
## LM test = 5.5834, df = 2, p-value = 0.06132

No hay autocorrelación.

8.1.3 Heterocedasticidad

Para evaluar la presencia de heterocedasticidad del modelo se usa la prueba de Breusch-Pagan, donde:

  • \(H_0\): Si hay homocedasticidad. \(p.value \geq 0.05\)
  • \(H_1\): No hay homocedasticidad (heterocedasticidad). \(p.value \leq 0.05\)
# Prueba de Breusch-Pagan
bptest(mco)
## 
##  studentized Breusch-Pagan test
## 
## data:  mco
## BP = 1.6094, df = 2, p-value = 0.4472

El modelo es homocedástico, las varianzas son constantes.

8.2 Evaluación sistemática

8.2.1 Multicolinealidad

Para determinar la ausencia de multicolinealidad, el factor de inflación de la varianza (VIF) debe ser menor a 10.

# Factor de Inflacion de la Varianza (VIF)
vif(mco)
##       tcly tclipulag1 
##   1.146226   1.146226

No hay problemas de multicolinealidad.

8.2.2 Especificidad

Para saber si el modelo esta bien especificados se usa la prueba de Ramsey, donde:

  • \(H_0\): Forma funcional correcta. \(p.value \geq 0.05\)
  • \(H_1\): Forma funcional incorrecta. \(p.value \leq 0.05\)
# Prueba de Ramsey
resettest(mco)
## 
##  RESET test
## 
## data:  mco
## RESET = 0.20171, df1 = 2, df2 = 111, p-value = 0.8176

El modelo esta bien especificado.

8.2.3 Quiebre estructural

Es necesario conocer si hay un quiebre estructural en la serie de tiempo con la prueba de CUSUM.

ocus <- efp(mco, data = muestra_estimacion, type = "OLS-CUSUM")
bound.ocus <- boundary(ocus, alpha = 0.05)
plot(ocus)

ocus2 <- efp(mco, data = muestra_estimacion, type = "Rec-CUSUM")
bound.ocus <- boundary(ocus2, alpha = 0.05)
plot(ocus2)

El modelo es estable, no hay quiebres estructurales.

9 Modelo final

\[\widehat{tclipu_t} = -2.66 + 1.20~tcly_t + 0.53~tclipu_{t-1} + \epsilon_t\]

El crecimiento económico tiene un impacto positivo sobre la inversión pública, es decir, a medida que la tasa de crecimiento del PIB crece en 1%, la tasa de crecimiento de la inversión pública crece 1.20%, mientras que la inversión pública rezagadas impacta positivamente en 0.53%.