• Saltar a la navegación principal
  • Saltar al contenido principal
Logo Codificando Bits

Codificando Bits

  • Academia
    • Rutas
    • Cursos
    • Proyectos
    • Tutoriales
  • Acceder
  • Suscribirse

Métodos simples para generar pronósticos en Series de Tiempo

La generación de pronósticos sobre Series de Tiempo es una aplicación muy común en Ciencia de Datos y Machine Learning. El objetivo principal de este tipo de aplicación es predecir valores a futuro de la serie con base en su comportamiento histórico.

Aunque existen técnicas avanzadas para generar este tipo de predicciones, como por ejemplo el uso de modelos autorregresivos o incluso Redes Neuronales, también existen métodos relativamente simples que muchas veces funcionan de manera adecuada (e incluso mejor que métodos más sofisticados).

Estos métodos permiten generar pronósticos precisos bajo ciertas condiciones o pueden ser usados como el punto de partida (modelo base o baseline) para luego desarrollar y evaluar modelos más complejos.

Así que en este artículo vamos a analizar la idea básica de los diferentes métodos simples que existen para realizar pronósticos sobre Series de Tiempo. Analizaremos cómo funcionan, sus características matemáticas y en qué situaciones específicas los podemos utilizar para generar este tipo de predicciones.

1. El método ingenuo (Naïve)

El método Naïve (que traduciría al Español como método ingenuo) es el más sencillo de todos los métodos de pronóstico.

Recordemos que la idea central de generar predicciones es tomar un registro histórico y, a futuro, tratar de determinar cómo se comportaría la serie. El método ingenuo asume que la serie no tiene grandes variaciones en su comportamiento a lo largo del tiempo.

¿Cómo funciona el método näive?

Para entender su funcionamiento, supongamos que tenemos una serie de tiempo que representa el precio de una acción en la bolsa, como se muestra a continuación (en azul):

El método näive (o ingenuo) para pronosticar Series de Tiempo
El método näive (o ingenuo) para pronosticar Series de Tiempo

En esta Serie de Tiempo el registro histórico va desde el año 2014 hasta mayo de 2015. Y supongamos que queremos saber cuál sería el valor de la acción para el siguiente día, es decir, predecir el valor para el 2 de mayo de 2015.

Al observar la gráfica de este comportamiento, vemos que la serie sí cambia entre un día y otro, pero tiene oscilaciones contenidas en un rango entre 25 y 30. El precio de esta acción no cambia de manera abrupta, es decir, no da saltos ni muy hacia arriba ni muy hacia abajo.

Para generar la predicción, este método toma el último valor conocido de la serie (en rojo en la figura anterior) en el registro histórico (por ejemplo, el valor del 1 de mayo de 2015) y asume que la predicción del siguiente día simplemente será igual a la del día anterior. Entonces, para el 2 de mayo de 2015, el valor predicho será exactamente el mismo que se tenía para el 1 de mayo de 2015.

Al graficar esta predicción a futuro (la línea de color violeta en la figura anterior), veremos que, si no actualizamos el registro histórico, ese valor se mantiene constante en el tiempo. Como los valores predichos estarán alrededor de 27, esto no se aleja demasiado del rango histórico de oscilación que tenemos (entre 25 y 30).

Así que este es el método näive, que funciona adecuadamente siempre y cuando la serie no experimente grandes variaciones.

Limitaciones del método ingenuo

A pesar de su simplicidad, este método presenta varios inconvenientes en ciertas situaciones.

Una de estas situaciones es la presencia de tendencia en la Serie. La tendencia en una Serie de Tiempo indica que sus valores crecen o decrecen a lo largo del tiempo.

Por ejemplo, si observamos una porción de la misma serie desde julio de 2015 hasta más o menos agosto de 2017, la serie comienza alrededor de los 25 pero termina cerca de los 45:

El método ingenuo para pronosticar Series de Tiempo no funciona adecuadamente cuando la serie tiene tendencia
El método ingenuo para pronosticar Series de Tiempo no funciona adecuadamente cuando la serie tiene tendencia

Acá es evidente la presencia de tendencia en la Serie, pues ha habido un incremento del valor de la acción durante este periodo. Si aplicamos el método ingenuo, la predicción tomaría el último registro histórico (en rojo en la figura de arriba) y propagaría ese valor hacia adelante en el tiempo (línea de color violeta en la figura anterior) y por tanto la predicción constante no coincidiría con la tendencia creciente de la serie, haciendo que el método resulte inadecuado en este caso.

