# En esta seccion se incluye comandos en R script para cargas las librerias y los datos necesarios

# Carga de paquetes
library(forecast)
library(readxl)
Datos <- read_excel("Base Taller 2.xls", 
    sheet = "BaseCompleta")
# View(Datos)

# Seleccionamos las variables que nos interesan
IPIR_COL <- Datos$IPIR_COL
IPIR_VALLE <- Datos$IPIR_V
IPIR_CAUCA <- Datos$IPIR_C

knitr::opts_chunk$set(echo = TRUE)

Análisis de extracción de señales (comportamiento actual de las variables elegidas)

Las variables seleccionadas de la base de datos son:

El propósito de seleccionar estas tres variables radica en analizar una posible correlación que evidencie una relación de dependencia entre el Índice de Producción Industrial Regional (IPIR) del Valle del Cauca y del Cauca, en comparación con el IPIR a nivel nacional. La hipótesis subyacente surge del hecho de que, aunque estas tres variables miden el mismo indicador, lo hacen a diferentes niveles geográficos, lo que permite evaluar si las dinámicas productivas locales en los departamentos mencionados tienen un impacto o reflejan tendencias similares al comportamiento del índice a nivel nacional. Las tres variables son datos en frecuencia mensual, disponibles desde enero 2014 hasta diciembre 2022 hasta junio del 2024

Analisis de los datos en series de tiempo

A continuacion se determinara la factibilidad entre aplicar el analisis usando el modelo ARIMA a los datos originales, o si es necesario ajustarlos por estacionalidad.

Declaracion de las varables en series de tiempo

ST_COL <- ts(IPIR_COL, frequency=12, start=c(2012,1))
ST_V <- ts(IPIR_VALLE, frequency=12, start=c(2012,1))
ST_CA <- ts(IPIR_CAUCA, frequency=12, start=c(2012,1))

Carga de librerias necesarias

library(forecast)# Contiene el modelo ARIMA
library(tseries) #Para series de tiempo
library(TSA)     #Para series de tiempo
library(urca)    #Para hacer el Test de Raiz Unitaria (detectar hay o no estacionariedad)
library(ggplot2) #Para hacer gráficos
library(dplyr)   #Para la manipulación de datos (filtrar, seleccionar, agregar, transformar)
library(stats)   #Se usa para diversas pruebas estadísticas (medias,varianza, arima,etc)
library(seasonal)#Para calcular la serie ajustada de estacionalidad

Extraccion de señales y comparacion

COL_DECOMP <- decompose(ST_COL)
V_DECOMP <- decompose(ST_V)
CA_DECOMP <- decompose(ST_CA)
# Para el indice de produccion industrial regional a nivel nacional
EST_COL <- seasadj(COL_DECOMP)
plot(ST_COL,main ="IPIR COLOMBIA ORIGINAL VS DESESTACIONALIZADO")
lines(EST_COL, col = "red")
legend("topleft", legend = c("Serie original", "Serie desestacionalizada"), col = c("black", "red"), lty = 1)

En este caso nos inclinaremos por la serie ajustada por desestacionalidad, debido a que se presenta una variacion considerble con la serie orginal.

EST_CAUCA <- seasadj(CA_DECOMP)
plot(ST_CA, main=" IPIR CAUCA VS DESESTACIONALIZADO")
lines(EST_CAUCA, col = "red")
legend("topleft", legend = c("Serie original", "Serie desestacionalizada"), col = c("black", "red"), lty = 1)

En este caso nos inclinaremos por la serie ajustada por desestacionalidad, debido a que se presenta una variacion considerble con la serie orgina, a pesar de que sea un poco mas consistente aun se presentan notables diferencias entre ambas series.

EST_VALLE <- seasadj(V_DECOMP)
plot(ST_V, main="IPIR VALLE VS DESESTACIONALIZADO")
lines(EST_VALLE, col="red")
legend("topleft", legend = c("Serie original", "Serie desestacionalizada"), col = c("black", "red"), lty = 1)

Nos inclinaremos por la variable desestacionalizada, debido a que presenta muchas inconsistencias en correcciones por estacionalidad

Analisis Tendencia-Ciclo

