Suavizamiento Exponencial Simple (Ejercicios Resueltos)

El método de Suavizamiento Exponencial Simple (conocido también como Alisamiento Exponencial o Suavización Exponencial Simple) corresponde a una de las metodologías más populares para realizar Pronósticos de Demanda al disponer de una serie de tiempo. En este contexto en el artículo Pronóstico de Demanda con Alisamiento Exponencial para distintos valores de Alfa se detalla la aplicación de este método simulando su comportamiento y ajuste a los datos de la demanda real para distintos valores del parámetro de suavización alfa (α). A continuación presentaremos un compendio de ejercicios resueltos de Suavizamiento Exponencial Simple y un resumen de los principales conceptos tras este método.

El pronóstico del período t (F_{t}) será igual al pronóstico del período anterior, es decir, del período t-1 (F_{t-1}) más alfa (α) por el error del período anterior (A_{t-1}-F_{t-1}), según se muestra en la fórmula a continuación:

Alisamiento Exponencial

Ejercicios Resueltos de Suavizamiento Exponencial Simple

Ejercicio N°1: Una empresa de consumo masivo lleva registro de la demanda mensual de uno de sus productos emblemáticos para un período de un año. Dicha información se presenta en la columna etiquetada Demanda en la imagen a continuación. Se requiere utilizar el método de suavizamiento exponencial simple considerando tres valores para el parámetro de suavizamiento alfa: 0,1; 0,5 y 0,9. Obtener el pronóstico del período 13 (mes de Enero del año siguiente) y evaluar el ajuste del método para cada uno de los valores de alfa propuestos.

suavizacion-exponencial-par

Recordar que el suavizado exponencial simple requiere de un primer pronóstico para su aplicación. En este caso hemos decidido generar un pronóstico a contar del segundo período (mes de Febrero) y asumir que dicho valor corresponde a la demanda real del mes anterior (mes de Enero o período 1). Este criterio por cierto es arbitrario y se podría seleccionar otro punto de partida, por ejemplo, un promedio para la demanda real de los 12 meses.

Adicionalmente en las columnas E, F y G de la imagen anterior se observa los pronósticos para alfa 0,1, 0,5 y 0,9, respectivamente. En particular se puede corroborar la fórmula utilizada para obtener el pronóstico del mes de Febrero utilizando α=0,1 (celda E5), donde los resultados han sido aproximados al entero más cercano.

Ejercicio N°2: Considerando la información del Ejercicio N°1 ¿Cuál de los 3 métodos tiene asociado una menor Desviación Absoluta Media (MAD)?.

Para obtener el MAD (Mean Absolute Deviation) o Desviación Absoluta Media, aplicamos el procedimiento descrito en el artículo Calculo del MAD y la Señal de Rastreo para un Pronóstico de Demanda. En la planilla interactiva a continuación puedes simular tanto los pronósticos como el comportamiento del MAD para distintos valores de alfa. Para ello basta con editar las celdas en color amarillo.

En caso de obtener un error del tipo #VALUE! ingrese los valores de α utilizando . (punto) como separador de decimal, por ejemplo, α=0.1.

Conclusión: El alfa que provee el menor MAD al período 12 entre las 3 alternativas evaluadas (0,1, 0,5 y 0,9) es α=0,1 (MAD de 449,7). En efecto se puede corroborar utilizando el módulo Predictor de Crystal Ball (según se describe en Cómo utilizar el Módulo Predictor en Crystal Ball para Promedio Móvil Simple y Suavizado Exponencial Simple) que α=0,001 es el valor de alfa que minimiza el MAD en este ejemplo.

crystal-ball-suavizado-expo

Ejercicio N°3: Asuma nuevamente la información del Ejercicio N°1 ¿Cuál de los 3 métodos tiene asociado un menor Error Porcentual Absoluto Medio (MAPE)?.

A continuación se presentan los resultados del cálculo del MAPE donde en particular se puede observar que la fórmula de cálculo es simplemente el promedio de los errores absolutos en términos porcentuales. Luego se concluye que al igual que en el Ejercicio N°2 el parámetro alfa que tiene mejor desempeño en relación al MAPE es α=0,1.

