0Pricing
Learn AI with Python · Lección

Componentes y estacionariedad de series temporales

Tendencia, estacionalidad, ruido, prueba ADF de estacionariedad y diferenciación para lograr la estacionariedad.

Componentes y estacionariedad de series temporales es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.

¿Qué es una serie temporal?

Una serie temporal consiste en datos indexados según el orden temporal, como las ventas diarias o la temperatura por hora. Como las observaciones están ordenadas y a menudo correlacionadas, se necesitan técnicas especiales; no puede simplemente barajar las filas como si fueran datos tabulares ordinarios.

Los tres componentes

La visión clásica descompone una serie en:

  • Tendencia: movimiento ascendente o descendente a largo plazo.
  • Estacionalidad: patrones que se repiten en períodos fijos (semanales, anuales).
  • Residuo: ruido aleatorio restante después de eliminar la tendencia y la estacionalidad.

Aditivo frente a multiplicativo

En un modelo aditivo: y = trend + seasonality + residual, que se utiliza cuando las variaciones estacionales tienen un tamaño constante.

En un modelo multiplicativo: y = trend * seasonality * residual, que se utiliza cuando las variaciones estacionales crecen junto con la tendencia.

seasonal_decompose

statsmodels puede separar automáticamente una serie en sus componentes.

from statsmodels.tsa.seasonal import seasonal_decompose

result = seasonal_decompose(series, model="additive", period=12)
result.trend
result.seasonal
result.resid

Visualización de la descomposición

Representar el resultado muestra cada componente apilado, lo que facilita observar la tendencia y la estacionalidad y ayuda a elegir un enfoque de predicción.

import matplotlib.pyplot as plt

result.plot()
plt.tight_layout()
plt.show()

¿Qué es la estacionariedad?

Una serie es estacionaria cuando sus propiedades estadísticas (media, varianza y autocorrelación) se mantienen constantes a lo largo del tiempo. Muchos modelos clásicos, como ARIMA, asumen estacionariedad, por lo que comprobarla y conseguirla es un primer paso fundamental.

Por qué importa la estacionariedad

Si la media cambia o la varianza crece descontroladamente con el tiempo, un modelo ajustado con datos iniciales no generalizará a datos posteriores. Eliminar la tendencia y estabilizar la varianza hace que la serie sea predecible de forma coherente.

La prueba ADF

La prueba de Dickey-Fuller aumentada (ADF) comprueba la estacionariedad. La hipótesis nula es "no estacionaria (tiene una raíz unitaria)". Un valor p inferior a 0.05 permite rechazar la hipótesis nula y considerar la serie estacionaria.

from statsmodels.tsa.stattools import adfuller

stat, pvalue, *_ = adfuller(series)
print("p-value:", pvalue)
# pvalue < 0.05  -> stationary

Conseguir la estacionariedad mediante diferenciación

La diferenciación resta cada valor del valor anterior, eliminando la tendencia. La diferenciación de primer orden suele resolver una tendencia lineal; aplíquela de nuevo si es necesario.

diff1 = series.diff().dropna()      # first difference
diff2 = series.diff().diff().dropna()  # second difference

Confirmación tras la diferenciación

Vuelva a ejecutar la prueba ADF sobre la serie diferenciada. Cuando el valor p baje de 0.05, habrá conseguido la estacionariedad y habrá registrado el orden de diferenciación d, que se incorpora directamente a ARIMA.

stat, pvalue, *_ = adfuller(series.diff().dropna())
print("p-value after differencing:", pvalue)

Otras transformaciones estabilizadoras

Si la varianza aumenta con el tiempo, una transformación log o Box-Cox la estabiliza antes de diferenciar. Combinar una transformación logarítmica con la diferenciación permite tratar muchas series reales con crecimiento multiplicativo.

import numpy as np

log_series = np.log(series)
stationary = log_series.diff().dropna()

Comprobación rápida

Compruebe su comprensión de la estacionariedad.

Resumen

Ha descompuesto series en tendencia, estacionalidad y residuo con seasonal_decompose, ha aprendido la diferencia entre modelos aditivos y multiplicativos, ha comprobado la estacionariedad con la prueba ADF y ha utilizado la diferenciación (orden d) para hacer estacionaria una serie. Siguiente tema: ARIMA y SARIMA.

Preguntas frecuentes

¿La lección «Componentes y estacionariedad de series temporales» es gratis?

Sí — el texto completo de «Componentes y estacionariedad de series temporales» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.

¿Qué aprenderé en «Componentes y estacionariedad de series temporales»?

Tendencia, estacionalidad, ruido, prueba ADF de estacionariedad y diferenciación para lograr la estacionariedad. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Learn AI with Python?

No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Componentes y estacionariedad de series temporales»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?

Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Componentes y estacionariedad de series temporales
  2. Modelos ARIMA y SARIMA
  3. Prophet para previsiones automatizadas
  4. LSTM para previsión de series temporales
← Volver a Learn AI with Python