3.6 Decomposizione STL

La decomposizione STL costituisce un metodo versatile e robusto per decomporre le serie storiche. STL è l’acronimo di “Seasonal and Trend decomposition using Loess”, dove con loess si fa riferimento ad un metodo non parametrico per stimare le relazioni non lineari. Il metodo STL è stato sviluppato da R. B. Cleveland et al. (1990).

La procedura STL ha diversi vantaggi sia rispetto alla decomposizione classica che ai metodi SEATS e X-11:

  • A differenza di SEATS ed X-11, STL riesce a trattare qualsiasi tipo di stagionalità, non solo per dati mensili e trimestrali.
  • La componente stagionale può cambiare nel tempo e l’intensità di tale variazione può essere controllata dall’utente.
  • Anche il livello di lisciamento della componente trend-ciclo può essere controllato dall’utente.
  • Può essere robusto rispetto agli outlier (nel senso che l’ente può decidere di utilizzare una decomposizione robusta), in modo che la presenza di valori anomali occasionali non influenzi le stime delle componenti trend-ciclo e stagionale. Tuttavia, i valori anomali possono influenzare la componente residuale.

D’altra parte, STL presenta anche alcuni svantaggi. In particolare, questa procedura non gestisce automaticamente gli effetti di calendario ed è implementata solo per decomposizioni additive.

Una decomposizione moltiplicativa può essere ottenuta applicando inizialmente una trasformazione logaritmica dei dati e poi ritrasformando le componenti ottenute dalla procedura STL. Tramite la trasformazione di Box-Cox è possibile ottenere delle decomposizioni intermedie tra il tipo additivo e moltiplicativo: in questo caso bisogna scegliere \(0<\lambda<1\). Un valore di \(\lambda=0\) restituisce una decomposizione moltiplicativa, mentre \(\lambda=1\) produce una decomposizione additiva.

Il modo migliore per padroneggiare la procedura STL è quello di analizzare alcuni esempi e sperimentare le diverse impostazioni. In figura 3.7 è mostrato un esempio di decomposizione STL applicata alla serie storica dell’occupazione totale nel settore della vendita al dettaglio negli Stati Uniti. La figura 3.18 mostra invece una decomposizione STL alternativa in cui il trend-ciclo è più flessibile, la stagionalità è costante nel tempo ed è stata utilizzata una procedura robusta.

us_retail_employment %>%
  model(
    STL(Employed ~ trend(window = 7) +
                   season(window = "periodic"),
    robust = TRUE)) %>%
  components() %>%
  autoplot()
Occupazione totale nel settore della vendita al dettaglio negli Stati Uniti (pannello in alto) e le tre componenti additive ottenute tramite una decomposizione STL robusta con trend-ciclo flessibile e stagionalità costante.

Figura 3.18: Occupazione totale nel settore della vendita al dettaglio negli Stati Uniti (pannello in alto) e le tre componenti additive ottenute tramite una decomposizione STL robusta con trend-ciclo flessibile e stagionalità costante.

I due parametri principali da scegliere quando si usa una decomposizione STL sono la finestra della componente trend-ciclo, trend(window = ?), e la finestra della componente stagionale, season(window = ?). Questi due parametri controllano quanto rapidamente le due componenti possono cambiare, dove valori più piccoli permettono cambiamenti più repentini. Entrambi i parametri dovrebbero essere numeri dispari: il primo parametro rappresenta il numero di osservazioni consecutive da utilizzare per stimare la componente trend-ciclo; il secondo parametro corrisponde al numero di anni consecutivi da utilizzare nella stima di ogni valore associato alla componente stagionale. Fissare la finestra stagionale pari ad infinito equivale a forzare la componente stagionale ad essere periodica season(window='periodic'), ovvero costante negli anni. Questo corrisponde al caso mostrato in figura 3.18.

I valori di default della funzione STL() sono impostati ad una finestra stagionale season(window=13) e ad una finestra relativa alla componente trend-ciclo scelta automaticamente in base al periodo stagionale. Il parametro predefinito nel caso di dati mensili è trend(window=21). Tali parametri generalmente forniscono un buon bilanciamento tra l’overfitting della stagionalità e la possibilità che essa cambi lentamente nel tempo. Ma, come c’è da aspettarsi da una procedura automatica, i parametri predefiniti spesso richiedono una serie di aggiustamenti in base al tipo di dati a disposizione. In questo caso l’impostazione predefinita della finestra relativa al trend-ciclo produce una componente trend-ciclo troppo rigida. Come risultato, il segnale associato alla crisi finanziaria globale del 2008 è confluito nella componente residuale, come si può notare nel pannello inferiore della figura 3.7. In figura 3.18 si evince come la scelta di una finestra associata alla componente trend-ciclo più corta riesce a migliorare i risultati.

Bibliografia

Cleveland, R. B., Cleveland, W. S., McRae, J. E., & Terpenning, I. J. (1990). STL: A seasonal-trend decomposition procedure based on loess. Journal of Official Statistics, 6(1), 3–33. http://bit.ly/stl1990