Laboratorio 4

A continuación se seleccionaron los datos correspondientes al PIB anual de Guatemala del año 1961 a 2021. Se puede observar en la siguiente gráfica de serie de tiempo

## Warning: package 'forecast' was built under R version 4.2.2
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
## Warning: package 'seasonal' was built under R version 4.2.2
## Warning: package 'tseries' was built under R version 4.2.2

Luego se realizó una prueba de Dickey-Fuller para determinar si es necesario realizar una diferenciación.

tseries::adf.test(data)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  data
## Dickey-Fuller = -2.366, Lag order = 3, p-value = 0.4269
## alternative hypothesis: stationary

Debido a que el resultado del p-valor es mayor a 0.05 es necesaria realizar una diferenciación y de nuevo realizar la prueba de Dickey-Fuller.

diff_ts<-diff(data)
tseries::adf.test(diff_ts)
## Warning in tseries::adf.test(diff_ts): p-value smaller than printed p-value
## 
##  Augmented Dickey-Fuller Test
## 
## data:  diff_ts
## Dickey-Fuller = -4.3007, Lag order = 3, p-value = 0.01
## alternative hypothesis: stationary

Debido a que el p-valor es ahora menor a 0.05 se procede a analizar la gráfica de función de autocorrelación y función de autocorrelación parcial que ayudarán a definir el modelo adecuado a utilizar.

Debido a la caida repentina en ACF y caída continua en pACF se utilizará p, al haber dos colas fueras este será el primer modelo: 0,1,2. Sin embargo, se probará otro: 0,1,1. De estos se elegirá el que tenga un menor valor aic

modelo1 = Arima(diff_ts, order=c(0,1,1), include.drift = T)
modelo2 = Arima(diff_ts, order=c(0,1,2), include.drift = T)

modelo1$aic
## [1] 285.9428
modelo2$aic
## [1] 275.0639

Al ser el modelo 2 el que tiene un menor “aic” se procede a analizar los residuales y hacer un test, si el valor es mayor a 0.05 presente residuales aceptables

## Warning in modeldf.default(object): Could not find appropriate degrees of
## freedom for this model.

Box.test(modelo2$residuals, type="Ljung-Box")
## 
##  Box-Ljung test
## 
## data:  modelo2$residuals
## X-squared = 0.18309, df = 1, p-value = 0.6687

Forecast

Con esta información se procesde a pronosticar los datos