Ti trovi in: Home arrow Software arrow R arrow Metodo analitico

Metodo analitico di A. Fanciullo T. Lutrelli   

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<-decompose(xt,type="additive")

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<-dec.fit\$seasonal
> trend.dec<-dec.fit\$trend
> res.dec<-dec.fit\$random

Per ottenere il grafico della decomposizione della serie:

> plot(dec.fit)

Image
Figura 12: Decomposizione della serie storica additiva

 

Funzione stl()

La funzione stl() fornisce delle stime migliori in quanto per la decomposizione usa il metodo loess:

> stl.fit<-stl(xt,s.window="periodic")
> attributes(stl.fit)
\$names
[1] "time.series" "weights"     "call"        "win"         "deg"        "jump"        "inner"       "outer"

\$class
[1] "stl"

La funzione restituisce un oggetto le cui componenti possono essere memorizzate in vettori

> stag.stl<-stl.fit\$time.series[,1]
> trend.stl<-stl.fit\$time.series[,2]
> res.stl<-stl.fit\$time.series[,3]

Il grafico della serie storica decomposta è il seguente

> plot(stl.fit,main="GRAFICO DELLA SERIE STORICA DECOMPOSTA- funzione stl")

Image
Figura 13: Decomposizione della serie storica mediante la 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<-tsr(xt~poly(1)+c)

Per avere una visualizzazione grafica del modello stimato:

> plot(tsr.fit)

Image
Figura 14: decomposizione della serie storica mediante lo stimatore poly utilizzando la funzione tsr

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")

Image
Figura 15: Grafico della serie storica filtrata sovrapposto al trend stimato con tsr

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<-tsr(xt~loess(1,10)+c)
> plot(tsr2.fit)

Image
Figura 16: Decomposizione della serie storica mediante lo stimatore loess utilizzando la funzione tsr

Si valuti il grado di adattamento:

> plot(xt.filt)
> lines(trend(tsr2.fit),col="blue")

Image
Figura 17: Grafico della serie storica filtrata sovrapposto al trend stimato con loess

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<-trend(tsr2.fit)
> stag.tsr<-seasonal(tsr2.fit)
> res.tsr<-residuals(tsr2.fit)

 

 

 

 

 

 

 

 

 

 



 

 





 




Leggi l'articolo e lascia un commento

Scrivi Commento
  • Si prega di scrivere solo commenti che riguardano questo articolo. La redazione pubblicherà solo i messaggi che saranno ritenuti idonei. I messaggi compariranno, mediamente, il giorno seguente, dopo che la redazione li ha approvati.
Nome:
Commento:

Codice:* Code Inserireilcodiceaumentatoditredecine

Powered by AkoComment Tweaked Special Edition v.1.4.6
AkoComment © Copyright 2004 by Arthur Konze - www.mamboportal.com
All right reserved

Valutazione utente: / 0
ScarsoOttimo 
< Prec.   Pros. >
Videolezioni di Matematica

Iniziative editoriali

 matemagica-p2.jpg
Matemagica? No problem!

  eccellere-80.jpg

Eccellere in matematica

balsimelli-geogebra-80.jpg
Geometria con Geogebra
     giochi-logico-matematici-80.jpg
CD giochi logico-matematici

Test - quiz - simulazione

Gioca con la matematica

Ultimi articoli