calculo-mape-suavizado-expo

Observación: En la pantalla de los resultados obtenidos con Predictor de Crystal Ball se observa que para α=0,001 el valor del MAPE es 22,43%. Te recomendamos verificar el resultado anterior haciendo uso del procedimiento anteriormente descrito.

Ejercicio N°4: Calcule y grafique la Señal de Rastreo (Tracking Signal o TS) para los métodos aplicados en el Ejercicio N°1.

señal-de-rastreo-suavizamie

Se observa que la Señal de Rastreo se encuentra en los límites comúnmente aceptados [-4,4] MAD. Adicionalmente no se observa una tendencia evidente en su comportamiento por lo cual no se evidencia la presencia de error sistemático. Criterios y antecedentes similares sobre la interpretación conceptual de este indicador de desempeño se aborda en el artículo Interpretación de la Señal de Rastreo de un Pronóstico de Demanda.

Conclusión: En general el método de Suavizamiento de Exponencial Simple tiene un mejor desempeño cuando la serie de tiempo no presenta tendencia ni estacionalidad marcada. En el caso de evidenciar alguno de estos componentes en la serie de tiempo (o ambos de forma simultanea) se recomienda explorar otros métodos de pronóstico como el Método de Suavizamiento Exponencial Ajustado a la Tendencia (Suavización Exponencial Doble) o el Método de Descomposición (entre otros).

patrones-series-de-tiempo

Tratamiento de Puntos Atípicos en Series de Tiempo con R Software

Los puntos atípicos (también denominados puntos aberrantes o outliers) siempre son un problema al momento de querer ajustar una serie de tiempo, o querer hacer predicciones para valores futuros. Recordamos al lector que una serie de tiempo se define como un conjunto de valores observados en un horizonte de tiempo y cumplen con ser equidistantes (por lo tanto, pueden ser observaciones tomadas por días, meses, trimestres, años, etc.).

Además, otra observación importante es que la decisión a tomar con respecto a qué se debe hacer con dichos valores es una elección que considera aspectos cuantitativos como cualitativos, ya que si bien se pueden utilizar test para decidir qué hacer con el punto, la decisión final siempre dependerá del modelador: pueden haber aspectos importantes en los datos que un test estadístico no es capaz de evaluar, y si el modelador cree que el punto debe estar por que representa un aspecto de la realidad, entonces se deberán asumir las consecuencias que implica dejar un punto que cuantitativamente puede ser considerado atípico.

En este artículo presentamos una forma de tratar puntos atípicos en una serie de tiempo. Los datos presentados se ordenan mensualmente en un horizonte de 8 años, y se utilizará R software (un programa freeware) para identificar y eliminar dichos puntos.

Siempre lo primero que debemos realizar al tener un conjunto de datos, es graficarlos para ver a priori su comportamiento. Este ejemplo utiliza una librería llamada “tseries”. Para descargarla, se debe seguir la siguiente instrucción: En el menú superior ir a la pestaña Paquetes:

Paquetes ==> Instalar Paquete(s)… ==> Seleccionar servidor ==> tseries

La siguiente porción de código permite cargar los datos, transformarlos en una serie y luego graficarlos.

#R Code
library(tseries) #Cargamos la librería
#Los datos están guardados en la variable data
data <- read.table("EjemploGEO.txt",header=T) 
#La serie de tiempo está guardada en la varaible fit
fit <- ts(data,frequency=12,start=2000)
#Dividimos la pantalla de gráfico en dos
par(mfrow=c(1,2))
#Graficamos la serie de tiempo y una caja con bigotes
plot(fit)
boxplot(fit)

El resultado se puede apreciar en la siguiente imagen:

datos atípicos series de tiempo

Como se puede ver, gráficamente podemos identificar dos puntos aberrantes, cerca del año 2002 y 2006. Además, un análisis mediante la caja con bigotes nos muestra cuatro puntos aberrantes. Este diagrama puede ser un poco más estricto, por lo tanto acá es importante destacar que es decisión del modelador sacar los cuatro, sólo dos (los de mayor impacto que se ven en el gráfico de la izquierda) o ninguno.