plot(EST_COL, main="TENDENCIA CICLO NACIONAL VS ESTACIONALIZADA")
TC_COL <- COL_DECOMP$trend
lines(TC_COL, col="blue")
legend("topleft", legend = c("Serie Estacional", "Tendencia-ciclo"), col = c("black", "blue"), lty = 1)

Se presenta una desaceleración en la tendecia ciclo a mediados del 2022, se espera que al fianalizar el año esta siga presentado la tendecia bajista junto con el movimiento de el ipir desestacionalizado.Ademas se presenta una relacion negativa con respecto al ultimo año.

plot(EST_CAUCA, main="TENDENCIa CICLO CAUCA VS ESTACIONALIZADA")
TC_CAUCA <- CA_DECOMP$trend
lines(TC_CAUCA, col ="blue")
legend("topleft", legend = c("Serie Estacional", "Tendencia-ciclo"), col = c("black", "blue"), lty = 1)

Al finalizar el 2021 despues de una tendencia alcista presentada por las dos variables, se presento una desaceleracion fuerte hasta finalizar el año, con respecto a ambas variables, por ende se espera que la tendecia se siga presentando negativamente con pequeñas correciones con la relacion a la industria

plot(EST_VALLE, main="TENDENCIA CICLO VALLE VS ESTACIONALIZADA")
TC_VALLE <- V_DECOMP$trend
lines(TC_VALLE, col ="blue")
legend("topleft", legend = c("Serie Estacional", "Tendencia-ciclo"), col = c("black", "blue"), lty = 1)

Presento estabilidad con respecto a la tendencia en el años 2022, a mediados del 2023 no se incremento exponencialmente, despues ambas variables presentaron una desaceleracion, esperandose que al finalizar el años la tendecia siga negativa.

A partir de aqui trabajaremos con los datos ajustados desestacionalizados tomando en cuenta las conclusiones anteriores en las comparaciones de estas, contra las series originales

estacionariedad de las series

H0:La serie es No estacionaria H1:La serie es estacionaria

Estacionaridad IPIR VALLE

library(tseries)
adf.test(EST_VALLE)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  EST_VALLE
## Dickey-Fuller = -3.9651, Lag order = 5, p-value = 0.01286
## alternative hypothesis: stationary

Dado que el valor P < 0.05 rechazamos H0, luego la serie relacionada a los datos IPIR_VALLE es estacionaria, aqui d = 1

Estacionaridad IPIR CAUCA

library(tseries)
adf.test(EST_CAUCA)
## Warning in adf.test(EST_CAUCA): p-value smaller than printed p-value
## 
##  Augmented Dickey-Fuller Test
## 
## data:  EST_CAUCA
## Dickey-Fuller = -4.2614, Lag order = 5, p-value = 0.01
## alternative hypothesis: stationary

Dado que el valor P < 0.05 rechazamos H0, luego la serie relacionada a los datos IPIR_CAUCA es estacionaria, aqui d = 1

Estacionaridad IPIR COLOMBIA

library(tseries)
adf.test(EST_COL)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  EST_COL
## Dickey-Fuller = -2.7432, Lag order = 5, p-value = 0.2668
## alternative hypothesis: stationary

Dado que el valor P > 0.05 NO rechazamos H0, luego esto implica que la serie relacionada a los datos IPIR_COL NO es estacionaria. Tomamos en cuenta ahora que es la unica seria desestacionalizada que no es estacionaria, por ende tendremos que diferenciarla hasta volverla estacionaria

EST_COL_d1= diff(EST_COL, differences = 1)
EST_COL_d2= diff(EST_COL, differences = 2)

plot(EST_COL_d1, main = " IPIR COLOMBIA- Diferenciación en (niveles)")
lines(EST_COL_d2, col = "red")
legend("topleft", legend = c(" Una diferencia", "Dos diferencias"), col = c("black", "red"), lty = 1)

Podemos determinar a partir de este grafico que la traza correspondiente a la diferencia(una vez y dos veces) hay un patron oscilatorio alrededor de 0 sin una significativa tendencia visible. Luego la diferenciacion en los terminos de orden 1 deberia ser suficiente, aplicamos test para comprobar

