Índice
- Qué son las series temporales
- Estructura y análisis de datos
- Predicción
- Puesta en producción
- Casos de uso
Recuerdo perfectamente el primer día que me explicaron qué eran las series temporales. La Almudena que estaba sentada en aquel máster de estadística de la Universidad de Santiago de Compostela estaba emocionada ante la idea de poder predecir el futuro. Y es que, como seres humanos, ¿podemos aspirar a algo más grandioso que saber qué ocurrirá mañana, dentro de una semana o de un mes?
Bueno, sí, en realidad sí: podemos aspirar a la paz en el mundo, a volar, a viajar libremente por el espacio, etc. Se me ocurren muchas cosas, pero, desde luego, esta también era una gran aspiración.
En este artículo os contaré un poco de lo que aprendí aquel día y todo lo que he ido descubriendo a lo largo de mi carrera profesional, ya que, sin buscarlo, las series temporales han sido protagonistas de muchos de los proyectos en los que he participado. Y es que, una vez que las conoces, te das cuenta de la cantidad de problemas que pueden resolver.
Hablaremos sobre los datos que necesitamos en este tipo de problemas, cómo tratarlos, qué librerías usar para hacer predicciones, cómo poner en producción estos modelos y algunos casos de uso. Sí, también hay IA…
1. Qué son las series temporales
Empecemos por el principio, ¿qué son las series temporales? Una serie temporal es una secuencia de datos ordenados en el tiempo, donde cada observación representa un valor registrado en un instante o período específico. Estas series pueden ser discretas (cuando los datos se recopilan en intervalos regulares, como las ventas diarias de una tienda) o continuas (cuando la medición ocurre en todo momento, como la temperatura en un sensor).
Desde un punto de vista más técnico, una serie temporal es una sucesión de valores Xt observados en instantes de tiempo t, donde el índice temporal juega un papel fundamental en la estructura de los datos. Se expresa como:
{Xt}t∊T
donde T representa el conjunto de tiempos en el que se registran las observaciones, que puede ser discreto (t∊ Z+ , como días, meses, años) o continuo (t∊R+, como mediciones en tiempo real)
2. Estructura y análisis de datos
Como mencionamos anteriormente, los datos de series temporales tienen características únicas que los diferencian de otros tipos de datos. Para comprender mejor cómo se estructuran y qué información pueden proporcionar, veamos un ejemplo visual de cómo se representarían.
A continuación, presentamos una muestra de datos de series temporales que ilustran cómo evolucionan las ventas diariamente:
Fecha | Ventas | Temperatura | Promoción |
2024-01-01 | 58.07 | 20.00 | 0 |
2024-01-02 | 67.28 | 21.01 | 0 |
2024-01-03 | 60.70 | 22.01 | 0 |
2024-01-04 | 77.63 | 22.98 | 0 |
2024-01-05 | 69.17 | 23.93 | 1 |
2024-01-06 | 65.76 | 24.84 | 0 |
2024-01-07 | 67.71 | 25.70 | 0 |
2024-01-08 | 67.48 | 26.50 | 0 |
2024-01-09 | 65.96 | 27.23 | 0 |
Como explicamos en la introducción, una serie temporal es una secuencia de datos ordenados en el tiempo, donde cada observación representa un valor registrado en un instante o período específico. En el ejemplo, el instante temporal son días y nuestra variable de interés, o valor registrado, son las ventas. Como vemos, hay otras variables que acompañan a las ventas que están recogidas en el mismo instante temporal como son temperatura y promoción ya que estás variables pueden ayudar más tarde a predecir las ventas, que sería nuestro objetivo.
Las series temporales, al depender del tiempo como variable fundamental, presentan desafíos específicos en términos de calidad de datos. A continuación, exploramos los problemas de calidad de datos más comunes en series temporales y las estrategias para solucionarlos.
- Datos faltantes: Registros ausentes debido a fallos en sensores, errores en la recolección de datos o interrupciones en la transmisión.
- Estrategias comunes:imputación (media, mediana, interpolación), modelos específicos como Kalman Filters o imputación con modelos predictivos. No es recomendable eliminar los registros nulos, cada dato cuenta.
- Errores de medición: Valores erróneos causados por fallos en los sensores, errores humanos o ruido en la señal.
- Estrategias: detección de outliers mediante z-score, IQR, modelos de detección de anomalías.
Cuando trabajamos con series temporales, es fundamental comprender sus características clave, ya que estas definen su estructura y comportamiento. Estas propiedades no solo influyen en cómo se analizan los datos, sino también en qué modelos y técnicas son más adecuados para su procesamiento y predicción.
- Tendencia: Es la evolución general de la serie a lo largo del tiempo (creciente, decreciente o estacionaria). En el ejemplo, la tendencia es creciente ya que el número de venta aumenta con el tiempo.
- Estacionalidad: Presencia de patrones que se repiten en intervalos regulares (diarios, semanales, mensuales, anuales). En el ejemplo, presenta patrones semanales ya que el número de ventas aumenta cuando es fin de semana. En el gráfico hemos sombreado los días que se corresponden a fin de semana para apreciar esta característica.
- Ruido (o error aleatorio): Variabilidad aleatoria en la serie temporal que no sigue un patrón sistemático y que no puede explicarse por la tendencia o la estacionalidad. En el ejemplo, el ruido representa fluctuaciones impredecibles en el número de ventas debido a factores externos como el clima, eventos inesperados o errores en la medición. En el gráfico, estas variaciones aleatorias pueden observarse como pequeños cambios irregulares en los valores diarios, sin una estructura clara.
Una vez hemos definido estas componentes básicas, podemos dividir las series temporales en dos tipos en función de cómo las componentes se relacionan entre sí: aditivas y multiplicativas.
- Series temporales aditivas. Se expresan como:
Xt=Tt +St+Et
Donde Xt es el valor observado de la serie temporal, Tt es la tendencia, St es la estacionalidad y Et el ruido o error aleatorio
Aquí, los componentes (tendencia, estacionalidad y ruido) se suman entre sí. Este tipo de series se utiliza cuando la variación estacional es constante en magnitud o cuando la estacionalidad no cambia significativamente con el nivel de la serie
- Series temporales multiplicativas. Se expresan como
Xt=Tt ✕ St ✕ Et
Donde Xt es el valor observado de la serie temporal, Tt es la tendencia, St es la estacionalidad y Et el ruido o error aleatorio
Aquí, los componentes se multiplican en lugar de sumarse. Se utilizan este tipo de series cuando la estacionalidad depende del nivel de la serie (es decir, la amplitud de la variación estacional cambia con el tiempo) o cuando los efectos de la tendencia amplifican o reducen las fluctuaciones estacionales.
Cuando hemos analizado todos estos factores, empezamos a tener pistas de cómo de fácil será modelar nuestra serie temporal para tener buenas predicciones. Por ejemplo, cuanto más claros sean los patrones y la tendencia, más sencillo será ajustar el modelo y obtener errores más bajos, sin necesidad de realizar grandes transformaciones en los datos. Esta afirmación no es magia, es ciencia: Si una serie tiene una tendencia clara (creciente o decreciente), los modelos pueden ajustarse con mayor facilidad, utilizando regresiones o técnicas de suavizado. Si hay una estacionalidad evidente (por ejemplo, ventas que aumentan en diciembre y disminuyen en enero), se pueden utilizar modelos que capturan estos efectos. Al final, utilizar series temporales para predecir, es aprender del pasado para predecir el futuro.
3. Predicción
Exploraremos la predicción de series temporales, desde los enfoques más clásicos, como los modelos ARIMA, hasta el uso de Inteligencia Artificial, pasando por librerías como Prophet, que marcaron un punto intermedio.
Una vez que contamos con datos con los que nos sentimos cómodas, podemos empezar a hacer predicciones. Pero antes, para entender hacia dónde nos dirigimos y cuándo nuestro modelo es lo suficientemente bueno, analizaremos las características de un modelo correctamente ajustado y es que en las series temporales es más cierto que nunca eso de que no todo es accuracy. Para que unas predicciones sean fiables ha de verificarse lo siguiente:
- Los residuos deben ser ruido blanco (sin patrones):Un modelo bien ajustado debe generar residuos aleatorios, sin correlaciones sistemáticas. Esto significa que el modelo ha capturado toda la información relevante de la serie temporal. ¿Cómo verificarlo?
- El gráfico de residuos estandarizados debe mostrar valores fluctuando alrededor de 0 sin tendencia evidente.
- La Función de Autocorrelación (ACF) de los residuos debe mostrar que todos los coeficientes están dentro del intervalo de confianza.
- La Prueba de Ljung-Box debe indicar que los residuos no tienen correlación significativa.
- Residuos con varianza constante (homocedasticidad)
- No debe haber zonas con alta y baja dispersión de errores en el gráfico de residuos.
- Prueba de Breusch-Pagan: p-valor > 0.05 indica que la varianza es constante.
- Los residuos deben seguir una distribución normal: Esto asegura que las predicciones tengan intervalos de confianza precisos y que no haya valores extremos mal modelados. ¿Cómo verificarlo?
- Histograma de residuos debe parecerse a una distribución normal.
- El Q-Q Plot debe mostrar los puntos distribuidos a lo largo de una línea recta, indicando que los residuos siguen una distribución normal sin grandes desviaciones o valores atípicos.
- Prueba de Jarque-Bera debe tener un p-valor > 0.05 (no se rechaza la normalidad).
- No debe haber sobreajuste: El modelo debe ser lo suficientemente complejo para capturar la dinámica de la serie, pero no más complejo de lo necesario. ¿Cómo verificarlo?
- Comparar el AIC/BIC con modelos alternativos: Un modelo más simple con un AIC/BIC similar es preferible.
- Coeficientes del modelo significativos: Todos los coeficientes AR/MA deben tener un p-valor < 0.05.
- La predicción dentro de la muestra debe ser razonable: El modelo debe ajustarse bien a los datos históricos sin generar errores sistemáticos. ¿Cómo verificarlo?
- Comparar los valores reales con los predichos: Las predicciones dentro de la muestra no deben desviarse sistemáticamente.
- Errores de predicción bajos: Se deben medir métricas como RMSE o MAPE.
- Si MAPE < 10%, el modelo tiene una buena precisión.
- Si MAPE > 20%, el modelo puede mejorar.
Ahora que conocemos las características clave de un modelo bien ajustado, exploraremos distintos enfoques para la predicción en series temporales y cómo cada uno puede ayudarnos a obtener mejores resultados.
1. Modelos Clásicos: ARIMA y SARIMA
Los modelos estadísticos han sido ampliamente utilizados para analizar y predecir series temporales. Entre ellos, ARIMA y SARIMA son dos enfoques populares. Funcionan bien con modelos aditivos y en el caso de modelos multiplicativos podemos utilizar alguna transformación logarítmica para manejar la estacionalidad
- ARIMA (AutoRegressive Integrated Moving Average) se basa en la combinación de componentes autorregresivos, de promedios móviles y de integración para modelar la evolución de una serie temporal. Se expresa con los parámetros (p, d, q), que indican el orden del modelo autorregresivo, el grado de diferenciación y el orden del promedio móvil, respectivamente. También existe la variante ARIMAX, que permite incluir variables predictoras externas (exógenas) para mejorar la precisión del modelo.
- SARIMA (Seasonal ARIMA) extiende ARIMA incorporando factores estacionales, permitiendo modelar datos con patrones repetitivos en el tiempo. Su versión con variables exógenas se conoce como SARIMAX.
- Librerías en Python:
- statsmodels.tsa.arima.model.ARIMA para modelado clásico de ARIMA y SARIMA.
- pmdarima que facilita la selección automática de parámetros.
2. Prophet
Prophet es una herramienta diseñada para la predicción de series temporales, desarrollada por Meta. Está optimizada para manejar estacionalidades, eventos especiales y tendencias con cambios abruptos en los datos.
- Características principales:
- Modela tendencias de crecimiento lineal y logístico.
- Modelo para series aditivas
- Permite incluir efectos de días festivos y eventos externos para distintos países.
- Funciona bien con datos irregulares y valores faltantes.
- Permite la inclusión de variables predictoras (exógenas) para mejorar la precisión del modelo de manera simple y como aditias o multiplicativas.
- Librería en Python: prophet
3. Nixtla: Enfoques Modernos para Series Temporales
Nixtla ha desarrollado herramientas especializadas para la predicción de series temporales, combinando modelos estadísticos e Inteligencia Artificial. Es una librería versátil que tiene opciones tanto para series temporales aditivas como multiplicativas.
- StatsForecast: Implementa modelos estadísticos optimizados, incluyendo AutoARIMA, ETS y modelos exponenciales para series temporales de gran escala. También permite la inclusión de variables predictoras (exógenas) para mejorar la precisión de las predicciones.
- NeuralForecast: Ofrece modelos basados en redes neuronales diseñados específicamente para la predicción de series temporales, con la capacidad de integrar múltiples variables predictoras.
- TimeGPT: Modelo de predicción basado en aprendizaje profundo, optimizado para múltiples industrias y disponible a través de una API de pago.
- Librerías en Python:
- statsforecast para modelos estadísticos optimizados.
- neuralforecast para modelos de deep learning en series temporales.
Característica | ARIMA/SARIMA | Prophet | Nixtla |
Tipo de modelo | Estadístico | Modelo estructural aditivo | Estadístico y aprendizaje profundo |
Manejo de estacionalidad | SARIMA lo permite | Sí, detecta automáticamente | Sí, con modelos avanzados |
Flexibilidad con datos faltantes | Requiere imputación previa | Sí, tolera datos faltantes | Sí, maneja datos faltantes |
Automatización de hiperparámetros | No automática (pmdarima lo facilita) | Sí | Sí |
Facilidad de uso | Intermedio | Alta | Intermedio |
Capacidad de modelar múltiples series | No | No | Sí |
Uso de aprendizaje profundo | No | No | Sí (NeuralForecast, TimeGPT) |
Soporte para eventos especiales | No | Sí | Sí |
Optimización para grandes volúmenes de datos | Limitado | Moderado | Alta |
4. Puesta en producción

