• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

The Machine Learners

Descubriendo la IA

  • Inicio
  • Libros ML
  • Contacto
  • Sobre Nosotros

Series Temporales – Introducción a esta técnica de predicción

Al comenzar tu andadura en la ciencia de datos y en Machine Learning quizá te des cuenta de lo importante que es el análisis de series temporales. Así que creemos que es clave entender el concepto desde lo básico para poder ir avanzando a temas más complejos. Vas a aprender qué son, cómo analizarlas y las claves para realizar pronósticos.

Índice

  • 1 Definición
  • 2 Componentes de una serie temporal
    • 2.1 Serie Aditiva
    • 2.2 Serie Multiplicativa
  • 3 Resumen

Definición

Cuando buscamos en Google qué es una serie temporal, el primer resultado que tenemos es, cómo no, Wikipedia:

Una serie temporal o cronológica es una sucesión de datos medidos en determinados momentos y ordenados cronológicamente.

https://es.wikipedia.org/wiki/Serie_temporal

En otras palabras, se trata de datos que se producen a lo largo del tiempo. Este orden cronológico es la clave diferenciadora entre datos que forman una serie temporal y los que no. Los datos pueden ser anuales, mensuales, diarios o incluso por nanosegundos.

Hay infinidad de tipos de datos que se presentan como serie temporal, y de ahí viene toda su importancia en el ámbito de Machine Learning. Vamos a ver unos ejemplos:

  • Mercado de valores. Las acciones varían su valor según avanzan las manecillas del reloj.
  • Ocupación de un hotel. El número de habitaciones ocupadas varía cada día.
  • Predicción de demanda de productos en McDonald’s. McDonald’s ha elaborado un sistema de recomendación de productos en los que tiene en cuenta la capacidad de generación del restaurante. Esta capacidad de generación y de demanda se calcula con el día o la hora (entre otros muchísimos factores).

Componentes de una serie temporal

Se trata de sacar información estadística relevante que nos ayude a comprender mejor el comportamiento de la serie temporal y también a realizar un mejor pronóstico en el futuro.

Por norma general, una señal temporal se puede descomponer en las siguientes partes:

  • Nivel: El valor medio en toda la serie.
  • Tendencia: el incremento o decremento del valor de la serie
  • Componente cíclica: la repetición de ciclos a corto tiempo, aunque no tiene por qué ser periódica.
  • Ruido: variación aleatoria de una serie.

Una vez que ya sabemos cuáles son las componentes de una serie temporal, tenemos que saber cómo extraer cada una. Por suerte, la librería statsmodels tiene una implementación para descomponer series temporales que es muy útil.

Lo primero que tenemos que saber, es que cada serie puede tener una composición diferente. Pueden ser aditivas o multiplicativa.

Serie Aditiva

Pertenecer a este tipo sugiere que la serie está representada por la suma de sus componentes:

	
y(t) = Level + Trend + Seasonality + Noise

Se trata de una serie lineal donde los cambios temporales tienen la misma cantidad. Esto implica que la tendencia es una línea recta y que las componentes cíclicas tienen la misma frecuencia y amplitud. Vamos a ver un ejemplo de cómo descomponerla con statsmodels:

from random import randrange
from matplotlib import pyplot
from statsmodels.tsa.seasonal import seasonal_decompose
series = [i+randrange(10) for i in range(1,100)]
result = seasonal_decompose(series, model='additive', freq=1)
result.plot()
pyplot.show()
Descomposici?n de serie temporal aditiva

Serie Multiplicativa

Esta tipología nos indica que las componentes se multiplican para formar la señal:

y(t) = Level + Trend + Seasonality + Noise

Se trata de una serie no lineal (como puede ser una señal cuadrática o exponencial por ejemplo). Los cambios aumentan o disminuyen con el tiempo. Esto implica que la tendencia es una curva y tanto la frecuencia como la amplitud son inconstantes.

from matplotlib import pyplot
from statsmodels.tsa.seasonal import seasonal_decompose
series = [i**2.0 for i in range(1,100)]
result = seasonal_decompose(series, model='multiplicative', freq=1)
result.plot()
pyplot.show()

Resumen

En este post introductorio sobre series temporales hemos podido aprender qué son y por qué son tan importantes a nivel de negocio a base de diferentes casos de uso.

Tambi?n hemos aprendido sobre las componentes primordiales de una serie temporal, los tipos de series que hay y a saber descomponerlas de manera automática gracias a la librería statsmodels.

Déjanos un comentario sobre el post, o sobre qué más te gustaría aprender!

Reader Interactions

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Primary Sidebar

Suscríbete

Síguenos en Medium.

Entradas Recientes

  • Estructuras de Datos en Python
  • Variables en Python: Todo lo que necesitas saber
  • Mejor editor de código para Python
  • Instala Anaconda para tus proyectos de Data Science
  • Qué es Python – El lenguaje de la ciencia de datos

Copyright © 2022 The Machine Learners