8 Técnicas para Modelar la Estacionalidad

8 Técnicas Estacionalidad

Cómo manejar la estacionalidad para pronósticos

Foto de Clark Young en Unsplash

Este artículo es un seguimiento de una publicación anterior. Allí identificamos 3 tipos de patrones estacionales.

Aquí vamos a:

  • Aprender cómo describir la estacionalidad de una serie temporal.
  • Revisar 8 enfoques que puedes utilizar para modelar la estacionalidad.

Modelado de patrones estacionales

La estacionalidad se refiere a patrones repetibles que se repiten en un cierto período. Es una fuente importante de variación que es importante modelar.

Una serie temporal y su versión ajustada estacionalmente. La fuente de datos está en la siguiente sección. Imagen por el autor.

Existen varias formas de manejar la estacionalidad. Algunos enfoques eliminan el componente estacional antes de modelar. Los datos ajustados estacionalmente (una serie temporal menos el componente estacional) resaltan efectos a largo plazo como tendencias o ciclos empresariales. Otros enfoques añaden variables adicionales que capturan la naturaleza cíclica de la estacionalidad.

Antes de revisar diferentes métodos, creemos una serie temporal y describamos sus patrones estacionales.

Ejemplo de análisis

Utilizaremos el mismo proceso que hicimos en el artículo anterior (ver también referencia [1]):

period = 12 # series mensualsize = 120beta1 = np.linspace(-.6, .3, num=size)beta2 = np.linspace(.6, -.3, num=size)sin1 = np.asarray([np.sin(2 * np.pi * i / 12) for i in np.arange(1, size + 1)])cos1 = np.asarray([np.cos(2 * np.pi * i / 12) for i in np.arange(1, size + 1)])xt = np.cumsum(np.random.normal(scale=0.1, size=size))yt = xt + beta1 * sin1 + beta2 * cos1 + np.random.normal(scale=0.1, size=size)yt = pd.Series(yt)

Así es como se ve esta serie:

Serie temporal artificial con estacionalidad estacionaria estocástica. Imagen por el autor.

Podemos comenzar describiendo el patrón estacional por su fuerza:

# https://github.com/vcerqueira/blog/tree/main/srcfrom src.seasonality import seasonal_strengthseasonal_strength(yt, period=12)# 0.90