adf.test(EST_COL_d1)
## Warning in adf.test(EST_COL_d1): p-value smaller than printed p-value
## 
##  Augmented Dickey-Fuller Test
## 
## data:  EST_COL_d1
## Dickey-Fuller = -6.0003, Lag order = 5, p-value = 0.01
## alternative hypothesis: stationary
adf.test(EST_COL_d2)
## Warning in adf.test(EST_COL_d2): p-value smaller than printed p-value
## 
##  Augmented Dickey-Fuller Test
## 
## data:  EST_COL_d2
## Dickey-Fuller = -9.46, Lag order = 5, p-value = 0.01
## alternative hypothesis: stationary

Ahora la serie relacionada a IPIR-COL es estacionaria

EST_VALLE_d1= diff(EST_VALLE, differences = 1)
EST_CAUCA_d1= diff(EST_CAUCA, differences = 1)

FUNCIONES DE AUTOCORRELACION

Analizaremos los 5 primeros retazos de las graficas para determinar los valores de p y q

Acf(EST_VALLE_d1, main='Función de autocorrelación VALLE (ACF) -IPIR diferenciado')

Observando la grafica podremos definir q(valle) con el valor de 1 o 2 ya que en estos dos primeros retazos se evidencia una correlacion significativa no decreciente a 0

Acf(EST_CAUCA_d1, main='Función de autocorrelación CAUCA (ACF) -IPIR diferenciado')

Observando la grafica podremos definir q(cauca) con el valor de 1 ya que es el unico retazo que evidencia una correlacion significativa no decreciente a 0

Acf(EST_COL_d1, main='Función de autocorrelación COLOMBIA (ACF) -IPIR diferenciado')

Observando la grafica podremos definir q(colombia) con el valor de 1 o 2 ya que en estos dos primeros retazos se evidencia una correlacion significativa no decreciente a 0

FUNCIONES DE AUTOCORRELACION PARCIAL

Analizaremos los 5 primeros retazos de las graficas para determinar los valores de p y q

Pacf(EST_VALLE_d1, main='Figura 6.Función de autocorrelación parcial VALLE (PACF) -IPIR diferenciado')

se observa que el p(valle) podria tomar el valor de 0, O 1 O 2 ya que en estos primeros rezagos se sobrepasan las líneas punteadas pero no de form atan significativa. Es decir que podria ser AR (0) O AR (1) O AR (2).

Pacf(EST_CAUCA_d1, main='Figura 6.Función de autocorrelación parcial CAUCA (PACF) -IPIR diferenciado')

se observa que el p(cauca) podria tomar el valor de 0 O 2 O 3 O 5 ya que en estos primeros rezagos se sobrepasan las líneas punteadas pero no de form atan significativa. Es decir que podria ser AR (0) O AR (2) O AR (3) O AR(5).

Pacf(EST_COL_d1, main='Figura 6.Función de autocorrelación parcial COLOMBIA (PACF) -IPIR diferenciado')

se observa que el p(col) podria tomar el valor de 0 o 1 ya que en estos primeros rezagos se sobrepasan las líneas punteadas pero no de forma tan significativa. Es decir que podria ser AR (0) o AR (1)

MODELO (p,d,q) VALLE

  1. (0, 1, 1)
  2. (0, 1, 2)
  3. (1, 1, 1)
  4. (1, 1, 2)
  5. (2, 1, 1)
  6. (2, 1, 2)

MODELO (p,d,q) CAUCA

1.(0, 1, 1) 2.(2, 1, 1) 3.(3, 1, 1) 4.(5, 1, 1)

MODELO (p,d,q) COLOMBIA

(0, 1, 1) (0, 1, 2) (1, 1, 1) (1, 1, 2)

MENOR AIC PARA IPIR VALLE

auto.arima(EST_VALLE_d1)
## Series: EST_VALLE_d1 
## ARIMA(0,0,2) with zero mean 
## 
## Coefficients:
##           ma1      ma2
##       -0.6574  -0.1439
## s.e.   0.0838   0.0856
## 
## sigma^2 = 45.74:  log likelihood = -495.69
## AIC=997.37   AICc=997.54   BIC=1006.39

MENOR AIC PARA IPIR CAUCA

auto.arima(EST_CAUCA_d1)
## Series: EST_CAUCA_d1 
## ARIMA(1,0,1) with zero mean 
## 
## Coefficients:
##          ar1      ma1
##       0.3476  -0.8775
## s.e.  0.1367   0.0927
## 
## sigma^2 = 73.32:  log likelihood = -530.82
## AIC=1067.63   AICc=1067.8   BIC=1076.65

