autoplot para series de tiempo

estacional <- read.csv("Estacionalidad.csv", sep = ",", dec = ".", header = T)

La función autoplot() de la librería ggbio trabaja bajo ggplot2 y nos permite realizar mejores gráficos para la modelación de series de tiempo.

Primero debemos convertir el objeto de la serie de tiempo a un objeto ts para que se pueda cargar en autoplot(). Esto es muy común en la modelación de las series de tiempo, antes de aplicar los modelos, convertir los datos en ts.

La función ts es de la librería stats.

timeserie <- ts(estacional[,1])

Gráfico de la serie de tiempo original:

El gráfico de la serie de tiempo se puede hacer solo con autoplot(timeserie).

library(forecast)
Warning message:
"package 'forecast' was built under R version 4.1.3"
Registered S3 method overwritten by 'quantmod':
  method            from
  as.zoo.data.frame zoo
library(ggplot2)
autoplot(timeserie)+
        theme_minimal() +
        labs(title = "Serie de tiempo 1", x = "Tiempo", y = "y")+
        theme(axis.text = element_text(size = 14, family = 'mono', color = 'black'),
              axis.title.x = element_text(face = "bold", colour = "black", size = rel(1)),
              axis.title.y = element_text(face = "bold", colour = "black", size = rel(1), angle = 0,vjust = 0.5))
../../_images/output_9_04.png

Gráfico de la serie de tiempo con el pronóstico:

Se realiza el pronóstico con la función forecast().

Para graficar solo es con autoplot(forecast). La función identifica automáticamente la serie de tiempo original y el pronóstico.

ar <- arima(estacional[,1], order = c(1, 0, 0))
forecast <- forecast(ar, h = 5, level = 99)
autoplot(forecast)+
        theme_minimal() +
        labs(title = "Serie de tiempo 1", x = "Tiempo", y = "y")+
        theme(axis.text = element_text(size = 14, family = 'mono', color = 'black'),
              axis.title.x = element_text(face = "bold", colour = "black", size = rel(1)),
              axis.title.y = element_text(face = "bold", colour = "black", size = rel(1), angle = 0,vjust = 0.5))
../../_images/output_13_02.png

En forma alternativa se puede utilizar geom_forecast(h = ) y automáticamente se calculan las predicciones.

autoplot(timeserie) + geom_forecast(h = 5)+
        theme_minimal() +
        labs(title = "Serie de tiempo 1", x = "Tiempo", y = "y")+
        theme(axis.text = element_text(size = 14, family = 'mono', color = 'black'),
              axis.title.x = element_text(face = "bold", colour = "black", size = rel(1)),
              axis.title.y = element_text(face = "bold", colour = "black", size = rel(1), angle = 0,vjust = 0.5))
../../_images/output_15_03.png

Gráfico serie de tiempo, ACF y PACF:

ggtsdisplay(timeserie)
../../_images/output_17_04.png

Gráfico de la ACF:

ggAcf(timeserie)+
        theme_minimal() +
        labs(title = "Serie de tiempo 1", x = "Tiempo", y = "y")+
        theme(axis.text = element_text(size = 14, family = 'mono', color = 'black'),
              axis.title.x = element_text(face = "bold", colour = "black", size = rel(1)),
              axis.title.y = element_text(face = "bold", colour = "black", size = rel(1), angle = 0,vjust = 0.5))
../../_images/output_19_06.png

Gráfico de la PACF:

ggPacf(timeserie)+
        theme_minimal() +
        labs(title = "Serie de tiempo 1", x = "Tiempo", y = "y")+
        theme(axis.text = element_text(size = 14, family = 'mono', color = 'black'),
              axis.title.x = element_text(face = "bold", colour = "black", size = rel(1)),
              axis.title.y = element_text(face = "bold", colour = "black", size = rel(1), angle = 0,vjust = 0.5))
../../_images/output_21_06.png