Guía completa para el Análisis de Series de Tiempo

En este post veremos una guía completa con todas las fases que generalmente se requieren para llevar a cabo el Análisis de Series de Tiempo.

Al final del artículo encontrarás las instrucciones para descargar esta guía en formato PDF.

¡Así que listo, comencemos!

Video

Como siempre, en el canal de YouTube se encuentra el video de este post:

Introducción

El Análisis de Series de Tiempo es un área importantísima de la Ciencia de Datos, pero existen muy pocos recursos en Internet que nos permitan tener una guía clara de los elementos a tener en cuenta al momento de realizar este análisis.

Así que en este artículo veremos una completa guía con todas las fases que generalmente se requieren para llevar a cabo este análisis.

Esta guía está organizada en seis partes. En primer lugar veremos qué es una serie de tiempo y algunos ejemplos. Después hablaremos de los tipos de análisis y las etapas preliminares; en la cuarta parte hablaremos del análisis de estacionariedad y de autocorrelación de una serie, para luego hablar del pre-procesamiento y finalizar con las diferentes técnicas de análisis existentes.

Qué es una serie de tiempo y algunos ejemplos

Una serie de tiempo es simplemente un conjunto de observaciones tomadas de forma secuencial en el tiempo.

Un ejemplo es el volumen diario de ventas de un producto: la observación es la cantidad de productos vendidos cada día y la variable tiempo son las horas (o minutos o segundos) del día transcurridas entre una y otra observación.

El comportamiento de una acción en la bolsa también es una serie de tiempo, donde las observaciones corresponden al valor de la acción por cada minuto transcurrido.

De hecho las señales eléctricas generadas por el cuerpo humano, o las señales sísmicas o el número de pasajeros movilizados por una aerolínea, son también ejemplos de series de tiempo.

Tipos de análisis

El análisis más simple es el descriptivo, que nos permite entender las características de nuestra serie. Así, en el caso del número de pasajeros de una aerolínea, este análisis nos permite por ejemplo identificar épocas de alta o baja demanda.

Un análisis más exhaustivo es el explicativo o inferencial, en donde intentamos explicar las razones que dan origen al comportamiento observado en la serie. Por ejemplo, si en el caso del número de pasajeros movilizado por una aerolínea vemos una tendencia decreciente a partir de marzo de 2020, podemos inferir que esto puede ser debido a la aparición de una pandemia. Aquí estamos encontrando una relación causa-efecto (es decir estamos haciendo inferencias).

Y finalmente se encuentra el análisis predictivo, el cual usa la información histórica de la serie para predecir su comportamiento a futuro. En el caso de la serie de tiempo de la aerolínea, podríamos tomar el comportamiento estacional de la serie para predecir la demanda de los siguientes seis meses, por ejemplo.

Etapas preliminares del análisis

Un paso previo, antes de realizar el análisis de la serie, es tener experticia en el ámbito de aplicación. Si por ejemplo queremos crear un sistema de apoyo diagnóstico basado en señales electrocardiográficas, necesariamente debemos saber interpretar el contenido de este tipo de series de tiempo. Sólo así podremos realizar adecuadamente las diferentes fases del análisis y lograremos interpretar adecuadamente los resultados del mismo.

El segundo paso es definir claramente el objetivo del análisis. Por ejemplo, en el caso del comportamiento en la demanda de pasajeros nos podemos preguntar: ¿queremos analizar sólo una o múltiples rutas? ¿queremos analizar los picos o sólo los valles en la demanda? ¿queremos determinar las razones del incremento o reducción en la demanda? o ¿queremos recolectar datos históricos para luego hacer predicciones? Al establecer claramente el objetivo podremos definir claramente la ruta a seguir en este análisis.

El tercer paso previo es la recolección de los datos. Habiendo definido los objetivos podemos determinar la frecuencia temporal, es decir la periodicidad con que debemos adquirir los datos (años, meses, días, horas, minutos, etc.). y también la granularidad, es decir su nivel de cobertura (si por ejemplo nos enfocaremos en las rutas de una ciudad o una región en particular, o en todas las rutas disponibles, en el caso de la demanda de pasajeros). Estos dos elementos dependerán precisamente del objetivo del análisis.

El siguiente paso es crear un mapa mental de estos datos usando el análisis exploratorio. La herramienta más útil en este caso es la visualización de la serie a través de una gráfica de tiempo, poniendo en el eje vertical las observaciones y en el eje horizontal la variable tiempo. Con esta sencilla gráfica podremos entender el comportamiento de la señal, si hay por ejemplo algún tipo de periodicidad, o si la escala de tiempo que estamos usando es adecuada o no, así como detectar problemas potenciales (datos faltantes o datos extremos).

Otra herramienta un poco más sofisticada es la determinación de los componentes de la serie. Estos pueden ser sistemáticos (como el nivel, la tendencia y la estacionalidad) o no sistemáticos como el ruido que inevitablemente es un elemento que no se encuentra bajo nuestro control y que siempre estará presente en mayor o menor grado.

Y, dependiendo del análisis que realicemos posteriormente, estos componentes sistemáticos pueden ser representados de manera aditiva (es decir: la serie como la suma de esos componentes) o multiplicativa (es decir la serie como la multiplicación de dichos componentes).

Estacionariedad y función de autocorrelación de la serie de tiempo

