knitr::opts_chunk$set(echo = TRUE)
library(readxl)
library(tseries)
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
library(lmtest)
## Cargando paquete requerido: zoo
##
## Adjuntando el paquete: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
library(skedastic)
library(ARDL)
## To cite the ARDL package in publications:
##
## Use this reference to refer to the validity of the ARDL package.
##
## Natsiopoulos, Kleanthis, and Tzeremes, Nickolaos G. (2022). ARDL
## bounds test for cointegration: Replicating the Pesaran et al. (2001)
## results for the UK earnings equation using R. Journal of Applied
## Econometrics, 37(5), 1079-1090. https://doi.org/10.1002/jae.2919
##
## Use this reference to cite this specific version of the ARDL package.
##
## Kleanthis Natsiopoulos and Nickolaos Tzeremes (2023). ARDL: ARDL, ECM
## and Bounds-Test for Cointegration. R package version 0.2.4.
## https://CRAN.R-project.org/package=ARDL
library(seasonal)
El presente modelo ARDL (Autoregressive Distributed Lag), aplicado al Producto Interno Bruto (PIB) y al consumo —específicamente al gasto de consumo final del gobierno general y al gasto de consumo final de los hogares—, tiene como objetivo analizar la relación dinámica entre estas variables económicas a lo largo del tiempo. El análisis se centra en identificar cómo el consumo influye en el comportamiento del PIB, considerando tanto los valores actuales como los rezagados de ambas variables. Además, este modelo incorpora variables binarias con el propósito de capturar posibles efectos estructurales o cambios de régimen en la serie temporal.
Este modelo ARDL se desarrolla a partir de información obtenida de la plataforma CEPALSTAT, proporcionada por la Comisión Económica para América Latina y el Caribe (CEPAL), la cual ofrece estadísticas oficiales, comparables y actualizadas sobre diversas dimensiones económicas y sociales de la región. En este caso, el análisis se centra en la República Dominicana, seleccionada como país representativo de América Latina por su dinamismo económico y su relevancia en los reportes recientes de la CEPAL.
REPÚBLICA_DOMINICANA <- read_excel("C:/Users/Hp/Desktop/MATERIAS DPP/SEM 1 DPP/ECONOMETRÍA/REPÚBLICA DOMINICANA.xlsx")
View(REPÚBLICA_DOMINICANA)
attach(REPÚBLICA_DOMINICANA)
Ct=ts(CONSUMO, start=1992, frequency=4)
Yt=ts(PIB, start=1992, frequency=4)
plot(Ct,type="l", col="navyblue")
plot(Yt,type="l", col="darkred")
# Revisamos las series
REPÚBLICA_DOMINICANA=data.frame(Ct, Yt)
matplot(REPÚBLICA_DOMINICANA, type="l", lwd=3, lty=1)
# Convertimos a logaritmos
Ct=log(Ct)
Yt=log(Yt)
REPÚBLICA_DOMINICANA=data.frame(Ct, Yt)
matplot(REPÚBLICA_DOMINICANA, type="l", lwd=2, lty=1)
# Desestacionalizamos las series
eq.sa<-seas(Ct, transform.function = "log", regression.aictest = NULL)
Ct<-predict(eq.sa)
eq.sa<-seas(Yt, transform.function = "log", regression.aictest = NULL)
Yt<-predict(eq.sa)
#Revisión de las series desestacionalizadas
REPÚBLICA_DOMINICANA=data.frame(Ct, Yt)
plot(Ct, type="l")
plot(Yt, type="l")
matplot(REPÚBLICA_DOMINICANA, type="l", lwd=2, lty=1)
#Análisis de integración de la serie CONSUMO
## Se aplica la prueba de raíz unitaria KPSS
kpss.test(Ct)
## Warning in kpss.test(Ct): p-value smaller than printed p-value
##
## KPSS Test for Level Stationarity
##
## data: Ct
## KPSS Level = 2.3006, Truncation lag parameter = 3, p-value = 0.01
kpss.test(diff(Ct))
## Warning in kpss.test(diff(Ct)): p-value greater than printed p-value
##
## KPSS Test for Level Stationarity
##
## data: diff(Ct)
## KPSS Level = 0.077453, Truncation lag parameter = 3, p-value = 0.1
## Se aplica la prueba la prueba de raíz unitaria ADF
adf.test(Ct)
##
## Augmented Dickey-Fuller Test
##
## data: Ct
## Dickey-Fuller = -1.999, Lag order = 4, p-value = 0.5766
## alternative hypothesis: stationary
adf.test(diff(Ct))
##
## Augmented Dickey-Fuller Test
##
## data: diff(Ct)
## Dickey-Fuller = -3.5434, Lag order = 4, p-value = 0.04285
## alternative hypothesis: stationary
## Se aplica la prueba la prueba de raíz unitaria Phillips-Perron
pp.test(Ct)
##
## Phillips-Perron Unit Root Test
##
## data: Ct
## Dickey-Fuller Z(alpha) = -9.054, Truncation lag parameter = 3, p-value
## = 0.5873
## alternative hypothesis: stationary
pp.test(diff(Ct))
## Warning in pp.test(diff(Ct)): p-value smaller than printed p-value
##
## Phillips-Perron Unit Root Test
##
## data: diff(Ct)
## Dickey-Fuller Z(alpha) = -92.204, Truncation lag parameter = 3, p-value
## = 0.01
## alternative hypothesis: stationary
Los resultados de las pruebas de raíz unitaria aplicadas a la serie de consumo (Ct) indican de forma consistente que la serie no es estacionaria en niveles, es decir, presenta una tendencia o comportamiento cambiante a lo largo del tiempo. No obstante, al aplicar la primera diferencia de la serie, todas las pruebas coinciden en que la serie se vuelve estacionaria, lo que implica que las variaciones del consumo sí mantienen propiedades estadísticas estables. En términos técnicos, esto significa que la serie tiene un grado de integración uno. Este resultado es relevante para el análisis, ya que justifica el uso de un modelo ARDL.
#Análisis de integración de la serie PIB
## Se aplica la prueba de raíz unitaria KPSS
kpss.test(Yt)
## Warning in kpss.test(Yt): p-value smaller than printed p-value
##
## KPSS Test for Level Stationarity
##
## data: Yt
## KPSS Level = 2.3262, Truncation lag parameter = 3, p-value = 0.01
kpss.test(diff(Yt))
## Warning in kpss.test(diff(Yt)): p-value greater than printed p-value
##
## KPSS Test for Level Stationarity
##
## data: diff(Yt)
## KPSS Level = 0.091944, Truncation lag parameter = 3, p-value = 0.1
## Se aplica la prueba la prueba de raíz unitaria ADF
adf.test(Yt)
##
## Augmented Dickey-Fuller Test
##
## data: Yt
## Dickey-Fuller = -2.5825, Lag order = 4, p-value = 0.3364
## alternative hypothesis: stationary
adf.test(diff(Yt))
##
## Augmented Dickey-Fuller Test
##
## data: diff(Yt)
## Dickey-Fuller = -3.7256, Lag order = 4, p-value = 0.02686
## alternative hypothesis: stationary
## Se aplica la prueba la prueba de raíz unitaria Phillips-Perron
pp.test(Yt)
##
## Phillips-Perron Unit Root Test
##
## data: Yt
## Dickey-Fuller Z(alpha) = -8.9796, Truncation lag parameter = 3, p-value
## = 0.5917
## alternative hypothesis: stationary
pp.test(diff(Yt))
## Warning in pp.test(diff(Yt)): p-value smaller than printed p-value
##
## Phillips-Perron Unit Root Test
##
## data: diff(Yt)
## Dickey-Fuller Z(alpha) = -80.625, Truncation lag parameter = 3, p-value
## = 0.01
## alternative hypothesis: stationary
Al aplicar las pruebas de raíz unitaria sobre la serie del PIB (Yt), los resultados indican que esta no es estacionaria en niveles. La prueba KPSS arroja un valor crítico elevado con un p-valor menor a 0.01, lo que implica el rechazo de la hipótesis nula de estacionariedad. Por su parte, tanto la prueba de Dickey-Fuller Aumentada como la de Phillips-Perron reportan p-valores significativamente mayores a 0.05, confirmando la presencia de una raíz unitaria.
Sin embargo, al aplicar la primera diferencia de la serie (diff(Yt)), los resultados cambian de forma clara y consistente. Las tres pruebas coinciden en que la serie diferenciada sí es estacionaria, con p-valores menores a 0.05 (ADF y PP) y superiores a 0.1 (KPSS), lo que indica estabilidad estadística en las variaciones del PIB. Por tanto, se concluye que la variable PIB tiene grado de integración uno.
Este hallazgo, en conjunto con los resultados del consumo (Ct), valida el uso del modelo ARDL, el cual permite trabajar con variables I(0) y I(1) de manera flexible, sin necesidad de convertir todas las series al mismo orden de integración, siempre que ninguna sea I(2). Además, esto garantiza la posibilidad de explorar relaciones tanto de corto como de largo plazo entre el PIB y el consumo.
#Rezagos con el criterio de Akaike AIC
AIC=auto_ardl(Ct~Yt, data=REPÚBLICA_DOMINICANA, selection="AIC", max_order=c(8,8))
AIC$top_orders
# Rezagos con el criterio de Shwartz BIC
BIC=auto_ardl(Ct~Yt, data=REPÚBLICA_DOMINICANA, selection="BIC", max_order=c(8,8))
BIC$top_orders
# Rezagos con el criterio R2
R2=function(x) { summary(x)$adj.r.squared }
ADJR2=auto_ardl(Ct~Yt, data=REPÚBLICA_DOMINICANA, max_order = c(8,8), selection = "R2", selection_minmax = "max")
ADJR2$top_orders
#Definición de p,q
p=1
q=2
A partir de la aplicación de los criterios de información AIC, BIC y R² ajustado, se identificó que la combinación de rezagos más adecuada para el modelo ARDL es de un rezago para el consumo (Ct-1) y dos rezagos para el PIB (Yt-1, Yt-2). Esta especificación permite capturar de manera eficiente la relación dinámica entre ambas variables, manteniendo un equilibrio entre calidad del ajuste y simplicidad del modelo.
# Modelo ARDL con constante y sin tendencia (Case 2)
eq_ardl_c2 <- ardl(Ct ~ Yt, data = REPÚBLICA_DOMINICANA, order = c(p, q))
summary(eq_ardl_c2)
##
## Time series regression with "ts" data:
## Start = 3, End = 90
##
## Call:
## dynlm::dynlm(formula = full_formula, data = data, start = start,
## end = end)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.119131 -0.008681 0.000030 0.004791 0.101729
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.18521 0.11146 -1.662 0.100336
## L(Ct, 1) 0.85516 0.05831 14.666 < 2e-16 ***
## Yt 1.22836 0.20726 5.927 6.81e-08 ***
## L(Yt, 1) -1.21328 0.31416 -3.862 0.000222 ***
## L(Yt, 2) 0.14345 0.20641 0.695 0.489003
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.02172 on 83 degrees of freedom
## Multiple R-squared: 0.9967, Adjusted R-squared: 0.9966
## F-statistic: 6293 on 4 and 83 DF, p-value: < 2.2e-16
eq_uecm_c2 <- uecm(eq_ardl_c2, case = 2)
summary(eq_uecm_c2)
##
## Time series regression with "ts" data:
## Start = 3, End = 90
##
## Call:
## dynlm::dynlm(formula = full_formula, data = data, start = start,
## end = end)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.119131 -0.008681 0.000030 0.004791 0.101729
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.18521 0.11146 -1.662 0.1003
## L(Ct, 1) -0.14484 0.05831 -2.484 0.0150 *
## L(Yt, 1) 0.15853 0.06418 2.470 0.0156 *
## d(Yt) 1.22836 0.20726 5.927 6.81e-08 ***
## d(L(Yt, 1)) -0.14345 0.20641 -0.695 0.4890
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.02172 on 83 degrees of freedom
## Multiple R-squared: 0.3085, Adjusted R-squared: 0.2751
## F-statistic: 9.256 on 4 and 83 DF, p-value: 3.104e-06
bft_c2 <- bounds_f_test(eq_ardl_c2, case = 2, alpha = 0.05)
bft_c2$tab
eq_recm_c2 <- recm(eq_ardl_c2, case = 2)
summary(eq_recm_c2)
##
## Time series regression with "zooreg" data:
## Start = 3, End = 90
##
## Call:
## dynlm::dynlm(formula = full_formula, data = data, start = start,
## end = end)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.119131 -0.008681 0.000030 0.004791 0.101729
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## d(Yt) 1.2284 0.1703 7.212 2.12e-10 ***
## d(L(Yt, 1)) -0.1434 0.1699 -0.844 0.4008
## ect -0.1448 0.0566 -2.559 0.0123 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.02146 on 85 degrees of freedom
## (0 observations deleted due to missingness)
## Multiple R-squared: 0.4556, Adjusted R-squared: 0.4363
## F-statistic: 23.71 on 3 and 85 DF, p-value: 3.044e-11
eq_level_c2 <- multipliers(eq_uecm_c2, type = "lr")
eq_level_c2
# Supuesto de normalidad
plot(resid(eq_recm_c2), type = "l", col = "blue")
hist(resid(eq_recm_c2))
jarque.bera.test(resid(eq_recm_c2))
##
## Jarque Bera Test
##
## data: resid(eq_recm_c2)
## X-squared = 930.82, df = 2, p-value < 2.2e-16
#Buscamos el dato aberrante negativo en los residuales
min(resid(eq_recm_c2))
## [1] -0.119131
#Lo identificamos por número de observación
match(min(resid(eq_recm_c2)), resid(eq_recm_c2))+p
## [1] 44
match(min(resid(eq_recm_c2)), resid(eq_recm_c2))+q
## [1] 45
resid(eq_recm_c2)
## 3 4 5 6 7
## -1.272804e-03 -4.984072e-03 -9.956626e-03 -5.026027e-04 1.538103e-03
## 8 9 10 11 12
## 5.528945e-03 3.171612e-02 -4.675327e-03 2.465892e-03 1.123044e-02
## 13 14 15 16 17
## 3.159669e-02 8.699569e-03 1.285318e-02 -4.982309e-03 2.094057e-02
## 18 19 20 21 22
## -1.134731e-02 -1.016324e-02 -1.226073e-02 -6.194583e-03 -2.397333e-03
## 23 24 25 26 27
## -8.937356e-03 2.312053e-03 -1.078265e-02 -1.380698e-02 4.780687e-03
## 28 29 30 31 32
## 3.600924e-03 3.668228e-03 4.453495e-03 -9.955477e-03 -8.281561e-03
## 33 34 35 36 37
## -1.046728e-02 -5.178490e-04 -1.152013e-02 -1.043746e-02 -5.154102e-03
## 38 39 40 41 42
## 2.099763e-02 -1.793650e-03 -3.514800e-03 3.544796e-03 1.690298e-03
## 43 44 45 46 47
## 1.433668e-04 -8.400535e-05 -1.191310e-01 -1.267855e-02 -1.300871e-02
## 48 49 50 51 52
## 4.364291e-02 -5.631937e-02 4.820892e-03 4.974376e-04 5.838812e-03
## 53 54 55 56 57
## 1.017289e-01 -1.140289e-02 -1.153683e-02 -2.071256e-02 -1.647357e-02
## 58 59 60 61 62
## -2.191139e-03 3.885408e-03 1.375422e-02 2.912232e-03 1.276865e-02
## 63 64 65 66 67
## 1.473820e-03 -3.442683e-03 1.271659e-02 1.048313e-03 6.641004e-03
## 68 69 70 71 72
## 7.775267e-03 4.255073e-02 -6.242816e-04 2.375467e-03 1.981802e-03
## 73 74 75 76 77
## 1.107331e-02 2.473383e-03 8.249293e-03 5.101087e-03 4.716962e-03
## 78 79 80 81 82
## 7.236312e-03 2.356063e-03 2.754876e-03 4.011180e-03 -1.626331e-03
## 83 84 85 86 87
## -1.672978e-03 -3.206383e-03 -3.943191e-03 -1.081513e-02 -8.595219e-03
## 88 89 90
## -9.732393e-03 -1.035309e-02 -4.689285e-03
# Se repiten 90 ceros
bin03q1=rep(0,90)
bin03q1=ts(bin03q1, start=1992, frequency=4)
bin03q1[45]=1
bin03q1
## Qtr1 Qtr2 Qtr3 Qtr4
## 1992 0 0 0 0
## 1993 0 0 0 0
## 1994 0 0 0 0
## 1995 0 0 0 0
## 1996 0 0 0 0
## 1997 0 0 0 0
## 1998 0 0 0 0
## 1999 0 0 0 0
## 2000 0 0 0 0
## 2001 0 0 0 0
## 2002 0 0 0 0
## 2003 1 0 0 0
## 2004 0 0 0 0
## 2005 0 0 0 0
## 2006 0 0 0 0
## 2007 0 0 0 0
## 2008 0 0 0 0
## 2009 0 0 0 0
## 2010 0 0 0 0
## 2011 0 0 0 0
## 2012 0 0 0 0
## 2013 0 0 0 0
## 2014 0 0
#Incluimos la binaria en el modelo (Caso 2)
REPÚBLICA_DOMINICANA=data.frame(Ct, Yt, bin03q1)
eq_ardl_c2=ardl(Ct~Yt|bin03q1, data=REPÚBLICA_DOMINICANA, order=c(p,q))
summary(eq_ardl_c2)
##
## Time series regression with "ts" data:
## Start = 3, End = 90
##
## Call:
## dynlm::dynlm(formula = full_formula, data = data, start = start,
## end = end)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.060210 -0.009879 -0.001085 0.003669 0.101164
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.16994 0.08890 -1.912 0.0594 .
## L(Ct, 1) 0.85773 0.04650 18.448 < 2e-16 ***
## Yt 1.11187 0.16611 6.694 2.50e-09 ***
## L(Yt, 1) -1.15114 0.25066 -4.592 1.56e-05 ***
## L(Yt, 2) 0.19429 0.16474 1.179 0.2417
## bin03q1 -0.12221 0.01754 -6.967 7.42e-10 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01732 on 82 degrees of freedom
## Multiple R-squared: 0.9979, Adjusted R-squared: 0.9978
## F-statistic: 7928 on 5 and 82 DF, p-value: < 2.2e-16
plot(resid(eq_ardl_c2), type="l", col="blue")
eq_uecm_c2=uecm(eq_ardl_c2, case=2)
summary(eq_uecm_c2)
##
## Time series regression with "ts" data:
## Start = 3, End = 90
##
## Call:
## dynlm::dynlm(formula = full_formula, data = data, start = start,
## end = end)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.060210 -0.009879 -0.001085 0.003669 0.101164
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.16994 0.08890 -1.912 0.05942 .
## L(Ct, 1) -0.14227 0.04650 -3.060 0.00299 **
## L(Yt, 1) 0.15501 0.05118 3.029 0.00328 **
## d(Yt) 1.11187 0.16611 6.694 2.50e-09 ***
## d(L(Yt, 1)) -0.19429 0.16474 -1.179 0.24167
## bin03q1 -0.12221 0.01754 -6.967 7.42e-10 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01732 on 82 degrees of freedom
## Multiple R-squared: 0.5656, Adjusted R-squared: 0.5391
## F-statistic: 21.36 on 5 and 82 DF, p-value: 1.283e-13
bft=bounds_f_test(eq_ardl_c2, case = 2, alpha = 0.05)
bft$tab
eq_recm_c2=recm(eq_ardl_c2, case=2)
summary(eq_recm_c2)
##
## Time series regression with "zooreg" data:
## Start = 3, End = 90
##
## Call:
## dynlm::dynlm(formula = full_formula, data = data, start = start,
## end = end)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.060210 -0.009879 -0.001085 0.003669 0.101164
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## d(Yt) 1.11187 0.13491 8.242 1.99e-12 ***
## d(L(Yt, 1)) -0.19429 0.13483 -1.441 0.15331
## bin03q1 -0.12221 0.01716 -7.120 3.39e-10 ***
## ect -0.14227 0.04047 -3.516 0.00071 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01711 on 84 degrees of freedom
## (0 observations deleted due to missingness)
## Multiple R-squared: 0.658, Adjusted R-squared: 0.6417
## F-statistic: 40.41 on 4 and 84 DF, p-value: < 2.2e-16
eq_level_c2=multipliers(eq_uecm_c2, type="lr")
eq_level_c2
plot(resid(eq_recm_c2), type="l", col="blue")
hist(resid(eq_recm_c2))
jarque.bera.test(resid(eq_recm_c2))
##
## Jarque Bera Test
##
## data: resid(eq_recm_c2)
## X-squared = 922.7, df = 2, p-value < 2.2e-16
#Repetimos el proceso para buscar nuevas binarias…
#Buscamos el dato aberrante negativo en los residuales
min(resid(eq_recm_c2))
## [1] -0.06020998
#Lo identificamos por número de observación
match(min(resid(eq_recm_c2)), resid(eq_recm_c2))+p
## [1] 48
match(min(resid(eq_recm_c2)), resid(eq_recm_c2))+q
## [1] 49
resid(eq_recm_c2)
## 3 4 5 6 7
## -2.773573e-03 -6.359432e-03 -1.134560e-02 -1.563860e-03 4.584989e-04
## 8 9 10 11 12
## 4.371031e-03 2.630266e-02 -7.806729e-03 8.307294e-04 9.588838e-03
## 13 14 15 16 17
## 2.925370e-02 6.746868e-03 1.175211e-02 -5.758707e-03 2.361132e-02
## 18 19 20 21 22
## -1.342987e-02 -1.235685e-02 -1.364440e-02 -6.549334e-03 -3.197107e-03
## 23 24 25 26 27
## -1.025889e-02 1.383091e-03 -1.163580e-02 -1.523358e-02 3.581288e-03
## 28 29 30 31 32
## 2.585356e-03 1.711182e-03 3.458858e-03 -1.041626e-02 -8.833014e-03
## 33 34 35 36 37
## -1.051792e-02 -1.536219e-03 -1.321299e-02 -1.212663e-02 -1.317675e-02
## 38 39 40 41 42
## 1.713481e-02 -2.166254e-03 -3.804479e-03 2.838476e-03 1.053593e-03
## 43 44 45 46 47
## -1.482783e-03 -2.434528e-03 6.437450e-18 -1.619445e-02 -1.645701e-02
## 48 49 50 51 52
## 4.046902e-02 -6.020998e-02 1.692612e-03 -1.532930e-03 4.902870e-03
## 53 54 55 56 57
## 1.011644e-01 -1.081872e-02 -1.045984e-02 -1.981790e-02 -1.451163e-02
## 58 59 60 61 62
## -6.879526e-04 4.426791e-03 1.357944e-02 3.346887e-03 1.172049e-02
## 63 64 65 66 67
## 1.407469e-03 -3.751826e-03 1.133420e-02 3.261917e-04 4.996207e-03
## 68 69 70 71 72
## 6.351058e-03 3.682557e-02 -3.379470e-03 1.933622e-03 1.664731e-03
## 73 74 75 76 77
## 1.123487e-02 2.020946e-03 7.258148e-03 3.933422e-03 2.801795e-03
## 78 79 80 81 82
## 5.417935e-03 7.206713e-04 9.540122e-04 2.891724e-03 -3.735740e-03
## 83 84 85 86 87
## -4.193328e-03 -5.462810e-03 -7.291656e-03 -1.263158e-02 -9.752701e-03
## 88 89 90
## -1.084488e-02 -1.096723e-02 -5.714281e-03
# Se repiten 90 ceros
bin04q1=rep(0,90)
bin04q1=ts(bin04q1, start=1992, frequency=4)
bin04q1[49]=1
bin04q1
## Qtr1 Qtr2 Qtr3 Qtr4
## 1992 0 0 0 0
## 1993 0 0 0 0
## 1994 0 0 0 0
## 1995 0 0 0 0
## 1996 0 0 0 0
## 1997 0 0 0 0
## 1998 0 0 0 0
## 1999 0 0 0 0
## 2000 0 0 0 0
## 2001 0 0 0 0
## 2002 0 0 0 0
## 2003 0 0 0 0
## 2004 1 0 0 0
## 2005 0 0 0 0
## 2006 0 0 0 0
## 2007 0 0 0 0
## 2008 0 0 0 0
## 2009 0 0 0 0
## 2010 0 0 0 0
## 2011 0 0 0 0
## 2012 0 0 0 0
## 2013 0 0 0 0
## 2014 0 0
#Incluimos la binaria en el modelo (Caso 2)
REPÚBLICA_DOMINICANA=data.frame(Ct, Yt, bin03q1, bin04q1)
eq_ardl_c2=ardl(Ct~Yt|bin03q1+bin04q1, data=REPÚBLICA_DOMINICANA, order=c(p,q))
summary(eq_ardl_c2)
##
## Time series regression with "ts" data:
## Start = 3, End = 90
##
## Call:
## dynlm::dynlm(formula = full_formula, data = data, start = start,
## end = end)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.021031 -0.009221 -0.000900 0.003168 0.099845
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.18351 0.08224 -2.231 0.028413 *
## L(Ct, 1) 0.84024 0.04321 19.446 < 2e-16 ***
## Yt 1.03700 0.15474 6.702 2.52e-09 ***
## L(Yt, 1) -1.09664 0.23210 -4.725 9.55e-06 ***
## L(Yt, 2) 0.23325 0.15259 1.529 0.130268
## bin03q1 -0.12429 0.01622 -7.663 3.45e-11 ***
## bin04q1 -0.06380 0.01648 -3.872 0.000217 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01601 on 81 degrees of freedom
## Multiple R-squared: 0.9983, Adjusted R-squared: 0.9981
## F-statistic: 7736 on 6 and 81 DF, p-value: < 2.2e-16
plot(resid(eq_ardl_c2), type="l", col="blue")
eq_uecm_c2=uecm(eq_ardl_c2, case=2)
summary(eq_uecm_c2)
##
## Time series regression with "ts" data:
## Start = 3, End = 90
##
## Call:
## dynlm::dynlm(formula = full_formula, data = data, start = start,
## end = end)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.021031 -0.009221 -0.000900 0.003168 0.099845
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.18351 0.08224 -2.231 0.028413 *
## L(Ct, 1) -0.15976 0.04321 -3.697 0.000395 ***
## L(Yt, 1) 0.17361 0.04755 3.651 0.000461 ***
## d(Yt) 1.03700 0.15474 6.702 2.52e-09 ***
## d(L(Yt, 1)) -0.23325 0.15259 -1.529 0.130268
## bin03q1 -0.12429 0.01622 -7.663 3.45e-11 ***
## bin04q1 -0.06380 0.01648 -3.872 0.000217 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01601 on 81 degrees of freedom
## Multiple R-squared: 0.6335, Adjusted R-squared: 0.6063
## F-statistic: 23.33 on 6 and 81 DF, p-value: 8.073e-16
bft=bounds_f_test(eq_ardl_c2, case = 2, alpha = 0.05)
bft$tab
eq_recm_c2=recm(eq_ardl_c2, case=2)
summary(eq_recm_c2)
##
## Time series regression with "zooreg" data:
## Start = 3, End = 90
##
## Call:
## dynlm::dynlm(formula = full_formula, data = data, start = start,
## end = end)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.021031 -0.009221 -0.000900 0.003168 0.099845
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## d(Yt) 1.03700 0.12619 8.218 2.40e-12 ***
## d(L(Yt, 1)) -0.23325 0.12577 -1.855 0.067206 .
## bin03q1 -0.12429 0.01588 -7.825 1.45e-11 ***
## bin04q1 -0.06380 0.01617 -3.946 0.000165 ***
## ect -0.15976 0.03547 -4.504 2.16e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01581 on 83 degrees of freedom
## (0 observations deleted due to missingness)
## Multiple R-squared: 0.7114, Adjusted R-squared: 0.6941
## F-statistic: 40.93 on 5 and 83 DF, p-value: < 2.2e-16
eq_level_c2=multipliers(eq_uecm_c2, type="lr")
eq_level_c2
plot(resid(eq_recm_c2), type="l", col="blue")
hist(resid(eq_recm_c2))
jarque.bera.test(resid(eq_recm_c2))
##
## Jarque Bera Test
##
## data: resid(eq_recm_c2)
## X-squared = 1420.2, df = 2, p-value < 2.2e-16
#Buscamos el dato aberrante negativo en los residuales
min(resid(eq_recm_c2))
## [1] -0.02103123
#Lo identificamos por número de observación
match(min(resid(eq_recm_c2)), resid(eq_recm_c2))+p
## [1] 46
match(min(resid(eq_recm_c2)), resid(eq_recm_c2))+q
## [1] 47
resid(eq_recm_c2)
## 3 4 5 6 7
## -2.566136e-03 -6.247538e-03 -1.148710e-02 -1.799404e-03 1.572108e-04
## 8 9 10 11 12
## 3.979122e-03 2.322832e-02 -9.193052e-03 5.182336e-04 9.183006e-03
## 13 14 15 16 17
## 2.852497e-02 6.700929e-03 1.229697e-02 -4.904004e-03 2.639945e-02
## 18 19 20 21 22
## -1.319095e-02 -1.308449e-02 -1.396771e-02 -6.552871e-03 -3.552514e-03
## 23 24 25 26 27
## -1.108568e-02 6.255364e-04 -1.224563e-02 -1.641456e-02 2.279360e-03
## 28 29 30 31 32
## 1.601981e-03 2.420673e-04 2.639105e-03 -1.068009e-02 -9.349623e-03
## 33 34 35 36 37
## -1.085021e-02 -2.602969e-03 -1.474880e-02 -1.382637e-02 -1.905511e-02
## 38 39 40 41 42
## 1.344658e-02 -2.546515e-03 -4.100626e-03 2.218112e-03 5.486566e-04
## 43 44 45 46 47
## -2.555401e-03 -4.043758e-03 5.068645e-18 -2.087630e-02 -2.103123e-02
## 48 49 50 51 52
## 3.617521e-02 3.659182e-19 -2.382905e-03 -4.453312e-03 2.981251e-03
## 53 54 55 56 57
## 9.984513e-02 -9.304065e-03 -8.898777e-03 -1.871847e-02 -1.319633e-02
## 58 59 60 61 62
## 1.050841e-04 4.531592e-03 1.330690e-02 3.728204e-03 1.126362e-02
## 63 64 65 66 67
## 1.667208e-03 -3.522248e-03 1.068116e-02 2.655399e-04 4.381967e-03
## 68 69 70 71 72
## 5.848259e-03 3.371185e-02 -4.201581e-03 2.814970e-03 2.518348e-03
## 73 74 75 76 77
## 1.229716e-02 2.805935e-03 7.541986e-03 4.121470e-03 2.472677e-03
## 78 79 80 81 82
## 5.063102e-03 5.377030e-04 5.902729e-04 2.895430e-03 -4.334002e-03
## 83 84 85 86 87
## -5.288222e-03 -6.484094e-03 -9.122103e-03 -1.368766e-02 -1.045723e-02
## 88 89 90
## -1.170154e-02 -1.165177e-02 -6.778669e-03
# Se repiten 90 ceros
bin03q3=rep(0,90)
bin03q3=ts(bin03q3, start=1992, frequency=4)
bin03q3[47]=1
bin03q3
## Qtr1 Qtr2 Qtr3 Qtr4
## 1992 0 0 0 0
## 1993 0 0 0 0
## 1994 0 0 0 0
## 1995 0 0 0 0
## 1996 0 0 0 0
## 1997 0 0 0 0
## 1998 0 0 0 0
## 1999 0 0 0 0
## 2000 0 0 0 0
## 2001 0 0 0 0
## 2002 0 0 0 0
## 2003 0 0 1 0
## 2004 0 0 0 0
## 2005 0 0 0 0
## 2006 0 0 0 0
## 2007 0 0 0 0
## 2008 0 0 0 0
## 2009 0 0 0 0
## 2010 0 0 0 0
## 2011 0 0 0 0
## 2012 0 0 0 0
## 2013 0 0 0 0
## 2014 0 0
#Incluimos la binaria en el modelo (Caso 2)
REPÚBLICA_DOMINICANA=data.frame(Ct, Yt, bin03q1, bin04q1, bin03q3)
eq_ardl_c2=ardl(Ct~Yt|bin03q1+bin04q1+bin03q3, data=REPÚBLICA_DOMINICANA, order=c(p,q))
summary(eq_ardl_c2)
##
## Time series regression with "ts" data:
## Start = 3, End = 90
##
## Call:
## dynlm::dynlm(formula = full_formula, data = data, start = start,
## end = end)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.023968 -0.008660 -0.000272 0.003619 0.098572
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.20378 0.08298 -2.456 0.016226 *
## L(Ct, 1) 0.82180 0.04488 18.312 < 2e-16 ***
## Yt 1.02510 0.15402 6.656 3.23e-09 ***
## L(Yt, 1) -1.08158 0.23092 -4.684 1.14e-05 ***
## L(Yt, 2) 0.25005 0.15212 1.644 0.104155
## bin03q1 -0.12505 0.01613 -7.753 2.46e-11 ***
## bin04q1 -0.06563 0.01643 -3.995 0.000143 ***
## bin03q3 -0.02408 0.01702 -1.415 0.161078
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01591 on 80 degrees of freedom
## Multiple R-squared: 0.9983, Adjusted R-squared: 0.9982
## F-statistic: 6713 on 7 and 80 DF, p-value: < 2.2e-16
plot(resid(eq_ardl_c2), type="l", col="blue")
eq_uecm_c2=uecm(eq_ardl_c2, case=2)
summary(eq_uecm_c2)
##
## Time series regression with "ts" data:
## Start = 3, End = 90
##
## Call:
## dynlm::dynlm(formula = full_formula, data = data, start = start,
## end = end)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.023968 -0.008660 -0.000272 0.003619 0.098572
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.20378 0.08298 -2.456 0.016226 *
## L(Ct, 1) -0.17820 0.04488 -3.971 0.000156 ***
## L(Yt, 1) 0.19357 0.04932 3.925 0.000183 ***
## d(Yt) 1.02510 0.15402 6.656 3.23e-09 ***
## d(L(Yt, 1)) -0.25005 0.15212 -1.644 0.104155
## bin03q1 -0.12505 0.01613 -7.753 2.46e-11 ***
## bin04q1 -0.06563 0.01643 -3.995 0.000143 ***
## bin03q3 -0.02408 0.01702 -1.415 0.161078
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01591 on 80 degrees of freedom
## Multiple R-squared: 0.6424, Adjusted R-squared: 0.6111
## F-statistic: 20.53 on 7 and 80 DF, p-value: 1.582e-15
bft=bounds_f_test(eq_ardl_c2, case = 2, alpha = 0.05)
bft$tab
eq_recm_c2=recm(eq_ardl_c2, case=2)
summary(eq_recm_c2)
##
## Time series regression with "zooreg" data:
## Start = 3, End = 90
##
## Call:
## dynlm::dynlm(formula = full_formula, data = data, start = start,
## end = end)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.023968 -0.008660 -0.000272 0.003619 0.098572
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## d(Yt) 1.02510 0.12567 8.157 3.41e-12 ***
## d(L(Yt, 1)) -0.25005 0.12547 -1.993 0.049596 *
## bin03q1 -0.12505 0.01579 -7.918 1.02e-11 ***
## bin04q1 -0.06563 0.01612 -4.072 0.000107 ***
## bin03q3 -0.02408 0.01681 -1.432 0.155827
## ect -0.17820 0.03755 -4.746 8.67e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01571 on 82 degrees of freedom
## (0 observations deleted due to missingness)
## Multiple R-squared: 0.7185, Adjusted R-squared: 0.6979
## F-statistic: 34.88 on 6 and 82 DF, p-value: < 2.2e-16
eq_level_c2=multipliers(eq_uecm_c2, type="lr")
eq_level_c2
plot(resid(eq_recm_c2), type="l", col="blue")
hist(resid(eq_recm_c2))
jarque.bera.test(resid(eq_recm_c2))
##
## Jarque Bera Test
##
## data: resid(eq_recm_c2)
## X-squared = 1408.1, df = 2, p-value < 2.2e-16
#Buscamos el dato aberrante negativo en los residuales
max(resid(eq_recm_c2))
## [1] 0.09857201
#Lo identificamos por número de observación
match(max(resid(eq_recm_c2)), resid(eq_recm_c2))+p
## [1] 52
match(max(resid(eq_recm_c2)), resid(eq_recm_c2))+q
## [1] 53
resid(eq_recm_c2)
## 3 4 5 6 7
## -1.902965e-03 -5.729102e-03 -1.120997e-02 -1.787398e-03 1.294003e-04
## 8 9 10 11 12
## 3.896929e-03 2.276239e-02 -9.409982e-03 7.622910e-04 9.322673e-03
## 13 14 15 16 17
## 2.872499e-02 7.327751e-03 1.309054e-02 -3.953858e-03 2.743235e-02
## 18 19 20 21 22
## -1.199029e-02 -1.306092e-02 -1.385545e-02 -6.684110e-03 -3.739617e-03
## 23 24 25 26 27
## -1.150363e-02 6.398903e-05 -1.268247e-02 -1.711199e-02 1.318517e-03
## 28 29 30 31 32
## 8.768580e-04 -4.615619e-04 2.020293e-03 -1.097078e-02 -9.841499e-03
## 33 34 35 36 37
## -1.142907e-02 -3.365286e-03 -1.567174e-02 -1.491751e-02 -2.089695e-02
## 38 39 40 41 42
## 1.125661e-02 -3.012636e-03 -4.501901e-03 1.712375e-03 1.028437e-04
## 43 44 45 46 47
## -3.023999e-03 -4.706707e-03 2.947675e-18 -2.396842e-02 2.727446e-19
## 48 49 50 51 52
## 3.327340e-02 -8.199279e-19 -5.117797e-03 -6.593820e-03 1.276819e-03
## 53 54 55 56 57
## 9.857201e-02 -8.409378e-03 -8.150871e-03 -1.833270e-02 -1.316704e-02
## 58 59 60 61 62
## -8.304365e-05 4.131930e-03 1.289024e-02 3.608585e-03 1.114543e-02
## 63 64 65 66 67
## 1.646269e-03 -3.358759e-03 1.049829e-02 2.845512e-04 4.391261e-03
## 68 69 70 71 72
## 5.787171e-03 3.339970e-02 -4.055778e-03 3.649234e-03 3.264003e-03
## 73 74 75 76 77
## 1.299930e-02 3.580878e-03 8.073782e-03 4.643113e-03 2.878550e-03
## 78 79 80 81 82
## 5.359471e-03 9.251130e-04 8.888683e-04 3.186611e-03 -4.074660e-03
## 83 84 85 86 87
## -5.360090e-03 -6.615723e-03 -9.461231e-03 -1.413167e-02 -1.080794e-02
## 88 89 90
## -1.223626e-02 -1.227351e-02 -7.535309e-03
# Se repiten 90 ceros
bin05q1=rep(0,90)
bin05q1=ts(bin05q1, start=1992, frequency=4)
bin05q1[53]=1
bin05q1
## Qtr1 Qtr2 Qtr3 Qtr4
## 1992 0 0 0 0
## 1993 0 0 0 0
## 1994 0 0 0 0
## 1995 0 0 0 0
## 1996 0 0 0 0
## 1997 0 0 0 0
## 1998 0 0 0 0
## 1999 0 0 0 0
## 2000 0 0 0 0
## 2001 0 0 0 0
## 2002 0 0 0 0
## 2003 0 0 0 0
## 2004 0 0 0 0
## 2005 1 0 0 0
## 2006 0 0 0 0
## 2007 0 0 0 0
## 2008 0 0 0 0
## 2009 0 0 0 0
## 2010 0 0 0 0
## 2011 0 0 0 0
## 2012 0 0 0 0
## 2013 0 0 0 0
## 2014 0 0
#Incluimos la binaria en el modelo (Caso 2)
REPÚBLICA_DOMINICANA=data.frame(Ct, Yt, bin03q1, bin04q1, bin03q3,bin05q1)
eq_ardl_c2=ardl(Ct~Yt|bin03q1+bin04q1+bin03q3+bin05q1, data=REPÚBLICA_DOMINICANA, order=c(p,q))
summary(eq_ardl_c2)
##
## Time series regression with "ts" data:
## Start = 3, End = 90
##
## Call:
## dynlm::dynlm(formula = full_formula, data = data, start = start,
## end = end)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.020913 -0.007616 0.000000 0.004496 0.039516
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.13346 0.05934 -2.249 0.02731 *
## L(Ct, 1) 0.87535 0.03237 27.042 < 2e-16 ***
## Yt 0.96233 0.10940 8.796 2.43e-13 ***
## L(Yt, 1) -1.13382 0.16379 -6.922 1.05e-09 ***
## L(Yt, 2) 0.30629 0.10802 2.836 0.00581 **
## bin03q1 -0.12429 0.01143 -10.870 < 2e-16 ***
## bin04q1 -0.06289 0.01165 -5.399 6.84e-07 ***
## bin03q3 -0.01781 0.01209 -1.474 0.14447
## bin05q1 0.10347 0.01155 8.956 1.19e-13 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01128 on 79 degrees of freedom
## Multiple R-squared: 0.9992, Adjusted R-squared: 0.9991
## F-statistic: 1.17e+04 on 8 and 79 DF, p-value: < 2.2e-16
plot(resid(eq_ardl_c2), type="l", col="blue")
eq_uecm_c2=uecm(eq_ardl_c2, case=2)
summary(eq_uecm_c2)
##
## Time series regression with "ts" data:
## Start = 3, End = 90
##
## Call:
## dynlm::dynlm(formula = full_formula, data = data, start = start,
## end = end)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.020913 -0.007616 0.000000 0.004496 0.039516
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.13346 0.05934 -2.249 0.027306 *
## L(Ct, 1) -0.12465 0.03237 -3.851 0.000238 ***
## L(Yt, 1) 0.13480 0.03557 3.790 0.000293 ***
## d(Yt) 0.96233 0.10940 8.796 2.43e-13 ***
## d(L(Yt, 1)) -0.30629 0.10802 -2.836 0.005807 **
## bin03q1 -0.12429 0.01143 -10.870 < 2e-16 ***
## bin04q1 -0.06289 0.01165 -5.399 6.84e-07 ***
## bin03q3 -0.01781 0.01209 -1.474 0.144472
## bin05q1 0.10347 0.01155 8.956 1.19e-13 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01128 on 79 degrees of freedom
## Multiple R-squared: 0.8226, Adjusted R-squared: 0.8046
## F-statistic: 45.78 on 8 and 79 DF, p-value: < 2.2e-16
bft=bounds_f_test(eq_ardl_c2, case = 2, alpha = 0.05)
bft$tab
eq_recm_c2=recm(eq_ardl_c2, case=2)
summary(eq_recm_c2)
##
## Time series regression with "zooreg" data:
## Start = 3, End = 90
##
## Call:
## dynlm::dynlm(formula = full_formula, data = data, start = start,
## end = end)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.020913 -0.007616 0.000000 0.004496 0.039516
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## d(Yt) 0.96233 0.09096 10.579 < 2e-16 ***
## d(L(Yt, 1)) -0.30629 0.09070 -3.377 0.00113 **
## bin03q1 -0.12429 0.01121 -11.082 < 2e-16 ***
## bin04q1 -0.06289 0.01147 -5.485 4.59e-07 ***
## bin03q3 -0.01781 0.01193 -1.494 0.13919
## bin05q1 0.10347 0.01135 9.118 4.63e-14 ***
## ect -0.12465 0.02428 -5.134 1.91e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01114 on 81 degrees of freedom
## (0 observations deleted due to missingness)
## Multiple R-squared: 0.8603, Adjusted R-squared: 0.8482
## F-statistic: 71.26 on 7 and 81 DF, p-value: < 2.2e-16
eq_level_c2=multipliers(eq_uecm_c2, type="lr")
eq_level_c2
plot(resid(eq_recm_c2), type="l", col="blue")
hist(resid(eq_recm_c2))
jarque.bera.test(resid(eq_recm_c2))
##
## Jarque Bera Test
##
## data: resid(eq_recm_c2)
## X-squared = 32.188, df = 2, p-value = 1.024e-07
#Buscamos el dato aberrante negativo en los residuales
max(resid(eq_recm_c2))
## [1] 0.03951554
#Lo identificamos por número de observación
match(max(resid(eq_recm_c2)), resid(eq_recm_c2))+p
## [1] 47
match(max(resid(eq_recm_c2)), resid(eq_recm_c2))+q
## [1] 48
resid(eq_recm_c2)
## 3 4 5 6 7
## -3.444505e-03 -6.608337e-03 -1.144484e-02 -1.031377e-03 1.138779e-03
## 8 9 10 11 12
## 4.907447e-03 2.132931e-02 -1.189575e-02 4.399283e-04 9.094374e-03
## 13 14 15 16 17
## 2.782424e-02 5.162170e-03 1.157243e-02 -5.374310e-03 2.867789e-02
## 18 19 20 21 22
## -1.336003e-02 -1.450138e-02 -1.354540e-02 -5.022562e-03 -1.694492e-03
## 23 24 25 26 27
## -9.751220e-03 2.479214e-03 -1.033349e-02 -1.456148e-02 4.495838e-03
## 28 29 30 31 32
## 3.778518e-03 1.610713e-03 4.155993e-03 -8.583153e-03 -6.997242e-03
## 33 34 35 36 37
## -7.980363e-03 7.231912e-05 -1.298493e-02 -1.183194e-02 -2.091344e-02
## 38 39 40 41 42
## 1.228159e-02 -2.639263e-04 -1.580419e-03 4.498072e-03 2.589734e-03
## 43 44 45 46 47
## -1.165262e-03 -3.476691e-03 3.045930e-18 -1.737815e-02 1.104531e-18
## 48 49 50 51 52
## 3.951554e-02 2.439455e-19 4.474240e-04 -1.300873e-03 6.650461e-03
## 53 54 55 56 57
## 1.301043e-18 -8.582913e-03 -6.772022e-03 -1.618488e-02 -9.229002e-03
## 58 59 60 61 62
## 4.646600e-03 8.146107e-03 1.607443e-02 6.219185e-03 1.297742e-02
## 63 64 65 66 67
## 3.039914e-03 -1.723348e-03 1.166784e-02 1.097042e-03 4.979400e-03
## 68 69 70 71 72
## 6.040965e-03 3.124060e-02 -7.495189e-03 2.880673e-03 2.882863e-03
## 73 74 75 76 77
## 1.317284e-02 3.270744e-03 7.579489e-03 3.920900e-03 1.819063e-03
## 78 79 80 81 82
## 4.306602e-03 -1.871706e-05 6.092283e-05 2.844875e-03 -4.747545e-03
## 83 84 85 86 87
## -6.144906e-03 -6.939622e-03 -1.000838e-02 -1.375146e-02 -9.072781e-03
## 88 89 90
## -1.008734e-02 -9.401074e-03 -4.405726e-03
# Se repiten 90 ceros
bin06q2=rep(0,90)
bin06q2=ts(bin06q2, start=1992, frequency=4)
bin06q2[58]=1
bin06q2
## Qtr1 Qtr2 Qtr3 Qtr4
## 1992 0 0 0 0
## 1993 0 0 0 0
## 1994 0 0 0 0
## 1995 0 0 0 0
## 1996 0 0 0 0
## 1997 0 0 0 0
## 1998 0 0 0 0
## 1999 0 0 0 0
## 2000 0 0 0 0
## 2001 0 0 0 0
## 2002 0 0 0 0
## 2003 0 0 0 0
## 2004 0 0 0 0
## 2005 0 0 0 0
## 2006 0 1 0 0
## 2007 0 0 0 0
## 2008 0 0 0 0
## 2009 0 0 0 0
## 2010 0 0 0 0
## 2011 0 0 0 0
## 2012 0 0 0 0
## 2013 0 0 0 0
## 2014 0 0
#Incluimos la binaria en el modelo (Caso 2)
REPÚBLICA_DOMINICANA=data.frame(Ct, Yt, bin03q1, bin04q1, bin03q3,bin05q1,bin06q2)
eq_ardl_c2=ardl(Ct~Yt|bin03q1+bin04q1+bin03q3+bin05q1+bin06q2, data=REPÚBLICA_DOMINICANA, order=c(p,q))
summary(eq_ardl_c2)
##
## Time series regression with "ts" data:
## Start = 3, End = 90
##
## Call:
## dynlm::dynlm(formula = full_formula, data = data, start = start,
## end = end)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.021155 -0.007801 0.000000 0.004346 0.039601
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.129421 0.060390 -2.143 0.03522 *
## L(Ct, 1) 0.877378 0.032879 26.685 < 2e-16 ***
## Yt 0.955922 0.110981 8.613 6.08e-13 ***
## L(Yt, 1) -1.140181 0.165312 -6.897 1.24e-09 ***
## L(Yt, 2) 0.316728 0.111269 2.847 0.00565 **
## bin03q1 -0.124349 0.011494 -10.818 < 2e-16 ***
## bin04q1 -0.062942 0.011709 -5.376 7.71e-07 ***
## bin03q3 -0.017753 0.012149 -1.461 0.14797
## bin05q1 0.103713 0.011627 8.920 1.54e-13 ***
## bin06q2 0.005091 0.011865 0.429 0.66904
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01133 on 78 degrees of freedom
## Multiple R-squared: 0.9992, Adjusted R-squared: 0.9991
## F-statistic: 1.029e+04 on 9 and 78 DF, p-value: < 2.2e-16
plot(resid(eq_ardl_c2), type="l", col="blue")
eq_uecm_c2=uecm(eq_ardl_c2, case=2)
summary(eq_uecm_c2)
##
## Time series regression with "ts" data:
## Start = 3, End = 90
##
## Call:
## dynlm::dynlm(formula = full_formula, data = data, start = start,
## end = end)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.021155 -0.007801 0.000000 0.004346 0.039601
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.129421 0.060390 -2.143 0.035223 *
## L(Ct, 1) -0.122622 0.032879 -3.729 0.000362 ***
## L(Yt, 1) 0.132468 0.036165 3.663 0.000452 ***
## d(Yt) 0.955922 0.110981 8.613 6.08e-13 ***
## d(L(Yt, 1)) -0.316728 0.111269 -2.847 0.005646 **
## bin03q1 -0.124349 0.011494 -10.818 < 2e-16 ***
## bin04q1 -0.062942 0.011709 -5.376 7.71e-07 ***
## bin03q3 -0.017753 0.012149 -1.461 0.147965
## bin05q1 0.103713 0.011627 8.920 1.54e-13 ***
## bin06q2 0.005091 0.011865 0.429 0.669036
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01133 on 78 degrees of freedom
## Multiple R-squared: 0.823, Adjusted R-squared: 0.8026
## F-statistic: 40.29 on 9 and 78 DF, p-value: < 2.2e-16
bft=bounds_f_test(eq_ardl_c2, case = 2, alpha = 0.05)
bft$tab
eq_recm_c2=recm(eq_ardl_c2, case=2)
summary(eq_recm_c2)
##
## Time series regression with "zooreg" data:
## Start = 3, End = 90
##
## Call:
## dynlm::dynlm(formula = full_formula, data = data, start = start,
## end = end)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.021155 -0.007801 0.000000 0.004346 0.039601
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## d(Yt) 0.955922 0.091738 10.420 < 2e-16 ***
## d(L(Yt, 1)) -0.316728 0.092281 -3.432 0.00095 ***
## bin03q1 -0.124349 0.011275 -11.029 < 2e-16 ***
## bin04q1 -0.062942 0.011527 -5.460 5.20e-07 ***
## bin03q3 -0.017753 0.011984 -1.481 0.14244
## bin05q1 0.103713 0.011405 9.093 5.76e-14 ***
## bin06q2 0.005091 0.011473 0.444 0.65843
## ect -0.122622 0.024049 -5.099 2.24e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01119 on 80 degrees of freedom
## (0 observations deleted due to missingness)
## Multiple R-squared: 0.8606, Adjusted R-squared: 0.8467
## F-statistic: 61.76 on 8 and 80 DF, p-value: < 2.2e-16
eq_level_c2=multipliers(eq_uecm_c2, type="lr")
eq_level_c2
plot(resid(eq_recm_c2), type="l", col="blue")
hist(resid(eq_recm_c2))
jarque.bera.test(resid(eq_recm_c2))
##
## Jarque Bera Test
##
## data: resid(eq_recm_c2)
## X-squared = 32.928, df = 2, p-value = 7.074e-08
#Buscamos el dato aberrante negativo en los residuales
max(resid(eq_recm_c2))
## [1] 0.03960122
#Lo identificamos por número de observación
match(max(resid(eq_recm_c2)), resid(eq_recm_c2))+p
## [1] 47
match(max(resid(eq_recm_c2)), resid(eq_recm_c2))+q
## [1] 48
resid(eq_recm_c2)
## 3 4 5 6 7
## -3.530904e-03 -6.648630e-03 -1.146325e-02 -1.003406e-03 1.193320e-03
## 8 9 10 11 12
## 4.950998e-03 2.113355e-02 -1.229083e-02 4.159844e-04 9.053729e-03
## 13 14 15 16 17
## 2.774320e-02 5.007135e-03 1.151620e-02 -5.385573e-03 2.889271e-02
## 18 19 20 21 22
## -1.321502e-02 -1.471471e-02 -1.352233e-02 -4.932176e-03 -1.540582e-03
## 23 24 25 26 27
## -9.680102e-03 2.582494e-03 -1.020522e-02 -1.445098e-02 4.605976e-03
## 28 29 30 31 32
## 3.911011e-03 1.681427e-03 4.210549e-03 -8.420970e-03 -6.823851e-03
## 33 34 35 36 37
## -7.771721e-03 2.771190e-04 -1.289978e-02 -1.173952e-02 -2.115505e-02
## 38 39 40 41 42
## 1.186103e-02 -1.032149e-04 -1.378520e-03 4.672389e-03 2.736344e-03
## 43 44 45 46 47
## -1.062092e-03 -3.483296e-03 4.753549e-18 -1.728117e-02 9.317362e-20
## 48 49 50 51 52
## 3.960122e-02 -1.626303e-19 4.832486e-04 -1.183823e-03 6.852514e-03
## 53 54 55 56 57
## 3.144186e-18 -8.476631e-03 -6.510988e-03 -1.591068e-02 -8.859631e-03
## 58 59 60 61 62
## -7.697835e-18 8.476898e-03 1.632017e-02 6.440311e-03 1.316744e-02
## 63 64 65 66 67
## 3.144370e-03 -1.514249e-03 1.176391e-02 1.167880e-03 5.065286e-03
## 68 69 70 71 72
## 6.046258e-03 3.105312e-02 -7.888945e-03 2.956001e-03 2.981758e-03
## 73 74 75 76 77
## 1.331411e-02 3.398365e-03 7.637159e-03 3.952955e-03 1.808382e-03
## 78 79 80 81 82
## 4.259214e-03 -3.218047e-05 4.686693e-05 2.862783e-03 -4.733227e-03
## 83 84 85 86 87
## -6.224141e-03 -6.984263e-03 -1.008897e-02 -1.381196e-02 -8.944555e-03
## 88 89 90
## -9.956589e-03 -9.218163e-03 -4.203514e-03
# Se repiten 90 ceros
bin03q4=rep(0,90)
bin03q4=ts(bin05q1, start=1992, frequency=4)
bin03q4[48]=1
bin03q4
## Qtr1 Qtr2 Qtr3 Qtr4
## 1992 0 0 0 0
## 1993 0 0 0 0
## 1994 0 0 0 0
## 1995 0 0 0 0
## 1996 0 0 0 0
## 1997 0 0 0 0
## 1998 0 0 0 0
## 1999 0 0 0 0
## 2000 0 0 0 0
## 2001 0 0 0 0
## 2002 0 0 0 0
## 2003 0 0 0 1
## 2004 0 0 0 0
## 2005 1 0 0 0
## 2006 0 0 0 0
## 2007 0 0 0 0
## 2008 0 0 0 0
## 2009 0 0 0 0
## 2010 0 0 0 0
## 2011 0 0 0 0
## 2012 0 0 0 0
## 2013 0 0 0 0
## 2014 0 0
#Incluimos la binaria en el modelo (Caso 2)
REPÚBLICA_DOMINICANA=data.frame(Ct, Yt, bin03q1, bin04q1, bin03q3,bin05q1,bin03q4)
eq_ardl_c2=ardl(Ct~Yt|bin03q1+bin04q1+bin03q3+bin05q1+bin03q4, data=REPÚBLICA_DOMINICANA, order=c(p,q))
summary(eq_ardl_c2)
##
## Time series regression with "ts" data:
## Start = 3, End = 90
##
## Call:
## dynlm::dynlm(formula = full_formula, data = data, start = start,
## end = end)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.017199 -0.007860 0.000000 0.005214 0.031734
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.08791 0.05520 -1.593 0.11527
## L(Ct, 1) 0.91606 0.03110 29.455 < 2e-16 ***
## Yt 0.98251 0.09983 9.842 2.54e-15 ***
## L(Yt, 1) -1.17211 0.14957 -7.836 1.95e-11 ***
## L(Yt, 2) 0.28026 0.09865 2.841 0.00574 **
## bin03q1 -0.12274 0.01043 -11.771 < 2e-16 ***
## bin04q1 -0.05907 0.01066 -5.543 3.89e-07 ***
## bin03q3 -0.01133 0.01113 -1.018 0.31167
## bin05q1 0.06065 0.01477 4.107 9.82e-05 ***
## bin03q4 0.04572 0.01105 4.136 8.85e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01028 on 78 degrees of freedom
## Multiple R-squared: 0.9993, Adjusted R-squared: 0.9992
## F-statistic: 1.252e+04 on 9 and 78 DF, p-value: < 2.2e-16
plot(resid(eq_ardl_c2), type="l", col="blue")
eq_uecm_c2=uecm(eq_ardl_c2, case=2)
summary(eq_uecm_c2)
##
## Time series regression with "ts" data:
## Start = 3, End = 90
##
## Call:
## dynlm::dynlm(formula = full_formula, data = data, start = start,
## end = end)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.017199 -0.007860 0.000000 0.005214 0.031734
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.08791 0.05520 -1.593 0.11527
## L(Ct, 1) -0.08394 0.03110 -2.699 0.00852 **
## L(Yt, 1) 0.09066 0.03413 2.656 0.00958 **
## d(Yt) 0.98251 0.09983 9.842 2.54e-15 ***
## d(L(Yt, 1)) -0.28026 0.09865 -2.841 0.00574 **
## bin03q1 -0.12274 0.01043 -11.771 < 2e-16 ***
## bin04q1 -0.05907 0.01066 -5.543 3.89e-07 ***
## bin03q3 -0.01133 0.01113 -1.018 0.31167
## bin05q1 0.06065 0.01477 4.107 9.82e-05 ***
## bin03q4 0.04572 0.01105 4.136 8.85e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01028 on 78 degrees of freedom
## Multiple R-squared: 0.8545, Adjusted R-squared: 0.8377
## F-statistic: 50.89 on 9 and 78 DF, p-value: < 2.2e-16
bft=bounds_f_test(eq_ardl_c2, case = 2, alpha = 0.05)
bft$tab
eq_recm_c2=recm(eq_ardl_c2, case=2)
summary(eq_recm_c2)
##
## Time series regression with "zooreg" data:
## Start = 3, End = 90
##
## Call:
## dynlm::dynlm(formula = full_formula, data = data, start = start,
## end = end)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.017199 -0.007860 0.000000 0.005214 0.031734
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## d(Yt) 0.98251 0.08420 11.669 < 2e-16 ***
## d(L(Yt, 1)) -0.28026 0.08405 -3.334 0.001297 **
## bin03q1 -0.12274 0.01024 -11.989 < 2e-16 ***
## bin04q1 -0.05907 0.01050 -5.624 2.65e-07 ***
## bin03q3 -0.01133 0.01096 -1.034 0.304393
## bin05q1 0.06065 0.01458 4.160 7.94e-05 ***
## bin03q4 0.04572 0.01088 4.201 6.86e-05 ***
## ect -0.08394 0.02252 -3.728 0.000359 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01015 on 80 degrees of freedom
## (0 observations deleted due to missingness)
## Multiple R-squared: 0.8854, Adjusted R-squared: 0.874
## F-statistic: 77.29 on 8 and 80 DF, p-value: < 2.2e-16
eq_level_c2=multipliers(eq_uecm_c2, type="lr")
eq_level_c2
plot(resid(eq_recm_c2), type="l", col="blue")
hist(resid(eq_recm_c2))
jarque.bera.test(resid(eq_recm_c2))
##
## Jarque Bera Test
##
## data: resid(eq_recm_c2)
## X-squared = 13.447, df = 2, p-value = 0.001202
# Verificamos los demás supuestos
bgtest(eq_recm_c2, order=5)
##
## Breusch-Godfrey test for serial correlation of order up to 5
##
## data: eq_recm_c2
## LM test = 9.9335, df = 5, p-value = 0.07714
breusch_pagan(eq_recm_c2)
## Column of 1's added to `auxdesign`
white(eq_recm_c2)
## Intercept included in auxiliary design matrix
harvey(eq_recm_c2)
## Column of 1's added to `auxdesign`
glejser(eq_recm_c2)
## Column of 1's added to `auxdesign`
``` La prueba de Breusch-Godfrey para autocorrelación de orden hasta 5 no arrojó evidencia significativa de correlación serial en los residuos del modelo (LM = 9.9335, p = 0.077). Por tanto, puede asumirse que los errores son independientes, lo que apoya la validez de las inferencias del modelo. Las pruebas complementarias de heterocedasticidad confirman la presencia de varianza no constante en los errores del modelo lo que sugiere la necesidad de ajustar el modelo mediante métodos robustos o revisar su especificación.