Series de tiempo, una herramienta para 'predecir' el futuro
POR ADRIÁN CASTILLO / BACKEND STAFF MANAGER & PRINCIPAL ENGINEER DE PAGO DE SERVICIOS EN HTECH
En el estudio de cualquier evento o fenómeno es común encontrarnos con secuencias de observaciones ordenadas en un periodo determinadoconocidas como series de tiempo. Hay muchos ejemplos de este tipo de datos, entre los que se encuentran los precios de las acciones de cierre diario de la bolsa, las cifras mensuales de desempleo, las tasas de delincuencia, las tasas de natalidad anuales, entre otros.
Las series de tiempo se utilizan normalmente en tareas de regresión y clasificación, con el fin de pronosticar cómo se desarrollará determinado fenómeno en el futuro. Su característica fundamental es que sus observaciones están correlacionadas.
Sin embargo, la mayoría de los métodos estadísticos están basados en muestras aleatorias que no son aplicables, como es el caso de la regresión lineal, por lo que se necesitan métodos diferentes.
Tipos de Series de tiempo
Hay dos tipos de series de tiempo. El primero son las series estacionarias y adquieren este nombre cuando el promedio y la varianza de los valores son constantes a medida que avanza el tiempo.
El segundo tipo son las series con tendencia, las cuales se tienen cuando el comportamiento de la serie sigue un patrón. En este tipo de series, aunque los valores continúen aumentando, siguen manteniendo el mismo patrón a través del tiempo.
¿Para qué sirven las series de tiempo?
El análisis de las series de tiempo nos sirve para visualizar y realizar un pronóstico de los valores que tendremos a futuro, tomando como base los valores previos de esta serie.
Los métodos tradicionales para obtener estos valores pueden ir desde el promedio móvil simple, el cual consiste en sumar todos los valores obtenidos hasta la fecha y obtener un valor promedio, para posteriormente multiplicar este promedio por el número total de elementos de la serie. El promedio móvil simple es una de las formas más sencillas para obtener un pronóstico, con el inconveniente de que no se puede detectar valores detendencia y las series estacionarias. Podríamos decir que este es un método simple para realizar un pronóstico, pero no el más efectivo.
Otro de los métodos más completos es el ARIMA (AutoRegressive Integrated Moving Average). El objetivo del modelo es realizar pronósticos basados en la diferencia de valores en la serie, en lugar de utilizar los valores actuales. Este modelo se compone de tres partes esenciales:
· Autoregresión (AR): se refiere a que el modelo puede detectar el cambio de los valores que se presentan a lo largo de las ventanas de tiempo.
· Integrada (I): es la parte que permite detectar si una serie es estacionaria.
· Promedio Móvil (MA): es la integración del modelo de promedios móviles para las predicciones.
Ahora se preguntarán por qué no utilizar siempre el modelo de ARIMA para la realización de pronósticos. La respuesta es simple: la cantidad de datos necesaria para el entrenamiento debe de ser lo suficientemente grande para poder realizar un pronóstico decente. Hay casos donde realizamos pronósticos dentro de un mismo mes, pero no se ajustan a la realidad debido a los pocos datos que se pueden tener actualmente; para casos donde se presenta una gran cantidad de valores históricos es recomendable revisar los métodos de vanguardia.
Estado del arte actual para el pronóstico de series de tiempo
Debido a la gran complejidad que requiere el estudio de las series de tiempo y la complejidad que éstas acarrean para conjuntos de datos muy largos se desarrolló el algoritmo ROCKET (RandOM Convolutional KErnal Transform), aprovechando el auge del deep learning y las redes neuronales.
ROCKET utiliza una red neuronal prentrenada, con la que transforma los datos de una serie de tiempo en un grupo de características, las cuales están listas para ser utilizadas en un modelo de machine learning y de esta manera realizar una predicción en base a ésta.
A continuación, se adjunta un ejemplo de cómo podemos aplicar el algoritmo de ROCKET en el lenguaje de programación Python.
Conclusión
Como podemos ver, las series de tiempo nos permiten la visualización y hacer pronósticos de fenómenos que ocurren espaciados por un periodo de tiempo constante. Su uso ayuda a las áreas de economía e ingeniería a hacer pronósticos sobre precios de las acciones, así como a calcular valores que aún no han ocurrido en base a los valores anteriores.