8 Tecniche per Modellare la Stagionalità

8 Techniques for Seasonality Modeling

Come gestire la stagionalità per le previsioni

Foto di Clark Young su Unsplash

Questo articolo è un seguito di un post precedente. Lì, abbiamo identificato 3 tipi di pattern stagionali.

Qui, impareremo:

  • Come descrivere la stagionalità di una serie temporale.
  • Esamineremo 8 approcci che è possibile utilizzare per modellare la stagionalità.

Modellazione dei pattern stagionali

La stagionalità si riferisce a pattern ripetibili che si ripetono durante un certo periodo. È una fonte importante di variazione che è importante modellare.

Una serie temporale e la sua versione stagionalmente regolata. La fonte dei dati è nella sezione successiva. Immagine dell'autore.

Ci sono diversi modi per gestire la stagionalità. Alcuni approcci rimuovono la componente stagionale prima della modellazione. I dati stagionalmente regolati (una serie temporale meno la componente stagionale) mettono in evidenza effetti a lungo termine come tendenze o cicli economici. Altri approcci aggiungono variabili extra che catturano la natura ciclica della stagionalità.

Prima di esaminare diversi metodi, creiamo una serie temporale e descriviamo i suoi pattern stagionali.

Esempio di analisi

Utilizzeremo lo stesso processo che abbiamo utilizzato nell’articolo precedente (vedi anche riferimento [1]):

periodo = 12 # serie mensilesize = 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)

Ecco come appare questa serie:

Serie temporale artificiale con una stagionalità stocastica stazionaria. Immagine dell'autore.

Possiamo iniziare descrivendo il pattern stagionale dalla sua intensità:

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