Muchos métodos estadísticos para el análisis de las series requieren como paso previo verificar la estacionariedad de la señal. Esta estacionariedad hace referencia a que las propiedades estadísticas de la serie se mantienen sin cambios en el tiempo.

Por otra parte, la función de autocorrelación es el resultado de comparar la señal consigo misma y es útil para identificar por ejemplo patrones de estacionalidad o tendencias lineales.

Pre-procesamiento de la serie de tiempo

Con el pre-procesamiento lo que haremos será preparar los datos antes de realizar el análisis.

Un primer paso es analizar los datos faltantes, o “huecos” en la serie de tiempo. En este caso existen alternativas como la imputación y la eliminación para el manejo de este tipo de datos.

El segundo paso es garantizar un espaciamiento temporal uniforme. Si por ejemplo hemos adquirido la serie a partir de diferentes fuentes y cada una usa una resolución temporal diferente, debemos uniformizar estas resoluciones para poder posteriormente procesar la serie.

En este caso podemos sub-muestrear (o diezmar) la serie, es decir reducir la cantidad de observaciones, o sobre-muestrearla, es decir incrementar su resolución temporal (usando diferentes técnicas de interpolación).

El tercer paso es el manejo de valores extremos. Acá podemos decidir eliminarlos o preservarlos, dependiendo de las características de la serie y del objetivo del análisis.

Por ejemplo, en el caso de un terremoto la serie de tiempo tendrá mayores amplitudes: en este caso NO las eliminamos. Pero por ejemplo en una señal electroencefalográfica el movimiento de los ojos genera señales de amplitud mucho mayor a la de la actividad cerebral que no contienen información relevante: en este caso debemos intentar eliminarlas.

El cuarto paso es elegir el horizonte de tiempo del análisis, es decir el tamaño del registro histórico que usaremos para realizar el análisis. Si por ejemplo queremos analizar una estrategia de inversión en la bolsa a largo plazo, el horizonte de tiempo debería estar en la escala de meses o incluso años. Pero si nuestra estrategia es de corto plazo tal vez resulte mejor mirar el comportamiento de la acción en los últimos días o incluso en las últimas horas.

Y por último tenemos la partición de los datos, que se aplica sólo en los casos en los cuales realicemos un análisis predictivo. En este caso, a diferencia de lo que se hace en el Machine Learning convencional, debemos preservar la correlación existente entre observaciones consecutivas dentro de la serie, por lo que la partición se hace generando dos sub-series: una de entrenamiento con las primeras observaciones y una de validación con las observaciones restantes.

El tamaño de cada sub-serie depende en últimas del tipo de predicción que queramos hacer. Si por ejemplo queremos predecir el comportamiento de una señal sísmica en un horizonte de 10 min, y nuestra serie original es una grabación de 120 min entonces se sugiere definir la duración de la serie de validación lo más cercano al tipo de predicción a realizar (10 min). Es decir que en este caso tendríamos una serie de entrenamiento equivalente a los primeros 110 min, y la de validación equivalente a la última parte de 10 min.

Análisis de la serie de tiempo

Y finalmente, habiendo completado estas fases, llegamos al análisis de la serie de tiempo, que como lo mencioné al comienzo del artículo puede ser descriptivo, explicativo o predictivo.

En el descriptivo simplemente resumimos los resultados del análisis exploratorio y los resultados de las pruebas de estacionariedad y autocorrelación que mencionamos hace un momento. Podemos además usar gráficas de la serie de tiempo para ver la presencia de estos componentes.

En el análisis explicativo o inferencial buscamos encontrar relaciones causa-efecto entre la serie observada y la hipótesis que queremos explicar.

Y el tercer tipo de análisis es el predictivo en donde la idea es obtener valores futuros de la serie a partir de su comportamiento histórico. En este análisis existen dos enfoques principales: los basados en modelos y los basados en datos.

El análisis predictivo basado en modelos usa ecuaciones matemáticas o estadísticas, conocidas como “modelos”, para explicar el comportamiento de la serie y generar las predicciones. Generalmente se usa cuando la serie satisface condiciones de estacionariedad o cuando tiene cierta periodicidad o tendencias.

En este primer grupo se encuentran modelos de regresión linear o polinómica, y también los modelos Auto-Regresivos (AR, Auto-regressive) y los de media móvil (moving average). De hecho, al combinar estos conceptos de auto-regresión y media móvil, podemos tener los conocidos modelos ARMA (Auto-regressive Moving Average) y ARIMA (Auto-regressive Integrated Moving Average, que son de los más usados convencionalmente.

Por otra parte, el análisis predicitivo basado en datos incorpora métodos que aprenden a identificar patrones en la serie y no asumen condiciones como la estacionariedad u otras condiciones estadísticas.

En este segundo grupo se usa generalmente un enfoque de Machine Learning, o métodos más sofisticados como el Deep Learning para identificar patrones en series de tiempo y realizar posteriormente tareas de regresión o clasificación.

Enlace de descarga de la guía

Suscríbete a la newsletter mensual de Codificando Bits y recibe el enlace de descarga de la guía en tu e-mail:

Conclusión

Muy bien, con esto tenemos una guía de lo que considero son los principales elementos a tener en cuenta en el análisis de series de tiempo, desde la captura de los datos, pasando por su pre-procesamiento y análisis exploratorio, hasta los tres diferentes enfoques usados en este análisis.

Otros artículos que te pueden interesar