Come modellare la molteplice stagionalità nelle serie temporali

Modellare la molteplice stagionalità nelle serie temporali

Gestione degli effetti stagionali in diversi periodi

Foto di Joshua Woroniecki su Unsplash

In questo articolo, imparerai come modellare la molteplice stagionalità nelle serie temporali. Affronteremo i seguenti argomenti:

  • Come decomporre una serie temporale utilizzando il metodo MSTL
  • Creazione di variabili esplicative che catturano la stagionalità complessa
  • Utilizzo di metodi predefiniti, con un esempio basato sul pacchetto di previsione Orbit.

Stagionalità complessa

La stagionalità si riferisce a cambiamenti sistematici che si ripetono con regolarità. Questi pattern sono collegati alla frequenza con cui viene osservata una serie temporale. Una serie temporale a bassa frequenza di solito contiene un singolo periodo stagionale. Ad esempio, le serie temporali mensili mostrano una stagionalità annuale.

Sempre più spesso, le serie temporali vengono raccolte con frequenze di campionamento più elevate, come giornaliera o oraria. Ciò porta a dataset più ampi con una stagionalità complessa. Una serie temporale giornaliera può mostrare pattern ripetitivi settimanali, mensili e annuali.

Ecco un esempio di una serie temporale oraria con stagionalità giornaliera e settimanale:

Serie temporale oraria con stagionalità giornaliera e settimanale. Dati e immagine artificiali creati dall'autore.

Al primo sguardo, non è chiaro che la serie temporale sopra riportata contenga più di un pattern stagionale. Gli effetti stagionali multipli possono sovrapporsi tra loro, rendendo difficile identificare tutti i periodi rilevanti.

Decomposizione con molteplice stagionalità

I metodi di decomposizione mirano a suddividere la serie temporale nelle sue parti fondamentali: trend, stagionalità e residui.

La maggior parte dei metodi è stata progettata per gestire la stagionalità in un singolo periodo predefinito. Esempi includono il metodo classico, x11 e STL, tra gli altri.

Il metodo STL è stato esteso per gestire la stagionalità multipla. MSTL (Multiple STL) è disponibile nel pacchetto Python di statsmodels:

import numpy as npfrom statsmodels.tsa.seasonal import MSTL# creazione di una serie temporale artificiale con stagionalità complessa# stagionalità giornaliera e settimanaleperiod1, period2 = 24, 24 * 7# 500 punti datidimensione = 500beta1…