Los caminos rápidos no me gustan, sin embargo, esta opción puede por lo menos dar luces para generar un buen modelo para realizar pronósticos.

La función auto.arima de la librería forecast (de largo, una de las mejores librerías de R), proporciona una opción rápida para construir pronósticos con series temporales, debido a que evalua entre todos los posibles modelos, al mejor modelo considerando diversos criterios: estacionariedad, estacionalidad, diferencias, entre otras.

Pero, ¿cómo se la utiliza?

Veamos:

Lo primero que tenemos que hacer es descarga la base de datos que vamos a utilizar aquí y llamar a las librerías que utilizaremos

library(forecast)
library(openxlsx)

La primera es la que servirá para realizar proyecciones, la segunda para cargar bases de excel a RStudio. Lo siguiente es setear el directorio y cargar la base de datos

setwd(«C:\\documentos\\autoarima»)

data<- read.xlsx(«base.xlsx», detectDates=T)

data[,2]<- data[,2]/1000

Note que la función read.xlsx es la que se utiliza para cargar bases de excel a R mediante la librería openxlsx, mientras que la tercera linea indica que la segunda columna hay que dividirla para 1000, para llevar la variable en estudio a millones USD.

Luego como se trata de una serie temporal, es necesario configurarla como tal, donde la serie tendrá inicio 2004 mes 8 y la frecuencia es 12 puesto que es mensual.

tsdata<-ts(data,start=c(2004,8),frequency=12)

Note que la linea comienza con «ts», siendo ts time serie.

Para realizar un auto pronóstico , basta con usar la función auto.arima y guardar los resultados en un objeto con cualquier nombre y llamar los resultados con la función summary. Puede observar que lo que se está utilizando es la columna 2 de la matriz tsdata (matriz que puede varias variables)

modelo<-auto.arima(tsdata[,2])

summary(modelo)

Imagen1

De la gráfica anteriormente se puede observar que la función auto.arima devuelve el posible mejor modelo de entre todos los modelos y realiza transformaciones de la variable de ser el caso que no sea estacionaria; adicionalmente, evalua presencia de estacionalidad en la serie y si existe este componente, construye modelos SARIMA.

Por otra parte, también devuelve los conocidos como criterios de predictibilidad, los cuales son utilizados para evaluar la capacidad predictiva de los modelos incluyendo los criterios de información AIC, AICC, BIC.

Veamos como luce el pronóstico de la variable en estudio (Cartera Comercial  de un Banco):

Imagen2

Estos son los comandos para construir este gráfico básico:

pronostico<- forecast(modelo,12,level=95)

plot(pronostico, main=»Pronóstico con auto.arima»,
sub=»Fuente:SBS\nElaboración:@CasaresFelix»,
ylab=»Millones USD»)

Note que la función forecast llama al objeto con el nombre modelo (puede colocar cualquier nombre), y el número de proyecciones fuera de la muestra; adicionalmente pude construir intervalos de confianza a cualquier nivel.

Finalmente, si quisiera obtener esos pronósticos en una matriz, basta con realizar los siguiente:

matriz.pronosticos <-data.frame(pronostico$mean,pronostico$lower,pronostico$upper)

Donde se guardarán los pronósticos con los intervalos de confianza solicitados.

Indudablemente la función auto.arima es más una ayuda que un instrumento final, debido a que es necesario que cada quien, evalúe las series en estudio paso a paso, y en base a la experiencia y a lo que dicta la teoría econométrica (estacionariedad, evaluación del modelo, capacidad predictiva, stress testing, entre otros.), se elaboren los modelos.

De todas formas, la función auto.arima no deja de ser útil y de fácil entendimiento.

Puedes seguir mis publicaciones vía:

Twitter

Facebook

Twitter

Blog Personal

Blog Académico


Nota: puedes solicitarme el script de RStudio para este ejemplo mediante cualquier de las vía de contacto anteriormente mencionadas o por correo.