Autores:
Arellano Alavarez Sergio Ivan
Cárdenas Rodríguez Dulce
González Jiménez Alejandro
Introducción
Las empresas se mueven en su vida diaria dentro de un contexto altamente incierto, ya que existen muchas variables que afectan sus resultados; estas variables pueden ser incontrolables, y dentro de ellas se puede hablar de diferentes tipos como: políticas, económicas, socioculturales, tecnológicas, ecológicas y legales, que repercuten de forma relevante en los costos de producción, inventarios, y especialmente en la estimación de las ventas. Es ahí, en ese último aspecto, donde se puede disminuir el margen de incertidumbre del futuro.
Muchos gerentes piensan que los pronósticos de ventas son la pieza de información más importante de su plan de mercadeo, y no están equivocados porque:
¿A quién no le gustaría conocer el futuro?
¿A quién no le gustaría saber qué pasaría si haciendo algunos cambios las ventas se podrían afectar positiva o negativamente?
Como definición: El pronóstico de ventas es una estimación de eventos futuros, siempre con base en hechos del pasado, y dentro de un período de tiempo determinado, con el propósito específico de reducir la incertidumbre de los eventos y poder apoyar la acertada toma de decisiones para prepararse ante dichos acontecimientos.
La función auto.arima de R es una opción rápida para pronosticar
La función auto.arima esta incluida en la librería forecast y proporciona una opción rápida para construir modelos y pronósticos con series temporales, debido a que evalúa entre todos los posibles modelos, al mejor, considerando diversos criterios: estacionariedad, estacionalidad, diferencias, entre otras.
Pero, ¿Cómo se utiliza?
A continuación explicaremos cuales son los pasos a seguir tomado de un ejemplo del economista Casares Félix (2017):
Lo primero que tenemos que hacer es instalar las siguientes librerías en RStudio:
#install.packages(“forecast”)
#install.packages(“openxlsx”)
#install.packages(“readxl”)
Después debemos llamar a las librerías:
library(forecast)
library(readxl)
El primer programa sirve para realizar proyecciones y es la que contiene la función auto.arima, el segundo carga bases de datos de excel a RStudio.
El siguiente paso es importar los datos de excel a RStudio
setwd("C:\\documnetos\\autoarima")
data<-read_xls("base.xls", detecDates=T)
data[,2]<- data[,2]/100
La función read.xlsx1 la utilizamos para cargar bases de excel a RStudio a través de la librería openxlsx. En la tercera línea se indica que la segunda columna hay que dividirla entre 1000, para convertir la variable a millones de dólares, ya que los datos son de una empresa estadounidense. En seguida como estamos trabajando con datos de serie de tiempo y no esta configurado como tal tenemos que realizar la configuración a una serie temporal, en la que tendrá inicio en el año 2004 mes 8(agosto) y tendrá una frecuencia de 12 que nos indica que será anual.
tsdata<-ts(data,start=c(2004,8)frequency=12)
En este ejemplo para realizar un auto pronóstico, lo único que tenemos que hacer es utilizar la función auto.arima y guardar los resultados en una carpeta con el nombre que elijamos y llamar los resultados con la función summary. Se observa que se esta utilizando la segunda columna de la matriz tsdata.
modelo<-auto.arima(tsdata[,2])
summary(modelo)
Casare Félix 2017
En esta gráfica observamos que la función auto.arima selecciona entre varios posibles modelos el que mejor predice y además realiza transformaciones de la variable; en caso de que no sea estacionaria, adicionalmente realiza una detección de estacionalidad en la serie, además construye modelos ARIMA. También arroja criterios de predictibilidad, los cuales ayudan a evaluar la capacidad predictiva de los modelos incluyendo los criterios de la información AIC,AICC,BIC.
Observemos como se presenta la variable en un estudio realizado con datos de una cartera comercial de un banco.
pronostico<-forecast(modelo,12,level=95)
plot(pronostico,main="Pronóstico con auto.arima", sub="Fuentes:SBS\ylab="Millones USD")
casares Félix 2017
La función forecast te permite nombrar a la variable con el nombre que te sea conveniente para el estudio, además con el número de proyecciones fuera de la muestra. También se puede construir intervalos de confianza a cualquier nivel.
Si se quisieran obtener esos pronósticos en una matriz, se puede realizar con la siguiente función:
matriz.pronosticos<-data.frame(pronostico$mean,pronostico$lower,pronostico$upper)
Donde se guardarán los pronósticos con los intervalos de confianza solicitados.
Como podemos ver la función auto.arima para hacer modelos matemáticos del programa forecast es una herramienta útil para pronosticar las ventas de cualquier empresa que quiera saber cuál será la demanda del mercado y utilizarlo como una ventaja competitiva.
Dentro de RStudio podemos encontrar un demo de una aerolínea (la base de datos se llama x-AirPassengers) para practicar el pronóstico de ventas. Enseguida se presentan los pasos para que puedas usarlo:
Primero cargamos la base de datos:
x=AirPassengers
plot(x)
Podemos observar que la serie tiene tendencia creciente, bastante marcada y también tiene un comportamiento estacional, la varianza depende del tiempo. En seguida utilizaremos la función auto.arima nuevamente cargamos la siguiente librería:
library(forecast)
## Registered S3 method overwritten by 'xts':
## method from
## as.zoo.xts zoo
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
## Registered S3 methods overwritten by 'forecast':
## method from
## fitted.fracdiff fracdiff
## residuals.fracdiff fracdiff
Luego le asignamos una variable a la funcion auto.arima:
fm1=auto.arima(x)
auto.arima(AirPassengers)
## Series: AirPassengers
## ARIMA(2,1,1)(0,1,0)[12]
##
## Coefficients:
## ar1 ar2 ma1
## 0.5960 0.2143 -0.9819
## s.e. 0.0888 0.0880 0.0292
##
## sigma^2 estimated as 132.3: log likelihood=-504.92
## AIC=1017.85 AICc=1018.17 BIC=1029.35
El programa me dice que el mejor modelo puede ser un arima diferenciado en la parte ordinaria y tiene una media móvil de orden 1 y en la parte estacional tiene una diferenciación.
Enseguida hacemos un summary del modelo para poder tener ciertos indicadores de la capacidad predictiva del modelo.
modelo<- auto.arima(AirPassengers)
summary(modelo)
## Series: AirPassengers
## ARIMA(2,1,1)(0,1,0)[12]
##
## Coefficients:
## ar1 ar2 ma1
## 0.5960 0.2143 -0.9819
## s.e. 0.0888 0.0880 0.0292
##
## sigma^2 estimated as 132.3: log likelihood=-504.92
## AIC=1017.85 AICc=1018.17 BIC=1029.35
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set 1.3423 10.84619 7.86754 0.420698 2.800458 0.245628
## ACF1
## Training set -0.00124847
Como lo muestra el programa tenemos los coeficientes, tenemos ciertos criterios y la capacidad predictiva del modelo.
luego realizamos la grafica para ver como se muestra la proyección:
plot(forecast(modelo,12,level =95))
main= "Pronostico con auto.arima"
En la grafica observamos que arroja el pronóstico sobre la variable original, no sobre la variable diferenciada ordinal estacionalmente. Estamos pidiendo que nos muestre el pronóstico 12 meses hacia adelante y que nos muestre la gráfica para poder ver mejor la tendencia de los datos. Observamos en la gráfica que el mide bastante bien la tendencia y también la parte estacional.
La función auto.arima es una opción para elegir el mejor modelo matemático que mejor predice el pronóstico de ventas en una organización, con esto los administradores podrán ganar tiempo para tomar mejores las decisiones.
Bibliografía:
Casare F.(2017).La función auto.arma de R:una opción rápida para pronosticar. Recuperado el 10 de julio de 2017 de
https://www.betametrica.ec/2017/05/15/autoarima-r/
RStudio (2019). Ejemplo tomado de la plataforma.