Los datos utilizados en este análisis provienen del DANE consolidados del PIB Nacional, los cuales cubren diferentes sectores económicos en Colombia. Estos datos han sido organizados y convertidos para estar en formato trimestral, abarcando un período desde el primer trimestre de 2005 hasta el segundo trimestre de 2024.
Las variables seleccionadas para el análisis incluyen:
El período cubierto por estos datos es desde el primer trimestre de 2005 hasta el segundo trimestre de 2024. Este rango temporal permite un análisis detallado de las tendencias económicas en diferentes fases del ciclo económico, así como la observación de posibles relaciones de largo plazo entre los diferentes sectores económicos.
library(readxl)
data <- read_xlsx("~/Downloads/PIB varibales trimestrales 2005 hasta 2024.xlsx")
library(tseries)
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
adf_test_agricultura <- adf.test(data$"Agricultura, ganadería, caza, silvicultura y pesca", alternative = "stationary")
adf_test_minas <- adf.test(data$"Explotación de minas y canteras", alternative = "stationary")
adf_test_industria <- adf.test(data$"Industrias manufactureras", alternative = "stationary")
adf_test_construccion <- adf.test(data$"Construcción", alternative = "stationary")
adf_test_info_comunicaciones <- adf.test(data$"Información y comunicaciones", alternative = "stationary")
adf_test_financieras <- adf.test(data$"Actividades financieras y de seguros", alternative = "stationary")
adf_test_inmobiliarias <- adf.test(data$"Actividades inmobiliarias", alternative = "stationary")
adf_test_agricultura
##
## Augmented Dickey-Fuller Test
##
## data: data$"Agricultura, ganadería, caza, silvicultura y pesca"
## Dickey-Fuller = -2.0936, Lag order = 4, p-value = 0.5373
## alternative hypothesis: stationary
adf_test_minas
##
## Augmented Dickey-Fuller Test
##
## data: data$"Explotación de minas y canteras"
## Dickey-Fuller = -1.3251, Lag order = 4, p-value = 0.8514
## alternative hypothesis: stationary
adf_test_industria
##
## Augmented Dickey-Fuller Test
##
## data: data$"Industrias manufactureras"
## Dickey-Fuller = -3.8811, Lag order = 4, p-value = 0.01957
## alternative hypothesis: stationary
adf_test_construccion
##
## Augmented Dickey-Fuller Test
##
## data: data$Construcción
## Dickey-Fuller = -1.328, Lag order = 4, p-value = 0.8502
## alternative hypothesis: stationary
adf_test_info_comunicaciones
##
## Augmented Dickey-Fuller Test
##
## data: data$"Información y comunicaciones"
## Dickey-Fuller = -4.0351, Lag order = 4, p-value = 0.01254
## alternative hypothesis: stationary
adf_test_financieras
##
## Augmented Dickey-Fuller Test
##
## data: data$"Actividades financieras y de seguros"
## Dickey-Fuller = -3.0868, Lag order = 4, p-value = 0.1315
## alternative hypothesis: stationary
adf_test_inmobiliarias
##
## Augmented Dickey-Fuller Test
##
## data: data$"Actividades inmobiliarias"
## Dickey-Fuller = -2.3304, Lag order = 4, p-value = 0.4406
## alternative hypothesis: stationary
Series Estacionarias:
• Industrias manufactureras • Información y comunicaciones
Series No Estacionarias:
• Agricultura, ganadería, caza, silvicultura y pesca • Explotación de minas y canteras • Construcción • Actividades financieras y de seguros • Actividades inmobiliarias
Se concluye que al tener mas variables en las series no estacionaras se tomaran estos para realizar un modelo VEC ya que cumple con las condiciones del modelo. De igual manera se realizaran validaciones de otro aspectos.
Se realiza la descomposición de las series para empezar con la verificación de la estacionalidad
decompose_agricultura <- decompose(ts(data$`Agricultura, ganadería, caza, silvicultura y pesca`, frequency = 4), type = "multiplicative")
plot(decompose_agricultura)
decompose_minas <- decompose(ts(data$`Explotación de minas y canteras`, frequency = 4), type = "multiplicative")
plot(decompose_minas)
decompose_construccion <- decompose(ts(data$Construcción, frequency = 4), type = "multiplicative")
plot(decompose_construccion)
decompose_financieras <- decompose(ts(data$`Actividades financieras y de seguros`, frequency = 4), type = "multiplicative")
plot(decompose_financieras)
decompose_inmobiliarias <- decompose(ts(data$`Actividades inmobiliarias`, frequency = 4), type = "multiplicative")
plot(decompose_inmobiliarias)
Conclusión: Ya que todas las series muestras una estacionalidad se realiza la desestacionalidad de las series mejorando la precisión y la interpretación de las series subyacentes
agricultura_ts <- ts(data$`Agricultura, ganadería, caza, silvicultura y pesca`, start = c(1991, 1), frequency = 4)
minas_ts <- ts(data$`Explotación de minas y canteras`, start = c(1991, 1), frequency = 4)
construccion_ts <- ts(data$Construcción, start = c(1991, 1), frequency = 4)
financieras_ts <- ts(data$`Actividades financieras y de seguros`, start = c(1991, 1), frequency = 4)
inmobiliarias_ts <- ts(data$`Actividades inmobiliarias`, start = c(1991, 1), frequency = 4)
agricultura_stl <- stl(agricultura_ts, s.window = "periodic")
minas_stl <- stl(minas_ts, s.window = "periodic")
construccion_stl <- stl(construccion_ts, s.window = "periodic")
financieras_stl <- stl(financieras_ts, s.window = "periodic")
inmobiliarias_stl <- stl(inmobiliarias_ts, s.window = "periodic")
agricultura_deseasonalized <- agricultura_stl$time.series[, "remainder"]
minas_deseasonalized <- minas_stl$time.series[, "remainder"]
construccion_deseasonalized <- construccion_stl$time.series[, "remainder"]
financieras_deseasonalized <- financieras_stl$time.series[, "remainder"]
inmobiliarias_deseasonalized <- inmobiliarias_stl$time.series[, "remainder"]
par(mfrow = c(3, 2))
plot(agricultura_deseasonalized, main = "Serie de Agricultura Desestacionalizada", ylab = "Agricultura", xlab = "Tiempo")
plot(minas_deseasonalized, main = "Serie de Minas Desestacionalizada", ylab = "Minas", xlab = "Tiempo")
plot(construccion_deseasonalized, main = "Serie de Construcción Desestacionalizada", ylab = "Construcción", xlab = "Tiempo")
plot(financieras_deseasonalized, main = "Serie de Financieras Desestacionalizada", ylab = "Financieras", xlab = "Tiempo")
plot(inmobiliarias_deseasonalized, main = "Serie de Inmobiliarias Desestacionalizada", ylab = "Inmobiliarias", xlab = "Tiempo")
Las gráficas muestran las series desestacionalizadas para cada una de las variables. Podemos observar que la estacionalidad ha sido removida, dejando únicamente los componentes de tendencia y ruido. Esto indica que las series ya no presentan patrones estacionales, lo cual es necesario para aplicar el modelo VEC sin el sesgo de la estacionalidad.
series_desest <- data.frame(
agricultura = ts(agricultura_deseasonalized),
minas = ts(minas_deseasonalized),
construccion = ts(construccion_deseasonalized),
financieras = ts(financieras_deseasonalized),
inmobiliarias = ts(inmobiliarias_deseasonalized)
)
library(urca)
jo_test <- ca.jo(series_desest, type = "trace", ecdet = "const", K = 2)
summary(jo_test)
##
## ######################
## # Johansen-Procedure #
## ######################
##
## Test type: trace statistic , without linear trend and constant in cointegration
##
## Eigenvalues (lambda):
## [1] 8.004226e-01 6.967397e-01 6.032745e-01 5.631813e-01 4.732564e-01
## [6] 6.661338e-16
##
## Values of teststatistic and critical values of test:
##
## test 10pct 5pct 1pct
## r <= 4 | 48.72 7.52 9.24 12.97
## r <= 3 | 111.67 17.85 19.96 24.60
## r <= 2 | 181.93 32.00 34.91 41.07
## r <= 1 | 272.61 49.65 53.12 60.16
## r = 0 | 395.09 71.86 76.07 84.45
##
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
##
## agricultura.l2 minas.l2 construccion.l2 financieras.l2
## agricultura.l2 1.0000000 1.000000 1.0000000 1.000000000
## minas.l2 0.7937468 -8.921585 1.3138062 -0.482810574
## construccion.l2 -0.5858332 3.980184 0.2667296 -0.133182046
## financieras.l2 1.5954383 15.984486 -0.2936270 -0.782073642
## inmobiliarias.l2 3.6756893 -5.220032 -7.1903289 0.003203855
## constant -1.3005105 15.352435 -0.3191591 3.631184763
## inmobiliarias.l2 constant
## agricultura.l2 1.0000000 1.0000000
## minas.l2 -1.9180771 0.3993022
## construccion.l2 0.4447663 -0.3783999
## financieras.l2 -1.4890042 -0.5664112
## inmobiliarias.l2 57.1790346 -3.9111293
## constant 28.1160599 -4416.2085255
##
## Weights W:
## (This is the loading matrix)
##
## agricultura.l2 minas.l2 construccion.l2 financieras.l2
## agricultura.d -0.27389656 -0.026950480 -0.462238586 -1.02946741
## minas.d -0.25058857 0.064954707 -0.674092329 0.65693740
## construccion.d 1.20226948 -0.076731509 -1.499944261 0.72658748
## financieras.d -0.62103013 -0.052344258 -0.113637119 0.37127463
## inmobiliarias.d -0.05131395 0.005558092 -0.003875617 0.02920095
## inmobiliarias.l2 constant
## agricultura.d -0.03743262 2.333436e-18
## minas.d -0.03411856 -1.526256e-17
## construccion.d -0.28894878 -1.131204e-17
## financieras.d 0.02187057 2.450224e-18
## inmobiliarias.d -0.02213668 7.971156e-19
• Los coeficientes muestran la relación a largo plazo entre las variables. Por ejemplo, Minas y Financieras tienden a moverse en la misma dirección que Agricultura, mientras que Construcción tiene una relación inversa con Agricultura en el largo plazo.
• Inmobiliarias también muestra una fuerte relación positiva con Agricultura, lo que sugiere que estas dos variables se mueven conjuntamente en el largo plazo.
La influencia de los errores de cointegración sobre cada una de las series en la ecuación de corrección de errores:
Agricultura: Fuerte ajuste negativo a los errores de cointegración.
Minas: Ajuste negativo, pero menos pronunciado.
Construcción: Ajuste positivo, sugiriendo que responde más fuerte a los errores de cointegración.
Financieras: Ajuste negativo, pero moderado.
Inmobiliarias: Ajuste leve negativo.
vec_model <- ca.jo(series_desest, type = "trace", ecdet = "const", K = 2)
summary(vec_model)
##
## ######################
## # Johansen-Procedure #
## ######################
##
## Test type: trace statistic , without linear trend and constant in cointegration
##
## Eigenvalues (lambda):
## [1] 8.004226e-01 6.967397e-01 6.032745e-01 5.631813e-01 4.732564e-01
## [6] 6.661338e-16
##
## Values of teststatistic and critical values of test:
##
## test 10pct 5pct 1pct
## r <= 4 | 48.72 7.52 9.24 12.97
## r <= 3 | 111.67 17.85 19.96 24.60
## r <= 2 | 181.93 32.00 34.91 41.07
## r <= 1 | 272.61 49.65 53.12 60.16
## r = 0 | 395.09 71.86 76.07 84.45
##
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
##
## agricultura.l2 minas.l2 construccion.l2 financieras.l2
## agricultura.l2 1.0000000 1.000000 1.0000000 1.000000000
## minas.l2 0.7937468 -8.921585 1.3138062 -0.482810574
## construccion.l2 -0.5858332 3.980184 0.2667296 -0.133182046
## financieras.l2 1.5954383 15.984486 -0.2936270 -0.782073642
## inmobiliarias.l2 3.6756893 -5.220032 -7.1903289 0.003203855
## constant -1.3005105 15.352435 -0.3191591 3.631184763
## inmobiliarias.l2 constant
## agricultura.l2 1.0000000 1.0000000
## minas.l2 -1.9180771 0.3993022
## construccion.l2 0.4447663 -0.3783999
## financieras.l2 -1.4890042 -0.5664112
## inmobiliarias.l2 57.1790346 -3.9111293
## constant 28.1160599 -4416.2085255
##
## Weights W:
## (This is the loading matrix)
##
## agricultura.l2 minas.l2 construccion.l2 financieras.l2
## agricultura.d -0.27389656 -0.026950480 -0.462238586 -1.02946741
## minas.d -0.25058857 0.064954707 -0.674092329 0.65693740
## construccion.d 1.20226948 -0.076731509 -1.499944261 0.72658748
## financieras.d -0.62103013 -0.052344258 -0.113637119 0.37127463
## inmobiliarias.d -0.05131395 0.005558092 -0.003875617 0.02920095
## inmobiliarias.l2 constant
## agricultura.d -0.03743262 2.333436e-18
## minas.d -0.03411856 -1.526256e-17
## construccion.d -0.28894878 -1.131204e-17
## financieras.d 0.02187057 2.450224e-18
## inmobiliarias.d -0.02213668 7.971156e-19
• Número de relaciones de cointegración: El test de traza indica que existen múltiples relaciones de cointegración, dado que el estadístico de prueba supera los valores críticos para todos los niveles de cointegración sugeridos (r <= 0, r <= 1, etc.).
• Interpretación de las ecuaciones de cointegración: Las relaciones de cointegración muestran cómo una combinación lineal de las variables es estacionaria, a pesar de que las variables por separado no lo sean. En este caso, las ecuaciones de cointegración son:
\[\begin{aligned} &1. \quad \text{Agricultura}_t + 0.7937 \cdot \text{Minas}_t - 0.5858 \cdot \text{Construcción}_t + 1.5954 \cdot \text{Financieras}_t + 3.6757 \cdot \text{Inmobiliarias}_t - 1.3005 \cdot \text{Constante} = 0 \\ &2. \quad \text{Minas}_t - 8.9216 \cdot \text{Agricultura}_t + 3.9802 \cdot \text{Construcción}_t + 15.9845 \cdot \text{Financieras}_t - 5.2200 \cdot \text{Inmobiliarias}_t + 15.3524 \cdot \text{Constante} = 0 \\ &3. \quad \text{Construcción}_t + 1.3138 \cdot \text{Agricultura}_t + 0.2667 \cdot \text{Minas}_t - 0.2936 \cdot \text{Financieras}_t - 7.1903 \cdot \text{Inmobiliarias}_t - 0.3192 \cdot \text{Constante} = 0 \\ &4. \quad \text{Financieras}_t - 0.4828 \cdot \text{Agricultura}_t - 0.1332 \cdot \text{Minas}_t - 0.7821 \cdot \text{Construcción}_t + 0.0032 \cdot \text{Inmobiliarias}_t + 3.6312 \cdot \text{Constante} = 0 \\ &5. \quad \text{Inmobiliarias}_t - 1.9181 \cdot \text{Agricultura}_t + 0.4448 \cdot \text{Minas}_t - 1.4890 \cdot \text{Construcción}_t + 57.1790 \cdot \text{Financieras}_t + 28.1161 \cdot \text{Constante} = 0 \end{aligned}\]Estas ecuaciones sugieren que las variables se ajustan a ciertas combinaciones específicas que mantienen el equilibrio a largo plazo. Cada relación indica cómo una variable podría estar relacionada con las otras en un equilibrio de largo plazo.
El modelo VECM (Vector Error Correction Model) en su forma matricial se puede expresar como:
\[ \Delta X_t = \Pi X_{t-1} + \sum_{i=1}^{k-1} \Gamma_i \Delta X_{t-i} + \mu + \epsilon_t \]
Donde:
Significado Económico: El análisis de cointegración sugiere que las variables en el modelo (Agricultura, Minas, Construcción, Financieras, Inmobiliarias) están interrelacionadas y tienden a equilibrarse en el largo plazo. Las ecuaciones de cointegración nos indican cómo estas variables deben interactuar entre sí para mantener un equilibrio.
Conclusión: Las relaciones de cointegración identificadas muestran cómo las variables macroeconómicas o de sectores económicos están conectadas en un equilibrio a largo plazo.Por lo cual, se realizaran pruebas para validar los rezagos y verificar si hay que ajustar el modelo o utilizar un número de rezagos diferentes
Despues de realizar varias pruebas para identificar el mejor número de rezagos, se llega al resultado según AIC de 10, mostrando lo siguiente.
vec_model_10 <- ca.jo(series_desest, type = "trace", ecdet = "const", K = 10)
summary(vec_model_10)
##
## ######################
## # Johansen-Procedure #
## ######################
##
## Test type: trace statistic , without linear trend and constant in cointegration
##
## Eigenvalues (lambda):
## [1] 4.740683e-01 3.983069e-01 1.987720e-01 1.302991e-01 8.097062e-02
## [6] -4.853048e-17
##
## Values of teststatistic and critical values of test:
##
## test 10pct 5pct 1pct
## r <= 4 | 5.74 7.52 9.24 12.97
## r <= 3 | 15.23 17.85 19.96 24.60
## r <= 2 | 30.30 32.00 34.91 41.07
## r <= 1 | 64.85 49.65 53.12 60.16
## r = 0 | 108.54 71.86 76.07 84.45
##
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
##
## agricultura.l10 minas.l10 construccion.l10 financieras.l10
## agricultura.l10 1.00000000 1.0000000 1.0000000 1.00000000
## minas.l10 -0.01490861 0.3584359 0.1914783 0.62440429
## construccion.l10 0.25969150 -0.2729503 0.6171083 0.03872414
## financieras.l10 -2.89782484 0.7721675 -0.1662508 -1.31570745
## inmobiliarias.l10 -4.87298995 -0.9699954 -2.4240260 4.10783658
## constant -1.42330668 0.3172977 1.0406044 1.23325772
## inmobiliarias.l10 constant
## agricultura.l10 1.000000 1.0000000
## minas.l10 -23.892244 -0.2985852
## construccion.l10 3.967671 1.1428576
## financieras.l10 11.539035 -4.9708640
## inmobiliarias.l10 70.056402 9.1919730
## constant 25.712971 -125.9116075
##
## Weights W:
## (This is the loading matrix)
##
## agricultura.l10 minas.l10 construccion.l10 financieras.l10
## agricultura.d -0.7900605 -2.3788998 -0.67557710 -1.07353084
## minas.d 0.9766432 -2.8453990 -1.04684753 -1.29749035
## construccion.d 1.1717741 11.7096613 -3.78036598 -3.91988627
## financieras.d 1.0529102 -2.2323481 -1.18531297 0.09364435
## inmobiliarias.d 0.3168577 0.1384681 0.08814255 -0.15277076
## inmobiliarias.l10 constant
## agricultura.d -0.0373426810 -6.580793e-13
## minas.d 0.0571598769 -1.219841e-13
## construccion.d 0.0846332934 -1.332659e-13
## financieras.d -0.0004186168 -3.062918e-13
## inmobiliarias.d -0.0018673192 2.982746e-14
library(vars)
## Loading required package: MASS
## Loading required package: strucchange
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
## Loading required package: sandwich
## Loading required package: lmtest
residuals_vec_10 <- residuals(vec2var(vec_model_10, r = 1))
par(mfrow = c(3, 2))
for (i in 1:ncol(residuals_vec_10)) {
plot(residuals_vec_10[,i], main = paste("Residuals -", colnames(residuals_vec_10)[i]), ylab = "Residuals", xlab = "Time")
}
for (i in 1:ncol(residuals_vec_10)) {
print(paste("Ljung-Box Test for", colnames(residuals_vec_10)[i]))
print(Box.test(residuals_vec_10[,i], type = "Ljung-Box"))
}
## [1] "Ljung-Box Test for resids of agricultura"
##
## Box-Ljung test
##
## data: residuals_vec_10[, i]
## X-squared = 0.01956, df = 1, p-value = 0.8888
##
## [1] "Ljung-Box Test for resids of minas"
##
## Box-Ljung test
##
## data: residuals_vec_10[, i]
## X-squared = 0.071237, df = 1, p-value = 0.7895
##
## [1] "Ljung-Box Test for resids of construccion"
##
## Box-Ljung test
##
## data: residuals_vec_10[, i]
## X-squared = 0.12801, df = 1, p-value = 0.7205
##
## [1] "Ljung-Box Test for resids of financieras"
##
## Box-Ljung test
##
## data: residuals_vec_10[, i]
## X-squared = 0.0011126, df = 1, p-value = 0.9734
##
## [1] "Ljung-Box Test for resids of inmobiliarias"
##
## Box-Ljung test
##
## data: residuals_vec_10[, i]
## X-squared = 3.6149, df = 1, p-value = 0.05726
for (i in 1:ncol(residuals_vec_10)) {
print(paste("Jarque-Bera Test for", colnames(residuals_vec_10)[i]))
print(jarque.bera.test(residuals_vec_10[,i]))
}
## [1] "Jarque-Bera Test for resids of agricultura"
##
## Jarque Bera Test
##
## data: residuals_vec_10[, i]
## X-squared = 2.4307, df = 2, p-value = 0.2966
##
## [1] "Jarque-Bera Test for resids of minas"
##
## Jarque Bera Test
##
## data: residuals_vec_10[, i]
## X-squared = 0.11961, df = 2, p-value = 0.9419
##
## [1] "Jarque-Bera Test for resids of construccion"
##
## Jarque Bera Test
##
## data: residuals_vec_10[, i]
## X-squared = 1.8344, df = 2, p-value = 0.3996
##
## [1] "Jarque-Bera Test for resids of financieras"
##
## Jarque Bera Test
##
## data: residuals_vec_10[, i]
## X-squared = 1.4486, df = 2, p-value = 0.4847
##
## [1] "Jarque-Bera Test for resids of inmobiliarias"
##
## Jarque Bera Test
##
## data: residuals_vec_10[, i]
## X-squared = 0.3765, df = 2, p-value = 0.8284
La prueba de Ljung-Box aplicada a los residuales del modelo VEC con 10 rezagos ha mostrado que no existe evidencia significativa de autocorrelación en las series temporales analizadas. Los p-valores obtenidos en todas las series (Agricultura, Minas, Construcción, Financieras, e Inmobiliarias) son superiores a 0.05, lo que indica que los residuales se comportan como ruido blanco. Esto sugiere que el modelo ha capturado de manera efectiva la estructura temporal de las series, eliminando la autocorrelación que estaba presente en modelos anteriores con menos rezagos.
La prueba de Jarque-Bera aplicada a los residuales del modelo VEC con 10 rezagos también ha mostrado resultados favorables. Los p-valores obtenidos para todas las series son superiores a 0.05, lo que indica que no hay evidencia significativa de que los residuales se desvíen de una distribución normal. Este resultado es importante, ya que la normalidad de los residuales es un supuesto clave en muchos análisis econométricos, y su cumplimiento sugiere que el modelo es adecuado para inferencias y predicciones.
El modelo VEC ajustado con 10 rezagos ha demostrado ser un modelo robusto y adecuado para capturar las dinámicas interrelacionadas de las variables económicas seleccionadas (Agricultura, Minas, Construcción, Financieras, e Inmobiliarias). La inclusión de un mayor número de rezagos ha mejorado significativamente el comportamiento de los residuales, eliminando la autocorrelación y asegurando la normalidad. Estos resultados sugieren que el modelo es capaz de proporcionar una representación precisa de las relaciones de largo plazo entre las variables, así como de realizar predicciones confiables. En resumen, el modelo VEC con 10 rezagos ofrece una base sólida para el análisis económico y la toma de decisiones informadas.
Para finalizar y realizar las pruebas de impulso se debe convertir el modelo VEC a un VAR temporalmente para mejorar los resultados
vec_var_model <- vec2var(vec_model_10, r = 1)
irf_results <- irf(vec_var_model, impulse = "agricultura", response = c("minas", "construccion", "financieras", "inmobiliarias"), n.ahead = 20, boot = TRUE)
plot(irf_results)
En la gráfica de la IRF, estamos viendo cómo las variables Minas, Construcción, Financieras, e Inmobiliarias responden a un shock en la variable Agricultura:
• Minas: La respuesta de “Minas” a un shock en “Agricultura” oscila alrededor de cero y parece ser bastante estable. No se observa un impacto prolongado o fuerte, lo que sugiere que un shock en “Agricultura” tiene un efecto limitado y transitorio en “Minas”.
• Construcción: La respuesta de “Construcción” también muestra oscilaciones alrededor de cero, con algunos picos y valles. Esto indica una reacción transitoria, pero un poco más pronunciada que en el caso de “Minas”. Sin embargo, el impacto sigue siendo de corta duración.
• Financieras: La variable “Financieras” muestra una respuesta aún más moderada, con una respuesta que se mantiene cercana a cero. Esto indica que los shocks en “Agricultura” no tienen un impacto significativo o duradero en el sector financiero.
• Inmobiliarias: la respuesta es prácticamente nula, lo que sugiere que los shocks en “Agricultura” no influyen significativamente en esta variable.
• En conjunto, los resultados sugieren que un shock en “Agricultura” no tiene efectos duraderos o fuertes en las demás variables del modelo. Esto podría implicar que estas variables están relativamente desvinculadas de las fluctuaciones a corto plazo en el sector agrícola, o que las interacciones entre estos sectores son débiles.
fevd_results <- fevd(vec_var_model, n.ahead = 20)
plot(fevd_results)
### Descomposición de Varianza (FEVD):
La gráfica de FEVD muestra cómo se distribuye la varianza de cada variable a lo largo del tiempo, desglosando qué porcentaje es explicado por shocks en cada una de las variables del modelo:
• Agricultura: La mayor parte de la varianza de “Agricultura” es explicada por sí misma, lo que es esperado. Sin embargo, otras variables contribuyen muy poco, lo que refuerza la idea de que “Agricultura” es una variable bastante autónoma en el contexto del modelo.
• Minas: Similar a “Agricultura”, la mayor parte de la varianza de “Minas” es explicada por sus propios shocks, con contribuciones mínimas de las demás variables.
• Construcción: “Construcción” sigue un patrón similar, con la mayor parte de la varianza explicada por sí misma. Sin embargo, parece haber una ligera influencia de “Financieras” y “Minas”.
• Financieras: La varianza de “Financieras” es explicada predominantemente por sus propios shocks, con poca influencia de las demás variables.
• Inmobiliarias: La variable “Inmobiliarias” también muestra que su varianza es mayormente explicada por sí misma, con una influencia prácticamente nula de las demás variables.
La descomposición de la varianza refuerza la idea de que cada variable en el modelo es principalmente influenciada por sus propios shocks, y las interacciones entre variables tienen un efecto mínimo en la varianza explicada. Esto sugiere que las variables seleccionadas operan en gran medida de manera independiente en este contexto.
library(forecast)
predictions <- predict(vec_var_model, n.ahead = 4)
pred_vals <- predictions$fcst
par(mfrow = c(3, 2)) # Configurar la pantalla para varias gráficas
for (var_name in names(pred_vals)) {
plot(pred_vals[[var_name]][,1], type = "l", col = "blue", ylim = range(c(pred_vals[[var_name]][,2], pred_vals[[var_name]][,3])),
main = paste("Predictions for", var_name), xlab = "Time", ylab = "Value")
lines(pred_vals[[var_name]][,2], col = "red", lty = 2) # Límites inferiores del intervalo de confianza
lines(pred_vals[[var_name]][,3], col = "red", lty = 2) # Límites superiores del intervalo de confianza
}
Agricultura: La predicción muestra un incremento en el valor en el segundo trimestre seguido por una ligera disminución en los trimestres posteriores. Sin embargo, las fluctuaciones son moderadas y los intervalos de confianza sugieren una cierta incertidumbre en la predicción.
Minas: El valor predicho muestra un descenso inicial hasta el segundo trimestre, seguido de un aumento. Esta tendencia indica una posible recuperación después de una caída inicial. Los intervalos de confianza son amplios, lo que refleja incertidumbre.
Construcción: Se observa un patrón similar con una caída inicial en los primeros trimestres y una recuperación en los siguientes. Los intervalos de confianza son también amplios, pero indican una posible reversión de la tendencia negativa.
Financieras: La predicción muestra un descenso inicial seguido por un aumento en los trimestres posteriores. Este patrón es consistente con lo observado en otras variables, lo que podría sugerir un comportamiento cíclico en la economía.
Inmobiliarias: presenta un comportamiento más estable, con fluctuaciones menores comparadas con las otras variables. La predicción muestra una ligera oscilación con intervalos de confianza estrechos, sugiriendo mayor certidumbre en esta predicción.
El análisis realizado sobre las variables del PIB utilizando el modelo VEC (Vector Error Correction) revela relaciones de cointegración entre las series temporales seleccionadas. Esto sugiere que, a pesar de las diferencias a corto plazo, estas variables tienden a moverse juntas en el largo plazo, manteniendo un equilibrio. La cointegración encontrada indica que existen mecanismos de corrección de errores que permiten a las variables ajustarse a desviaciones temporales de este equilibrio.
Al aplicar el modelo VEC, observamos cómo los choques a corto plazo en una variable pueden influir en las otras, pero con la tendencia de volver al equilibrio en el largo plazo. Este comportamiento es consistente con la teoría económica que sugiere que sectores interrelacionados, como los analizados aquí (Agricultura, Construcción, Finanzas, etc.), están conectados a través de vínculos económicos y, por lo tanto, no pueden desviarse indefinidamente unos de otros.
Las pruebas de diagnóstico aplicadas al modelo también nos ayudan a validar la robustez del ajuste. Aunque algunas pruebas indicaron la presencia de problemas como la no normalidad de los residuales, el modelo en general proporciona una representación adecuada de las relaciones dinámicas y de largo plazo entre las variables del PIB seleccionadas.
Es importante resaltar que el uso de variables ficticias estacionales o la desestacionalización de las series se ha seguido el enfoque de desestacionalización para mejorar la precisión y la interpretación del modelo.
En resumen, el modelo VEC aplicado nos permite entender y modelar las relaciones a largo plazo entre los diferentes sectores económicos representados por las series temporales del PIB, y confirma la importancia de considerar la cointegración en el análisis de datos económicos interrelacionados.