Series de Tiempo

En este laboratorio vamos a pronosticar el PIB por medio de series de tiempo de una base de datos, el país a pronostricar es Australia.

Para hacerlo, iniciamos con cargar las librerías, seguido de convertir la base de datos a una serie de tiempo y revisar la estructura de la base de datos.Después, por medio de la prueba de Dickey-Fuller analizaremos si el modelo de la serie de tiempo es estacionario y si no es estacionario, se usará una diferenciación. Para ver si la serie de tiempo es estacionaria revisaremos si el p-value < 0.05.

library(forecast)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
library(seasonal)
library(tseries)
library(readxl)

#Cargar el archivo
BD <- read_excel(file.choose(), sheet = 1)
data <- ts(BD$Australia, frequency = 1)
str(data)
##  Time-Series [1:61] from 1 to 61: 2.48 1.29 6.22 6.98 5.98 ...
#Prueba de Dickey-Fuller
plot(data)

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

Como se puede observar en la gráfica no es completamente estacionaria. Además, el resultado del p-value de la prueba de dickey-fuller es mayor a 0.05, por lo tanto no es estacionaria, para eso haremos una una diferenciación con el objetivo de convertir la serie de tiempo en estacionaria.

#Primera Diferenciación
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 = -6.8821, Lag order = 3, p-value = 0.01
## alternative hypothesis: stationary
plot(diff_ts)

Al hacer la diferenciación se puede observar que el p-value ya es menor a 0.05 entonces la serie de tiempo ya es estacionaria.

Gráfica ACF y PACF

A continuación se visualizará la gráfica ACF y PACF.

acf(diff_ts)

pacf(diff_ts)

Debemos de tomar en cuenta que:

  1. Si la gráfica ACF cae gradualmente y el PACF instantáneamente, se utiliza el modelo AR.
  2. Si la gráfica ACF cae instantáneamente y el PACF cae gradualmente, se utiliza el modelo MA.
  3. Si los dos caen gradualmente utilizar ambos componentes.

Para este caso, es funcional el inciso no. 2

  1. Escoger modelo
  2. Segundo, diferenciación
  3. Tercero de los valores que salgan del intervalo de la gráfica ACF
modelo1 = arima(data, order=c(1,1,1))
modelo2 = arima(data, order=c(1,1,2))
modelo3 = arima(data, order=c(1,1,3))

modelo1$aic
## [1] 241.056
modelo2$aic
## [1] 242.9729
modelo3$aic
## [1] 244.9777

Usamos el modelo arima que tenga el resultado menor, en este caso es el menor es el modelo No. 1

A continuación se muetra el pronóstico de la serie de tiempo del PIB de Australia.

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

Box.test(modelo1$residuals, type="Ljung-Box")
## 
##  Box-Ljung test
## 
## data:  modelo1$residuals
## X-squared = 0.0019246, df = 1, p-value = 0.965
a<-forecast::forecast(modelo1)
plot(a)

El modelo por medio de la prueba de Box-Ljung test nos dice que los valores de la serie de tiempo no son auto correlacionados, debido a que su p-value es mayor a 0.05.