library(tseries)
## Warning: package 'tseries' was built under R version 4.5.1
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
library(forecast)
## Warning: package 'forecast' was built under R version 4.5.1
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.5.1
library(readxl)
## Warning: package 'readxl' was built under R version 4.5.1
library(TTR)
## Warning: package 'TTR' was built under R version 4.5.1

Importacion de Datos

url="https://raw.githubusercontent.com/vmoprojs/DataLectures/master/pib_ec_const.csv"
impor=read.delim(url,sep=";")
impors=impor$IMPOR/1000000
impors_s=ts(impors,start = c(2000,1),frequency = 4)
plot(impors_s)

El comportamiento de los datos es de forma aditiva y tiene tendencia creciente.

impors_sl=log(impors_s)
plot(impors_sl)

No vemos un cambio no muy significativo al utilizar logaritmo por tal se procede a utilizar la serie normal.

Grafico de la Serie

plot(impors_s,xlab="Años",ylab="Importaciones de bienes y servicios",col="Purple")

Interpretacion: El gráfico muestra la evolución de las importaciones de bienes y servicios entre los años 2000 y 2020, que refleja los valores observados de la serie temporal; se aprecia una tendencia general de crecimiento, pasando de niveles cercanos a 2 hasta superar el valor de 5, aunque con fluctuaciones intermedias que evidencian variaciones cíclicas o irregulares, incluyendo un descenso alrededor de 2015 y una recuperación posterior hacia 2020, lo que indica un comportamiento dinámico pero con un claro patrón ascendente a lo largo del período analizado.

Descomposicion de la Serie

impors_sc=decompose(impors_s)
plot(impors_sc)

Modelo de Holt Winters

impors_hw=HoltWinters(impors_s, beta=TRUE, gamma=FALSE)
impors_hwf=predict(impors_hw,3)
impors_hwf
##          Qtr1     Qtr2     Qtr3
## 2021 5.267120 5.654315 6.041510
plot(impors_hw,impors_hwf)

Interpretacion: El gráfico muestra el ajuste del modelo de suavizamiento exponencial de Holt-Winters aplicando a la serie temporal de importaciones entre 2000 y 2020, donde la línea negra representa los valores observados y la línea roja los valores ajustados por el modelo; se aprecia una tendencia ascendente sostenida, pasando de valores cercanos a 2 hasta superar el nivel de 5, con fluctuaciones periódicas que reflejan variaciones cíclicas moderadas, mientras que hacia el final de la serie (2019–2020) se observa un aumento abrupto difícil de seguir con exactitud por el modelo; la cercanía entre ambas curvas indica un buen ajuste, y en la parte superior se muestran los valores proyectados para 2021 (alrededor de 5.65, con un rango estimado entre 5.27 y 6.04).Por lo cual el método describe correctamente la tendencia de crecimiento.

impors_sw=HoltWinters(impors_s)
impors_sp=predict(impors_sw,3)
impors_sp
##          Qtr1     Qtr2     Qtr3
## 2021 5.177510 5.046085 5.074954

Serie Estacionaria

adf.test(impors_s)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  impors_s
## Dickey-Fuller = -2.0268, Lag order = 4, p-value = 0.5649
## alternative hypothesis: stationary

la serie no es estacionaria por que el p-valor es mayor a alfa.

impors_sd=diff(impors_s)
adf.test(impors_sd)
## Warning in adf.test(impors_sd): p-value smaller than printed p-value
## 
##  Augmented Dickey-Fuller Test
## 
## data:  impors_sd
## Dickey-Fuller = -5.2456, Lag order = 4, p-value = 0.01
## alternative hypothesis: stationary
impors_sds=diff(impors_sd,4) 
adf.test(impors_sds)
## Warning in adf.test(impors_sds): p-value smaller than printed p-value
## 
##  Augmented Dickey-Fuller Test
## 
## data:  impors_sds
## Dickey-Fuller = -4.9193, Lag order = 4, p-value = 0.01
## alternative hypothesis: stationary

el p-valor es menor que alfa. Por lo cual se procede a realizar el modelo de mejor ajuste. La prueba de Dickey Fuller de la serie en diferencia regular y estacional es estacionario, porque el p-valor es menor que alfa.

Modelo de mejor ajuste SARIMA

acf(impors_sds,main="función de autocorrelación")

Se observa en la función de autocorrelación que hay un resago no muy significativo en la parte regular (MA(1)).

pacf(impors_sds,main="función de autocorrelación parcial")

En la función de autocorrelación parcial no se observa ningun resago significativo en la parte regular (AR(0))

mod1 = arima(impors_s, order=c(0,1,0), seasonal=list(order=c(0,1,0), period=4))
mod1
## 
## Call:
## arima(x = impors_s, order = c(0, 1, 0), seasonal = list(order = c(0, 1, 0), 
##     period = 4))
## 
## 
## sigma^2 estimated as 0.07901:  log likelihood = -11.84,  aic = 25.67
Box.test(impors_s,lag = 4,type = "Ljung-Box")
## 
##  Box-Ljung test
## 
## data:  impors_s
## X-squared = 268.34, df = 4, p-value < 2.2e-16
mod1
## 
## Call:
## arima(x = impors_s, order = c(0, 1, 0), seasonal = list(order = c(0, 1, 0), 
##     period = 4))
## 
## 
## sigma^2 estimated as 0.07901:  log likelihood = -11.84,  aic = 25.67
#Modelos SARIMA candidatos
mod2 = arima(impors_s, order = c(0,1,0), seasonal = list(order=c(0,1,0), period=4))
mod3 = arima(impors_s, order = c(0,1,1), seasonal = list(order=c(0,1,0), period=4))
mod4 = arima(impors_s, order = c(1,1,1), seasonal = list(order=c(0,1,0), period=4))
mod5 = arima(impors_s, order = c(1,1,0), seasonal = list(order=c(0,1,0), period=4))
#comparamos aic 

mod1$aic
## [1] 25.67414
Box.test(mod1$residuals)
## 
##  Box-Pierce test
## 
## data:  mod1$residuals
## X-squared = 8.1221, df = 1, p-value = 0.004373
mod2$aic
## [1] 25.67414
Box.test(mod2$residuals)
## 
##  Box-Pierce test
## 
## data:  mod2$residuals
## X-squared = 8.1221, df = 1, p-value = 0.004373
mod3$aic
## [1] 18.85984
Box.test(mod3$residuals)
## 
##  Box-Pierce test
## 
## data:  mod3$residuals
## X-squared = 0.035691, df = 1, p-value = 0.8502
mod4$aic
## [1] 20.59163
Box.test(mod4$residuals)
## 
##  Box-Pierce test
## 
## data:  mod4$residuals
## X-squared = 0.0058138, df = 1, p-value = 0.9392
mod5$aic
## [1] 19.11342
Box.test(mod5$residuals)
## 
##  Box-Pierce test
## 
## data:  mod5$residuals
## X-squared = 0.15396, df = 1, p-value = 0.6948