Otra situación en la cual no funciona adecuadamente el método ingenuo es cuando la Serie de Tiempo presenta estacionalidad o ciclos.

La estacionalidad de una Serie nos indica un comportamiento periódico (los picos máximos y mínimos se repiten con cierta regularidad), mientras que un ciclo ocurre cuando hay subidas y bajadas a lo largo del tiempo que alcanzan máximos y mínimos.

Por ejemplo, en la figura de abajo (en azul) vemos una Serie de Tiempo con ciclos: caídas cercanas a 50 y subidas a 65 en ese periodo de tiempo. Si intentamos generar predicciones con el método ingenuo sobre esta Serie, el valor propagado de forma constante (línea de color violeta en la figura de arriba) no coincidirá en absoluto con los máximos y mínimos futuros que caracterizan a la Serie:

El método näive para pronosticar Series de Tiempo tampoco resulta adecuado cuando la Serie de Tiempo es cíclica (como en la figura) o estacional
El método näive para pronosticar Series de Tiempo tampoco resulta adecuado cuando la Serie de Tiempo es cíclica (como en la figura) o estacional

2. El método estacional ingenuo (naïve estacional)

El segundo método simple para pronosticar Series de Tiempo es el método estacional ingenuo (naïve estacional) y su nombre proviene de que se aplica precisamente a Series de Tiempo que son estacionales.

Recordemos que una serie de tiempo es estacional cuando su comportamiento se repite con cierta periodicidad, es decir, cuando alcanza valores máximos y mínimos a intervalos conocidos de tiempo.

Mecanismo de predicción estacional

Imaginemos un ejemplo de una Serie de Tiempo (en azul en la figura de abajo) donde el eje horizontal (el tiempo) está en días y va desde el día 0 hasta el día 400:

El método näive estacional para pronosticar Series de Tiempo
El método näive estacional para pronosticar Series de Tiempo

En esta Serie observamos un patrón periódico claro:

  • Los valores máximos se alcanzan cada 100 días (en el día 0, día 100, día 200, día 300…).
  • Los valores mínimos también se alcanzan con esa misma periodicidad (en el día 50, día 150, día 250…).

Así que en este caso podemos usar el método näive estacional. Este método parte de la premisa de que, para predecir el comportamiento de la serie a futuro, simplemente tendremos que replicar los periodos históricos de la serie.

¿Qué quiere decir esto? Que si llegamos al día 400 y queremos saber el comportamiento de la serie del día 400 al día 500 a futuro, simplemente tenemos que tomar los 100 días anteriores. Es decir, tomamos el periodo desde el día 300 hasta el día 400 (la porción resaltada en color rojo en la figura anterior) y lo replicamos idénticamente para generar las predicciones en el nuevo intervalo de tiempo (de 400 a 500, la curva de color violeta en la figura de arriba).

Es decir, el pronóstico a futuro es simplemente una copia del último periodo histórico de la Serie.

Este método de pronóstico es simple pero funciona únicamente cuando tenemos una serie puramente estacional. No funcionaría si por ejemplo la serie, además de la estacionalidad, tiene tendencia (crece o decrece en el tiempo) o si se mantiene constante como en el caso del primer método.

3. El método de deriva (drift)

El tercer método simple para generación de pronósticos de Series de Tiempo es el método de deriva, que se aplica para el caso en el cual tenemos series de tiempo que contienen únicamente un componente de tendencia (ya sea creciente o decreciente), pero sin estacionalidad.

Formulación matemática del ajuste

Entendamos este método: supongamos que tenemos una serie de tiempo que va desde el día 0 hasta el día 500 (en azul en la figura de abajo):

El método de deriva (o drift) para pronosticar Series de Tiempo
El método de deriva (o drift) para pronosticar Series de Tiempo

Vemos que esta serie tiene pequeñas oscilaciones, pero su comportamiento general es claramente creciente. Comienza más o menos en 5 y llega, para el día 500, a un valor de más o menos 50.

Además, notamos que ese crecimiento es lineal: podríamos trazar una línea recta que nos indique ese incremento (la línea de color amarillo en la figura anterior).

Entonces, el método de deriva consiste en tomar este registro histórico de la serie de tiempo y estimar la ecuación de una línea recta que se ajuste a dicho comportamiento histórico. Esta ecuación tendría más o menos esta forma:

