Concetti Chiave
- L'approccio classico alla decomposizione delle serie temporali si basa su un modello additivo, con errori distribuiti normalmente e indipendenti.
- Il pacchetto R offre diverse funzioni per la decomposizione, tra cui decompose(), stl() e tsr(), ognuna con caratteristiche specifiche.
- La funzione decompose() permette di analizzare sia modelli additivi che moltiplicativi, restituendo componenti come stagionalità, trend e errori.
- La funzione stl() utilizza il metodo loess per fornire stime più accurate nella decomposizione delle serie temporali rispetto a decompose().
- La funzione tsr() offre vari stimatori, come constant, poly(r), loess(r, g), gauss(r, g) e spline(g), per un'analisi flessibile delle serie temporali.
L'approccio più semplice della decomposizione classica è basata sul modello di tipo additivo:
Yt= Tt + St + εt
con εt ~ NID (0,σ2) ovvero supponendo che gli errori siano distribuiti normalmente con media zero e varianza costante e siano tra loro indipendenti. Tali ipotesi saranno verificate tramite appositi tests di specificazione del modello. R consente di determinare e stimare tali componenti con tre diverse funzioni: decompose() e stl() nel package stats, tsr() nel package ast.
Funzione decompose
La funzione decompose() può essere applicata sia al modello additivo che al modello moltiplicativo, per questo occorre specificarlo nel parametro type=c(“additive”, “multiplicative”).
> dec.fit
La funzione restituisce un oggetto con le seguenti componenti:
• seasonal, vettore con la stagionalità
• figure, stima della componente stagionale per i dodici mesi dell'anno
• trend, vettore con il trend della serie
• random, vettore con gli errori.
Si memorizzino in alcuni vettori le tre componenti ottenute:
> stag.dec[math]seasonal>br>> trend.dec>-dec.fit[/math]trend
> res.dec[math]random
Per otte
ere il grafico della decomposizio
e della serie:
> plot(dec.fit)
Funzio
e stl()
La funzio
e stl() fornisce delle stime migliori in quan o per la decomposizio
e usa il me odo loess:
> stl.fit> attributes(stl.fit)
[/math]names
[1] "time.series" "weights" "call" "win" "deg" "jump" "inner" "outer"
[1] \text{stl}
La funzio
e restituisce un ogget o le cui compo
enti possono essere memorizzate in vet ori
> stag.stltime.series[,1]
> trend.stl[math]time.series[,2]>br>> res.stl>-stl.fit[/math]
Il grafico della serie storica decomposta è il seguente
> plot(stl.fit,main="GRAFICO DELLA SERIE STORICA DECOMPOSTA- funzione stl")
Funzione tsr()
Si tratta di un'ulteriore funzione per la decomposizione di una serie temporale. Gli stimatori, detti smoothers, riconosciuti sono:
• constant: la serie assume valore uguale alla media;
• poly(r): la serie viene interpolata con un polinomio di grado r;
• loess(r, g): la serie viene stimata utilizzando una regressione locale di tipo loess;
• gauss(r, g): la serie viene stimata utilizzando una regressione locale con pesi gaussiani;
• spline(g): la serie osservata è stimata utilizzando una spline con g parametri equivalenti.
> tsr.fit
Per avere una visualizzazione grafica del modello stimato:
> plot(tsr.fit)
Si valuti il grado di adattamento di questo tipo di trend tracciando il grafico della serie filtrata sovrapposto al trend stimato con tsr():
> plot(xt.filt)
> lines(trend(tsr.fit),col="red")
Come si può facilmente vedere l'adattamento non è particolarmente buono e ciò induce all'utilizzo di un altro tipo di stimatore, ad esempio di tipo loess:
> tsr2.fit> plot(tsr2.fit)
Si valuti il grado di adattamento:
> plot(xt.filt)
> lines(trend(tsr2.fit),col="blue")
Il risultato è decisamente migliore. Per determinare il numero dei parametri spesso si deve procedere per tentativi, ma in generale aumentando il numero dei parametri equivalenti il grado di adattamento migliora.
Si confrontino i trend stimati con i tre metodi:
> plot(trend(tsr2.fit),main="COMPARAZIONE DEL TREND STIMATO")
> lines(xt.filt,col="red")
> lines(trend.stl,col="green")
Si proceda alla memorizzazione delle componenti risultanti dalla funzione tsr() in tre vettori distinti
> trend.tsr> stag.tsr> res.tsr
Domande da interrogazione
- Qual è il modello di base utilizzato nella decomposizione classica delle serie temporali?
- Qual è il modello di base utilizzato nella decomposizione classica delle serie temporali?
- Quali funzioni R possono essere utilizzate per la decomposizione delle serie temporali?
- Quali funzioni R possono essere utilizzate per la decomposizione delle serie temporali?
- Quali componenti restituisce la funzione decompose()?
- Quali componenti restituisce la funzione decompose()?
- Come si confrontano i risultati dei diversi metodi di decomposizione?
- Come si confrontano i risultati ottenuti con i diversi metodi di decomposizione?
Il modello di base è di tipo additivo, espresso come Yt = Tt + St + εt, dove gli errori εt sono distribuiti normalmente con media zero e varianza costante.
Il modello di base è di tipo additivo, espresso come Yt = Tt + St + εt, dove gli errori εt sono distribuiti normalmente con media zero e varianza costante.
Le funzioni R utilizzabili sono decompose() e stl() nel package stats, e tsr() nel package ast, ognuna con caratteristiche specifiche per la stima delle componenti.
Le funzioni R utilizzabili sono decompose() e stl() nel package stats, e tsr() nel package ast, ognuna con caratteristiche specifiche per la stima delle componenti.
La funzione decompose() restituisce un oggetto con le componenti: seasonal (stagionalità), trend (trend della serie) e random (errori).
La funzione decompose() restituisce un oggetto con le componenti: seasonal (stagionalità), trend (trend della serie) e random (errori).
I risultati possono essere confrontati tracciando i trend stimati dai vari metodi su un grafico, evidenziando le differenze di adattamento e la qualità delle stime ottenute.
I risultati possono essere confrontati tracciando i trend stimati con i vari metodi, come decompose(), stl() e tsr(), per valutare il grado di adattamento e identificare il metodo più efficace.