Para este ejemplo, consideraremos que vamos a sacar sólo los puntos que generan un mayor impacto en la serie, y son los que se pueden ver en el gráfico de la izquierda.

El análisis gráfico nos ayuda pero nunca es concluyente. Por lo anterior debemos utilizar siempre métodos cuantitativos para identificar los puntos (recordando nuevamente que la decisión sobre qué hacer con ellos depende tanto de factores cuantitativos como cualitativos).

Para poder identificar puntos outliers en la serie de tiempo, ocuparemos la librería “tsoutliers” la cual se puede descargar de la misma forma enseñada anteriormente.

#R Code
library(tsoutliers) #Cargamos la librería
#El comando tso identifica los puntos atípicos de la serie
outliers <- tso(fit) 
#Graficamos la nueva serie
plot(outliers)

El resultado se muestra a continuación:

dato atípico r software

Podemos ver que esta función logra identificar (y pone en rojo) los puntos que considera aberrantes en la serie, y no sólo hace eso, sino que gráfica una serie “ajustada” (en azul), calculando un nuevo valor para dichos puntos en base a la información de los otros puntos pertenecientes a los datos.

¿Qué hacer con los puntos aberrantes?: Podemos sacarlos, modificarlos o dejarlos como están. Si los sacamos perdemos información; pero si los dejamos como están afectarán en la predicción de los valores futuros.

Una primera aproximación en estos casos siempre es calcular un promedio de los valores que están cerca del punto donde se produce el dato atípico, además, los estadísticos han desarrollado métodos más sofisticados para tratar con ellos, y dejamos este estudio al lector.

Como mencionamos anteriormente, esta función genera un valor que se ajusta de acuerdo al comportamiento de los datos (como se puede ver en el gráfico azul), por lo que utilizaremos dichos valores para ajustar una nueva serie, la cual tendrá los puntos aberrantes corregidos (dejamos también al estudio del lector la forma en que esta función modifica los datos, lo cual se puede encontrar en la documentación de la función disponible vía web).

#R Code
#Obtenemos los valores modificados
newserie <- outliers$yadj 
#Dividimos la pantalla de gráficos en 2
par(mfrow=c(1,2))
#Graficamos la serie antigua y la nueva
plot(fit)
plot(newserie) 

serie de tiempo r software

Podemos ver la nueva forma que tiene la serie, al tener valores modificados para los puntos atípicos (cuidado: la serie ha cambiado su forma drásticamente debido a los puntos aberrantes, pero el efecto se incrementa ya que ha cambiado la escala a la que se muestran ambos gráficos, notar que en el de la izquierda llega hasta 2.500 y ahora sólo hasta 1.400).

Como hemos podido ver, este simple método nos ha permitido hacer un tratamiento sobre los puntos atípicos identificados en la serie de datos. Como hemos mencionado reiteradamente, existen varios métodos para poder hacer esto, y la decisión final siempre tendrá una parte subjetiva que depende del modelador, ya que los criterios pueden variar, y puede ser que el origen de los datos justifique (y permita) la existencia de los puntos aberrantes. Para concluir, con la modificación realizada ahora si podemos pensar en predecir los valores futuros de la serie.

Método de Suavizamiento Exponencial Ajustado a la Tendencia (Suavización Exponencial Doble)

Los métodos de pronóstico de demanda de series de tiempo como Suavizamiento Exponencial (Alisamiento Exponencial) y Media Móvil Simple, tienen un mejor desempeño cuando el patrón histórico de la demanda no evidencia tendencia ni estacionalidad marcada como se observa en el gráfico a continuación. En particular en el caso del Suavizamiento Exponencial, si la serie de tiempo tiene una tendencia creciente se tenderá a subestimar la demanda real y de forma análoga cuando la demanda presenta una tendencia decreciente el alisamiento exponencial tenderá a sobrestimar el valor de la demanda real.

patrones-series-de-tiempo

Para mejorar la calidad del pronóstico al observar una tendencia en la serie de tiempo se puede considerar el método de Suavizamiento Exponencial Doble, conocido también como Suavizamiento Exponencial Ajustado a la Tendencia o Método de Holt. Cabe recordar que una tendencia es un incremento o decremento sistemático en el promedio de la serie a través del tiempo. Luego, el método de Suavizamiento Exponencial Doble busca incorporar la tendencia en un pronóstico suavizado exponencialmente.