MENOR AIC PARA IPIR COLOMBIA

auto.arima(EST_COL_d1)
## Series: EST_COL_d1 
## ARIMA(2,0,2) with zero mean 
## 
## Coefficients:
##           ar1     ar2     ma1      ma2
##       -0.6761  0.1742  0.3163  -0.6612
## s.e.   0.1408  0.1405  0.1073   0.1078
## 
## sigma^2 = 21.17:  log likelihood = -437.49
## AIC=884.97   AICc=885.39   BIC=899.99

ESTIMACION Y COMPARACION DE LOS MODELOS

El criterio de comparacion que usaremos sera el de menor BIC, la razon de esto es que trabajamos con una muestra considerablemente grande, el BIC penaliza más la complejidad del modelo y evita sobreajustes en escenarios con muchos datos. Esto te proporcionará un modelo más sencillo y con más poder predictivo.

Estimacion del modelo para IPIR_VALLE

modelo_arima_valle <- arima(EST_VALLE_d1, order = c(0,1,1))
aic_valor_valle <- AIC(modelo_arima_valle)
bic_valor_valle <- BIC(modelo_arima_valle)

bic_valor_valle
## [1] 1056.711
auto.arima(EST_VALLE_d1)
## Series: EST_VALLE_d1 
## ARIMA(0,0,2) with zero mean 
## 
## Coefficients:
##           ma1      ma2
##       -0.6574  -0.1439
## s.e.   0.0838   0.0856
## 
## sigma^2 = 45.74:  log likelihood = -495.69
## AIC=997.37   AICc=997.54   BIC=1006.39

Elegimos la estimacion del modelo automatico ARIMA(1,0,1), debido a que nos da el menor BIC.

Estimacion del modelo para IPIR_CAUCA

modelo_arima_cauca <- arima(EST_CAUCA_d1, order = c(0,1,1))
aic_valor_cauca <- AIC(modelo_arima_cauca)
bic_valor_cauca <- BIC(modelo_arima_cauca)

bic_valor_cauca
## [1] 1111.128
auto.arima(EST_CAUCA_d1)
## Series: EST_CAUCA_d1 
## ARIMA(1,0,1) with zero mean 
## 
## Coefficients:
##          ar1      ma1
##       0.3476  -0.8775
## s.e.  0.1367   0.0927
## 
## sigma^2 = 73.32:  log likelihood = -530.82
## AIC=1067.63   AICc=1067.8   BIC=1076.65

Elegimos la estimacion del modelo automatico ARIMA(1,0,1), debido a que nos da la menor comparacion, con respecto al BIC

Estimacion del modelo para IPIR_COL

modelo_arima_colombia <- arima(EST_COL_d1, order = c(0,1,1))
aic_valor_colombia <- AIC(modelo_arima_colombia)
bic_valor_colombia <- BIC(modelo_arima_colombia)

bic_valor_colombia
## [1] 917.2765
auto.arima(EST_COL_d1)
## Series: EST_COL_d1 
## ARIMA(2,0,2) with zero mean 
## 
## Coefficients:
##           ar1     ar2     ma1      ma2
##       -0.6761  0.1742  0.3163  -0.6612
## s.e.   0.1408  0.1405  0.1073   0.1078
## 
## sigma^2 = 21.17:  log likelihood = -437.49
## AIC=884.97   AICc=885.39   BIC=899.99

Elegimos la estimacion del modelo automatico ARIMA(2,0,2), debido a que nos da la menor comparacion, con respecto al BIC

VALIDACION VALLE

H0: No hay autocorrelación de los residuos H1: Existe autocorrelación de los residuos

Model1=Arima(EST_VALLE_d1,order = c(1,0,1))
Box.test(Model1$residuals, lag = 20, type = "Ljung-Box")
## 
##  Box-Ljung test
## 
## data:  Model1$residuals
## X-squared = 22.92, df = 20, p-value = 0.2928

como el valor p es mayor a 0.05, NO se rechaza H0, luego no existe correlacion en los residuos, lo que indica que el modelo cumple la condicion de ruido blanco. A continuacion vamos con el test de shapiro H0: Los residuos siguen una distribución normal. H1: Los residuos NO siguen una distribución normal.