$$ Valor = m \cdot t + b $$

donde:

  • $Valor$: es la variable dependiente (el eje vertical).
  • $m$: es la pendiente o la inclinación de la línea recta.
  • $t$: es la variable temporal.
  • $b$: Es el corte con el eje vertical (que para nuestro caso sería más o menos el valor inicial de 5).

Si logramos estimar, a partir de este comportamiento histórico, la ecuación de la recta que aproxima el crecimiento lineal, ya podemos comenzar a generar predicciones. Para pronosticar los valores futuros (por ejemplo, entre los días 500 y 600), solo tendríamos que reemplazar la variable tiempo por los valores futuros en la ecuación. Conociendo la pendiente y el corte, estimaríamos el valor a futuro (que corresponde a la recta de color violeta en la figura de arriba).

Este método de generación de pronósticos con deriva funciona cuando la serie solo tiene tendencia. Si hay estacionalidad o ausencia de tendencia, el método falla.

Además, podemos extender esta misma idea a casos donde la tendencia no sea lineal, por ejemplo cuando la serie tiene tendencia cuadrática o cúbica. En estos casos el proceso se reduciría a encontrar la ecuación de ese polinomio correspondiente.

4. El método de deriva estacional

El cuarto y último método simple es el método de deriva estacional. Y como su nombre lo indica, combina las dos ideas anteriores.

Aquí vamos a asumir que la Serie de Tiempo tiene tanto una tendencia (que puede ser creciente o decreciente) como algún tipo de estacionalidad, como se muestra en la figura de abajo (curva de color azul):

El método de deriva estacional para pronosticar Series de Tiempo
El método de deriva estacional para pronosticar Series de Tiempo

Combinación de componentes

Para entender cómo funciona este método, tomemos el ejemplo de la serie de la figura anterior. En este caso vemos que tiene ciertas oscilaciones a lo largo del tiempo (estacionalidad), pero además el valor de la serie se va incrementando: comienza más o menos en 5 y termina cerca de 50.

Como tenemos la combinación de estos dos elementos (tendencia y estacionalidad), el método procede de la siguiente forma si queremos predecir el comportamiento entre el día 500 y el día 600:

  1. Descomposición: primero, se debe determinar la periodicidad que tiene la serie (extraer el componente estacional).
  2. Estimación de tendencia: luego, se debe estimar la tendencia lineal de la serie, es decir, encontrar la ecuación de la línea recta correspondiente.
  3. Pronóstico: finalmente, replicamos ese componente estacional a futuro, pero le agregamos el crecimiento de la línea de tendencia.

Así, en la figura anterior la curva amarillo representa los componentes estacional y de tendencia extraídos de la Serie, mientras que la curva de color violeta muestra la predicción que se obtendría con este método.

Conclusión

Los cuatro métodos que acabamos de ver (ingenuo, estacional ingenuo, deriva y deriva estacional), son realmente simples pero en muchas aplicaciones pueden terminar siendo muy efectivos al momento de generar pronósticos de Series de Tiempo.

Y el uso que hagamos de estos métodos dependerá de las características de las series que estemos procesando: si no tienen variaciones abruptas, si su tendencia y estacionalidad son bastante predecibles o si son una combinación exacta de estos elementos.

Incluso, cuando nos enfrentamos a series mucho más complejas donde estos métodos ya no resultarán útiles por sí solos, podemos aprovecharlos para crear un modelo base o de referencia (baseline). Esto nos servirá para posteriormente construir modelos avanzados y comparar su desempeño contra estos enfoques sencillos y directos.

De hecho, si te interesa ver de forma práctica cómo usar estas y otras técnicas más sofisticadas para generar pronósticos sobre series, te invito a darle una mirada a la especialización en Series de Tiempo disponible acá en la Academia, donde encontrarás varios cursos enfocados en diferentes herramientas de análisis y predicción aplicados a este campo de la Ciencia de Datos.

© Codificando Bits, LLC | Blog | Contacto | Servicios | Acerca de | Políticas

¿Has olvidado la contraseña?
¿Has perdido tu contraseña? Por favor, introduce tu nombre de usuario o dirección de correo electrónico. Recibirás por correo electrónico un enlace para crear una nueva contraseña.
body::-webkit-scrollbar { width: 7px; } body::-webkit-scrollbar-track { border-radius: 10px; background: #f0f0f0; } body::-webkit-scrollbar-thumb { border-radius: 50px; background: #dfdbdb }