En el mundo del aprendizaje automático, no basta con construir un modelo preciso; también es fundamental entrenarlo de manera eficiente y, sobre todo, desplegarlo correctamente para que aporte valor en un entorno de producción. La nube ofrece múltiples herramientas para abordar estos desafíos, pero la elección de la mejor estrategia dependerá del tipo de modelo, la infraestructura disponible y los requisitos del negocio.
A continuación, exploramos las principales opciones para la puesta en producción y el entrenamiento de modelos en la nube, comparando las soluciones disponibles en Azure, AWS y Google Cloud.
- Inferencia por lotes (batch inference):Cuando no se requiere una respuesta inmediata, los modelos pueden ejecutarse de forma periódica sobre grandes volúmenes de datos. Este enfoque es ideal para tareas como la predicción de demanda, el análisis de tendencias o la detección de anomalías en datos históricos. Por ejemplo: Una empresa de energía ejecuta su modelo de predicción de consumo eléctrico cada día a medianoche para estimar la demanda del día siguiente y ajustar la producción.
- Inferencia en tiempo real (online inference): Algunos modelos requieren generar predicciones en milisegundos, especialmente en entornos donde los datos cambian constantemente y se necesita una reacción inmediata. Esto es clave en sistemas de monitoreo en vivo o optimización dinámica basada en datos de streaming. Ejemplo: Un sistema de control de tráfico en una ciudad usa un modelo de series temporales para predecir la congestión en tiempo real y ajustar los semáforos automáticamente.
- Serverless vs contenedores: La decisión entre una arquitectura serverless y el uso de contenedores depende del tamaño del modelo y la carga de trabajo:
- Serverless (Azure Functions, AWS Lambda, Cloud Functions): Ideal para modelos ligeros que deben ejecutarse rápidamente sin necesidad de gestionar infraestructura. Ejemplo: Un modelo de previsión meteorológica que se ejecuta cada hora para actualizar la estimación de precipitaciones.
- Contenedores (Kubernetes: AKS, EKS, GKE): Recomendado para modelos más grandes o que necesitan estar activos continuamente, permitiendo una mayor flexibilidad y escalabilidad. Ejemplo: Un modelo de predicción de demanda en una empresa de logística, que se ejecuta en tiempo real a medida que llegan nuevas órdenes y datos de transporte.
- MLOps: Para modelos que deben actualizarse con nuevos datos de forma regular, se utilizan prácticas de MLOps, que permiten gestionar la actualización del modelo sin intervención manual. Ejemplo: Un banco utiliza Azure Machine Learning Pipelines para reentrenar su modelo de predicción del riesgo de impago cada semana, incorporando los últimos datos de transacciones.
Estrategia | Azure | AWS | Google Cloud |
Inferencia en tiempo real | Azure Machine Learning Endpoints | SageMaker Endpoints | Vertex AI Endpoints |
Inferencia por lotes | Azure Batch AI | SageMaker Batch Transform | Vertex AI Batch Predictions |
Serverless | Azure Functions | AWS Lambda | Cloud Functions |
Contenedores | Azure Kubernetes Service (AKS) | Elastic Kubernetes Service (EKS) | Google Kubernetes Engine (GKE) |
MLOps | AML Pipelines | SageMaker Pipelines | Vertex AI Pipelines |
Cuando hablamos de puesta en producción, no solo nos referimos al despliegue del modelo, sino también a su mantenimiento y actualización automática. Para que un modelo de series temporales siga siendo preciso, es crucial definir la estrategia de entrenamiento adecuada.
Existen tres tipos principales de entrenamiento, cada uno con su propósito y aplicación:
- Entrenamiento inicial: Se ejecuta una única vez para desarrollar el modelo y optimizar sus hiperparámetros.
- Reentrenamiento periódico: Se programa en intervalos regulares (diario, semanal, mensual) para actualizar el modelo con los datos más recientes y evitar la degradación de su rendimiento.
- Reentrenamiento bajo demanda: Se activa solo cuando se detecta una caída en el rendimiento del modelo, ya sea por cambios en los datos o por una disminución en la precisión de las predicciones.
5. Casos de uso
Para que, al igual que yo, empecéis a ver las series temporales como la solución a numerosos problemas, compartiré un par de casos de uso recientes en los que hemos aplicado esta técnica con éxito.
Las series temporales son ampliamente utilizadas en la predicción de demanda, por lo que son muy conocidas en entornos industriales y en la gestión de la cadena de suministro. Sin embargo, puede que no sea tan evidente su aplicación en otros ámbitos, como la predicción del flujo de pasajeros y pasajeras en un aeropuerto. Anticipar la demanda en este contexto no solo optimiza la planificación operativa, sino que también permite una contratación más eficiente del personal. Esto se traduce en una mejor experiencia tanto para los trabajadores y trabajadoras, que pueden organizarse mejor sin verse desbordados, como para los pasajeros y pasajeras, que reciben un servicio de mayor calidad.
Otro caso de uso fascinante es la predicción de la demanda de red móvil. Gracias a las series temporales, es posible anticipar los momentos y lugares de mayor consumo, permitiendo a los operadores optimizar la infraestructura y garantizar que los usuarios siempre dispongan de la conectividad que necesitan, justo cuando la necesitan.
Las series temporales nos ayudan a predecir el futuro, como si tuviéramos una bola de cristal, pero con el respaldo de las matemáticas. Si quieres ser una pitonisa con buenos argumentos y las predicciones más fiables del mercado, aprende series temporales.