shapiro.test(Model1$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  Model1$residuals
## W = 0.72521, p-value = 2.264e-15

El valor P es menor a 0.05, se rechaza H0 y la muestra no sigue una distribucion normal

A continuacion vamos con la estimacion del modelo de eleccion

Model7=Arima(EST_VALLE_d1,order = c(0,1,1))
Box.test(Model7$residuals, lag = 20, type = "Ljung-Box")
## 
##  Box-Ljung test
## 
## data:  Model7$residuals
## X-squared = 47.463, df = 20, p-value = 0.0005058

El valor P es menor a 0.05 luego existe correlacion en los residuos y el modelo podria no ser ideal Ahora con la prueba shapiro

shapiro.test(Model7$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  Model7$residuals
## W = 0.6826, p-value < 2.2e-16

El valor P es menor a 0.05 luego la muestra no sigue una distribucion normal

VALIDACION CAUCA

H0: No hay autocorrelación de los residuos H1: Existe autocorrelación de los residuos

Model3=Arima(EST_CAUCA_d1,order = c(1,0,1))
Box.test(Model3$residuals, lag = 20, type = "Ljung-Box")
## 
##  Box-Ljung test
## 
## data:  Model3$residuals
## X-squared = 28.129, df = 20, p-value = 0.1064

como el valor p es mayor a 0.05,NO se rechaza H0, luego NO existe correlacion en los residuos, lo que indica que el modelo cumple la condicion de ruido blanco

A continuacion vamos con el test de shapiro H0: Los residuos siguen una distribución normal. H1: Los residuos NO siguen una distribución normal.

shapiro.test(Model3$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  Model3$residuals
## W = 0.82693, p-value = 5.54e-12

El valor P es menor a 0.05, se rechaza H0 y la muestra no sigue una distribucion normal

Luego vamos con la validacion al modelo de eleccion

Model6=Arima(EST_CAUCA_d1,order = c(0,1,1))
Box.test(Model6$residuals, lag = 20, type = "Ljung-Box")
## 
##  Box-Ljung test
## 
## data:  Model6$residuals
## X-squared = 36.856, df = 20, p-value = 0.01218

El valor p es menor a 0.05 luego existe correlacion en los residuos, lo que indica que el modelo podria no ser ideal

shapiro.test(Model6$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  Model6$residuals
## W = 0.7926, p-value = 2.971e-13

El valor P es menor a 0.05, se rechaza H0 y la muestra no sigue una distribucion normal

VALIDACION COLOMBIA

H0: No hay autocorrelación de los residuos H1: Existe autocorrelación de los residuos

Model4=Arima(EST_COL_d1,order = c(2,0,2))
Box.test(Model4$residuals, lag = 20, type = "Ljung-Box")
## 
##  Box-Ljung test
## 
## data:  Model4$residuals
## X-squared = 19.869, df = 20, p-value = 0.4661

como el valor p es mayor a 0.05, se rechaza H0, luego no hay correlacion en los residuos, entonces se cumple la condicion del ruido blanco

shapiro.test(Model4$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  Model4$residuals
## W = 0.86451, p-value = 2.233e-10

El valor p es menor a 0.05. La muestra no sigue una distribucion normal

Luego continuamos con la validacion del modelo ARIMA de eleccion

Model5=Arima(EST_COL_d1,order = c(0,1,1))
Box.test(Model5$residuals, lag = 20, type = "Ljung-Box")
## 
##  Box-Ljung test
## 
## data:  Model5$residuals
## X-squared = 44.774, df = 20, p-value = 0.001184

Luego el valor P es menor a 0.05 lo que indica correlacion en los residuos, lo que indica que el modelo podria no ser ideal Ahora vamos con la prueba shapiro

shapiro.test(Model5$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  Model5$residuals
## W = 0.89017, p-value = 4.178e-09

El valor p es menor a 0.05. La muestra no sigue una distribucion normal

PRONOSTICO VALLE Y ANALISIS

Pronostico a 3 meses

Pronostico3=forecast(Model1,level= c(95), h=3)
plot(Pronostico3)

Medicion en el RMSE y MAE

valores_reales <- as.numeric(tail(EST_VALLE_d1,n=3))
valores_pronosticados <- as.numeric(Pronostico3$mean)
rmse <- sqrt(mean((valores_reales - valores_pronosticados)^2, na.rm = TRUE))
rmse
## [1] 7.421609
mae <- mean(abs(valores_reales - valores_pronosticados), na.rm = TRUE)
mae
## [1] 6.433833

Pronostico a 6 meses

Pronostico6=forecast(Model1,level= c(95), h=6)
plot(Pronostico6)

Medicion en el RMSE y MAE

valores_reales <- as.numeric(tail(EST_VALLE_d1,n=6))
valores_pronosticados <- as.numeric(Pronostico6$mean)
rmse <- sqrt(mean((valores_reales - valores_pronosticados)^2, na.rm = TRUE))
rmse
## [1] 7.086563
mae <- mean(abs(valores_reales - valores_pronosticados), na.rm = TRUE)
mae
## [1] 5.864048

PRONOSTICO CAUCA

Pronostico a 3 meses

Pronostico3=forecast(Model3,level= c(95), h=3)
plot(Pronostico3)

Medicion en el RMSE y MAE

valores_reales <- as.numeric(tail(EST_CAUCA_d1,n=3))
valores_pronosticados <- as.numeric(Pronostico3$mean)
rmse <- sqrt(mean((valores_reales - valores_pronosticados)^2, na.rm = TRUE))
rmse
## [1] 5.970292
mae <- mean(abs(valores_reales - valores_pronosticados), na.rm = TRUE)
mae
## [1] 4.271521

Pronostico a 6 meses

Pronostico6=forecast(Model3,level= c(95), h=6)
plot(Pronostico6)

Medicion en el RMSE y MAE

valores_reales <- as.numeric(tail(EST_CAUCA_d1,n=6))
valores_pronosticados <- as.numeric(Pronostico6$mean)
rmse <- sqrt(mean((valores_reales - valores_pronosticados)^2, na.rm = TRUE))
rmse
## [1] 5.036406
mae <- mean(abs(valores_reales - valores_pronosticados), na.rm = TRUE)
mae
## [1] 3.717255

PRONOSTICO COLOMBIA

Pronostico a 3 meses

Pronostico3=forecast(Model4,level= c(95), h=3)
plot(Pronostico3)

Medicion en el RMSE y MAE

valores_reales <- as.numeric(tail(EST_COL_d1,n=3))
valores_pronosticados <- as.numeric(Pronostico3$mean)
rmse <- sqrt(mean((valores_reales - valores_pronosticados)^2, na.rm = TRUE))
rmse
## [1] 6.550134
mae <- mean(abs(valores_reales - valores_pronosticados), na.rm = TRUE)
mae
## [1] 6.219074

Pronostico a 6 meses

Pronostico6=forecast(Model4,level= c(95), h=6)
plot(Pronostico6)

Medicion en el RMSE y MAE

valores_reales <- as.numeric(tail(EST_COL_d1,n=6))
valores_pronosticados <- as.numeric(Pronostico6$mean)
rmse <- sqrt(mean((valores_reales - valores_pronosticados)^2, na.rm = TRUE))
rmse
## [1] 5.967534
mae <- mean(abs(valores_reales - valores_pronosticados), na.rm = TRUE)
mae
## [1] 4.732074

PRONOSTICO VALLE NO AUTOMATICO

Pronostico a 3 meses

Pronostico3=forecast(Model7,level= c(95), h=3)
plot(Pronostico3)

Medicion en el RMSE y MAE

valores_reales <- as.numeric(tail(EST_VALLE_d1,n=3))
valores_pronosticados <- as.numeric(Pronostico3$mean)
rmse <- sqrt(mean((valores_reales - valores_pronosticados)^2, na.rm = TRUE))
rmse
## [1] 8.612098
mae <- mean(abs(valores_reales - valores_pronosticados), na.rm = TRUE)
mae
## [1] 7.63445

Pronostico a 6 meses

Pronostico6=forecast(Model7,level= c(95), h=6)
plot(Pronostico6)

Medicion en el RMSE y MAE

valores_reales <- as.numeric(tail(EST_VALLE_d1,n=6))
valores_pronosticados <- as.numeric(Pronostico6$mean)
rmse <- sqrt(mean((valores_reales - valores_pronosticados)^2, na.rm = TRUE))
rmse
## [1] 7.137297
mae <- mean(abs(valores_reales - valores_pronosticados), na.rm = TRUE)
mae
## [1] 6.070157

PRONOSTICO CAUCA NO AUTOMATICO

Pronostico a 3 meses

Pronostico3=forecast(Model6,level= c(95), h=3)
plot(Pronostico3)

Medicion en el RMSE y MAE

valores_reales <- as.numeric(tail(EST_CAUCA_d1,n=3))
valores_pronosticados <- as.numeric(Pronostico3$mean)
rmse <- sqrt(mean((valores_reales - valores_pronosticados)^2, na.rm = TRUE))
rmse
## [1] 3.056723
mae <- mean(abs(valores_reales - valores_pronosticados), na.rm = TRUE)
mae
## [1] 2.655446

Pronostico a 6 meses

Pronostico6=forecast(Model6,level= c(95), h=6)
plot(Pronostico6)

Medicion en el RMSE y MAE

valores_reales <- as.numeric(tail(EST_CAUCA_d1,n=6))
valores_pronosticados <- as.numeric(Pronostico6$mean)
rmse <- sqrt(mean((valores_reales - valores_pronosticados)^2, na.rm = TRUE))
rmse
## [1] 3.365518
mae <- mean(abs(valores_reales - valores_pronosticados), na.rm = TRUE)
mae
## [1] 3.009687

PRONOSTICO COLOMBIA NO AUTOMATICO

Pronostico a 3 meses

Pronostico3=forecast(Model5,level= c(95), h=3)
plot(Pronostico3)

Medicion en el RMSE y MAE

valores_reales <- as.numeric(tail(EST_COL_d1,n=3))
valores_pronosticados <- as.numeric(Pronostico3$mean)
rmse <- sqrt(mean((valores_reales - valores_pronosticados)^2, na.rm = TRUE))
rmse
## [1] 7.580551
mae <- mean(abs(valores_reales - valores_pronosticados), na.rm = TRUE)
mae
## [1] 6.876123

Pronostico a 6 meses

Pronostico6=forecast(Model5,level= c(95), h=6)
plot(Pronostico6)

Medicion en el RMSE y MAE

valores_reales <- as.numeric(tail(EST_COL_d1,n=6))
valores_pronosticados <- as.numeric(Pronostico6$mean)
rmse <- sqrt(mean((valores_reales - valores_pronosticados)^2, na.rm = TRUE))
rmse
## [1] 5.896608
mae <- mean(abs(valores_reales - valores_pronosticados), na.rm = TRUE)
mae
## [1] 4.929643

Conclusiones

El análisis del Índice de Producción Industrial Regional (IPIR) a nivel nacional y en las regiones de Valle del Cauca y Cauca ha permitido identificar tendencias y comportamientos significativos que reflejan la dinámica industrial en Colombia desde enero de 2014 hasta junio de 2024. A través del uso de modelos de series de tiempo, se ha podido observar la relación entre las variables seleccionadas, considerando tanto sus aspectos estacionales como sus tendencias a largo plazo.

Las series temporales de IPIR para Valle y Cauca mostraron comportamientos estacionarios tras la eliminación de la estacionalidad, lo que facilitó la modelización adecuada mediante el enfoque ARIMA. Los modelos ajustados indicaron una tendencia general a la desaceleración en la producción industrial, con evidencias de una correlación entre las dinámicas locales de producción y el comportamiento nacional. En particular, se observó que las fluctuaciones en el IPIR de Valle del Cauca y Cauca no solo se alinean con las tendencias nacionales, sino que también pueden verse influenciadas por factores económicos y contextuales específicos de cada región.

El pronóstico de los modelos ARIMA, tanto a corto como a mediano plazo, sugiere que la producción industrial en Valle del Cauca y Cauca podría experimentar una leve recuperación en el futuro inmediato, aunque la tendencia a la desaceleración sigue siendo preocupante. Las predicciones indican que, a pesar de las mejoras esperadas, es probable que la producción industrial no alcance los niveles óptimos de crecimiento sin la implementación de políticas efectivas. Este análisis resalta la necesidad de políticas que fomenten el crecimiento y la resiliencia del sector industrial, teniendo en cuenta las particularidades de cada región.