Para su cálculo se requieren dos constantes de suavizamiento: αβ, realizándose las siguientes estimaciones:

formula-suavizamiento-expon

Donde A_{t} es el promedio suavizado exponencialmente de la serie en el período t, T_{t} el promedio suavizado exponencialmente de la tendencia en el período t, α el parámetro de suavizamiento para el promedio, con un valor entre 0 y 1, β el parámetro de suavizamiento para la tendencia, con un valor entre 0 y 1 y F_{t+1} el pronóstico para el período t+1.

Ejemplo Suavizamiento Exponencial Doble

Un laboratorio clínico realiza exámenes de sangre cada semana. En promedio el laboratorio realizó 28 análisis de sangre cada semana durante las últimas cuatro semanas. Adicionalmente la tendencia en ese período fue de tres muestras adicionales por semana. La demanda en esta semana fue de 27 análisis de sangre. Si α=0,2 y β=0,2 se requiere calcular el pronóstico correspondiente a la semana próxima.

suavizamiento-exponencial-d

En el caso que el número real de exámenes en la semana 2 resultará ser 44, entonces el pronóstico actualizado para la semana 3 sería el siguiente:

ejemplo-suavizamiento-doble

A continuación se presenta un gráfico con el comportamiento de la demanda real y el pronóstico con Suavizamiento Exponencial Doble para los datos del ejemplo anterior.

grafico-suavizamiento-expon

Finalmente ponemos a disposición de nuestros usuarios una plantilla que permite editar los datos de la demanda real (celdas color amarillo claro) y los datos iniciales A_{0}T_{0} (celdas celestes), junto con el valor de los parámetros αβ. Al modificar la información de dichas celdas se actualiza automáticamente los pronósticos, el error de cada período, el MAD (Desviación Media Absoluta) y el gráfico que contrasta el comportamiento de la demanda real con el pronóstico.

En caso de obtener un error del tipo #VALUE! ingrese los valores de αβ utilizando . (punto) como separador de decimal, por ejemplo, α=0.2.

Cálculo de la Raíz del Error Cuadrático Medio o RMSE (Root Mean Squared Error)

La Raíz del Error Cuadrático Medio o RMSE (Root Mean Squared Error) es una medida de desempeño cuantitativa utilizada comúnmente para evaluar métodos de pronóstico de demanda. En este contexto RMSE consiste en la raíz cuadrada de la sumatoria de los errores cuadráticos. En comparación con la Desviación Media Absoluta o MAD, RMSE amplifica y penaliza con mayor fuerza aquellos errores de mayor magnitud. La fórmula de cálculo del RMSE se muestra a continuación:

\textrm{RMSE} = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (A_t - F_t)^2}

En el artículo Cómo utilizar el Módulo Predictor en Crystal Ball para Promedio Móvil Simple y Suavizado Exponencial Simple, describimos en detalle cómo utilizar el software Crystal Ball para desarrollar pronósticos de demanda basados en una serie de tiempo. Los datos utilizados fueron los siguientes:

serie-de-tiempo-predictor

Al utilizar el método de pronostico de Suavizamiento Exponencial con α=0,8439, se puede obtener fácilmente la Raíz del Error Cuadrático Medio (RMSE) con la ayuda de Excel tal como se muestra a continuación:

calculo-rmse-excel

En detalle el cálculo del RMSE consiste en:

\textrm{RMSE} = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (A_t - F_t)^2}= \sqrt{\frac{1}{11} \sum_{i=1}^{11} (e_t)^2}= \sqrt{\frac{1}{11}*31.847,07}\cong 53,81

Lo cual corrobora los resultados alcanzados en su momento con Crystal Ball:

resultados-predictor-cb

Cómo utilizar el Módulo Predictor en Crystal Ball para Promedio Móvil Simple y Suavizado Exponencial Simple

