Home > Doc > Analisi delle serie storiche con R > Verifica dell’esistenza di un trend nella stagionalità

Analisi delle serie storiche con R

Verifica dell’esistenza di un trend nella stagionalità

Una volta stimata la componente stagionale è necessario e opportuno verificare che la stagionalità nel corso degli anni non presenti un qualche trend, si parla in tal caso di trend-stagionalità. Un modo semplice ed immediato è quello di ricorrere alla funzione seaplot()del package ast. Nel nostro caso la stagionalità è costante in tutti i mesi, infatti (Graf. 12):

library(ast)

seaplot(stag.tsr)

Consideriamo un altro caso caratterizzato dalla presenza di un trend nella componente stagionale. Abbiamo la serie storica della stagionalità dei ricavi mensili di un’azienda dal 1998 al 2003 stimata con il metodo stl().

Clicca per ingrandire

Dal Graf. 13 emerge come in questo caso la stagionalità non è costante da un anno all’altro ma presenta un trend all’incirca lineare per quasi tutti i mesi dell’anno. In tale circostanza è necessario stimare questo trendstagionalità attraverso la regressione lineare (modello di stagionalità variabile). Se la stagionalità oscilla intorno ad un dato valore costante, ed è probabile che tali oscillazioni sia di natura casuale, una stima della stagionalità di quel mese può essere ottenuta con la media delle componenti stagionali che quel mese ha presentato nel corso dei vari anni (modello di stagionalità costante). Utilizzeremo delle funzioni costruite ad hoc, sfruttando la flessibilità di R, per stimare il trend della stagionalità. La prima funzione è la seguente:

estrai.stagionalita<-function(x.ts){

Questa funzione consente di creare un dataframe partendo dalla serie storica della stagionalità le cui colonne sono i mesi e le righe gli anni.

Clicca per ingrandire

Clicca per ingrandire

La seconda funzione consente di stimare le regressioni delle stagionalità dei 12 mesi sui vari anni e restituisce una lista con i coefficienti per le 12 regressioni calcolate. Come argomento di input viene passato il dataframe della stagionalità ottenuto in precedenza:

calcola.reg.stag<-function(st.df){

Se si vogliono estrarre i coefficienti delle 12 regressioni stimate si può usare questa funzione passando come argomento di input g:

Per ottenere un dataframe che contiene i coefficienti di regressione si può usare questa funzione:

coef.df<-function(coeff){as.data.frame(do.call("rbind",coeff))}

La seguente funzione permette di ottenere la serie storica dei valori del trend della stagionalità stimato con le regressioni:

Clicca per ingrandire

Come si può vedere dal grafico (Graf. 14) il trend stagionalità può essere ben stimato con una retta. Un modo più generale per “interpolare” ciascuna sottoserie mensile con un opportuno stimatore, a seconda del tipo di trend, è quello di usare la funzione smoothts(). Con l’ultima funzione che esaminiamo si ottiene una stima della stagionalità dei dodici mesi di un anno specificato come argomento assieme ai coefficienti delle 12 regressioni stimate:

Clicca per ingrandire

Ci viene fornita in tal modo una stima della componente stagionale relativa ai dodici mesi del 2004.

Vito Ricci

Successivo: Tests di specificazione

Sommario: Index