El software Oracle Crystal Ball (conocida comúnmente como Crystal Ball) es una aplicación compatible con hojas de cálculo para la elaboración de modelos predictivos, simulación y optimización. Una de sus características principales es que incorpora un módulo para el análisis de datos y proyecciones denominado Predictor sobre el cual presentaremos en este artículo algunos antecedentes básicos respecto a su funcionamiento.

Una vez instalado Crystal Ball se habilitará una nueva pestaña en el menú de navegación en la interfaz de Excel con nombre Crystall Ball donde se muestran las distintas herramientas que incorpora dicho programa. La siguiente imagen muestra un extracto de la visualización anterior con foco especial en el módulo Predictor en Crystal Ball según lo descrito anteriormente:

menu-crystal-ball-excel

A continuación para ilustrar respecto a la utilización del módulo Predictor para los métodos de Promedio Móvil Simple y Suavizado Exponencial Simple consideraremos los siguientes datos de demanda real de un producto tipo que utilizamos anteriormente en el artículo Error Porcentual Absoluto Medio (MAPE) en un Pronóstico de Demanda.

serie-de-tiempo-predictor

Luego seleccionamos el módulo Predictor.

predictor-crystal-ball

Crystal Ball reconoce automáticamente los datos de la serie de tiempo al menos que existan más de una serie en la hoja de cálculo, caso en el cual siempre estará disponible la opción de seleccionar los datos de origen. En nuestro ejemplo el rango de datos se encuentra entre la celda B2 y C14 de la planilla de cálculo. Las opciones y ajustes en este nivel están disponibles en el menu Datos de entrada.

seleccion-datos-predictor

A continuación seleccionamos Siguiente para pasar a las opciones de Atributos de datos. Por ejemplo se puede especificar que los datos están en meses (o según sea el caso), además de incluir información respecto a eventos relevantes en la serie de tiempo y el ajuste de valores atípicos u outliers. Para seguir avanzando se selecciona Siguiente.

atributo-de-datos-predictor

En el menú Métodos muestra los distintos métodos disponibles para su ejecución asociados a los datos de entrada. En este artículo arbitrariamente hemos decidido acotar el análisis a 2 métodos de series de tiempo ampliamente utilizados: Promedio Móvil Simple y Suavizado Exponencial Simple (conocido este último también como suavizamiento o alisamiento exponencial).

metodos-predictor

En el caso del método de medias móviles se ha considerado un promedio de 3 períodos o n=3 (sólo para fines ilustrativos, por cierto se puede seleccionar otro valor para n). Para ello se hace doble clic en el icono Promedio Móvil Simple:

promedio-movil-simple-predi

Para implementar la opción de n=3 se activa la casilla Parámetros de bloqueo y se ingresa Orden 3 y Aceptar.

parametros-de-bloqueo-3

Finalmente al seleccionar Siguiente se accede al menú de Opciones se puede seleccionar la medida de error que se desea utilizar para efectos de comparación de los métodos seleccionados en el paso anterior. En este caso hemos seleccionado el MAD o Desviación Absoluta Media no obstante también se puede seleccionar el Error Cuadrático Medio (RMSE) o Error de Porcentaje Medio Absoluto (MAPE).

opciones-predictor

Para terminar se debe Ejecutar (obtendremos una advertencia respecto a que existen muy pocos datos en la serie para generar proyecciones fiables. Si bien este comentario es válido, omitiremos su advertencia debido a que en esta instancia nos interesa mostrar cómo se utiliza la herramienta Predictor de Crystal Ball más que discutir lo adecuado que resulta realizar pronósticos con una baja densidad de datos).

resultados-predictor-cb

De los 2 métodos utilizados se obtiene que según el criterio del MAD (MAD=46,10) el que tiene mejor desempeño es Suavizado Exponencial Simple con alfa α=0,8439. El detalle de los pronósticos se puede consultar en el menú Ver y Tabla según se muestra a continuación:

ver-tabla-predictor
suavizamiento-crystal-ball

Observación: Si bien el cálculo del MAD no es explícito (sólo aparece el resultado de 46,10), se puede obtener fácilmente siguiendo el procedimiento que se muestra a continuación y que hemos abordado en el Blog anteriormente (cualquier diferencia menor se debe exclusivamente a los criterios de aproximación).

calculo-mad-crystal-ball