analisi delle serie temporali con r - sirio - benvenutosirio.stat.unipd.it/files/ts02-03/tsr.pdfuna...

30
Analisi delle Serie Temporali con R Guido Masarotto Facoltà di Scienze Statistiche Università di Padova [email protected] 1 dicembre 2002 Indice 1 Introduzione 3 1.1 Avvertenze ...................................... 3 1.2 La biblioteca “ast” ................................... 3 2 Rappresentazione di una serie temporale 5 2.1 ts ............................................ 5 2.2 start, end, deltat, frequency ............................. 13 2.3 time, cycle ....................................... 14 2.4 window ........................................ 15 3 Diagrammi di autodispersione, stima della funzione di autocorrelazione, test di Ljung-Box e Box-Pierce 19 3.1 lag.plot ........................................ 19 3.2 acf ........................................... 20 3.3 Le linci canadesi ................................... 21 3.4 pacf .......................................... 22 3.5 Box.test ........................................ 26 1

Upload: others

Post on 14-Jan-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

Analisi delle Serie Temporali con R

Guido Masarotto

Facoltà di Scienze Statistiche

Università di Padova

[email protected]

1 dicembre 2002

Indice

1 Introduzione 3

1.1 Avvertenze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 La biblioteca “ast” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Rappresentazione di una serie temporale 5

2.1 ts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2 start, end, deltat, frequency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.3 time, cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.4 window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3 Diagrammi di autodispersione, stima della funzione di autocorrelazione, test di

Ljung-Box e Box-Pierce 19

3.1 lag.plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.2 acf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.3 Le linci canadesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.4 pacf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.5 Box.test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

1

Page 2: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

4 Scomposizione di una serie temporale in componenti elementari 28

4.1 smoothts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.2 predeseasonal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.3 tsr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.4 trend, seasonal, remainder, detrend, deseasonal . . . . . . . . . . . . . . . . . . 28

4.5 residuals, fitted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.6 seaplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

5 Modelli ARIMA 29

5.1 ARMAacf, ARMAtoMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

5.2 diff, diffinv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

5.3 arima and friends . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

5.4 allArima, bestArima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

6 Cenno ad altre funzioni disponibili 30

6.1 Modelli strutturali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

6.2 Lisciamento esponenziale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

6.3 Funzioni “specializzate” per i modelli autoregressivi . . . . . . . . . . . . . . . . 30

6.4 Curve non-lineari per il trend . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

6.5 Modelli GARCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

2

Page 3: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

1 Introduzione

Lo scopo di questa scarna nota consiste nel descrivere alcuni degli strumenti dispo-

nibili in R (http://www.r-project.org) per l’analisi delle serie temporali. La scelta del

materiale è limitata (ed orientata) agli argomenti trattati nel corso di Analisi delle Se-

rie Temporali impartito all’interno delle lauree della Facoltà di Scienze Statistiche di

Padova.

1.1 Avvertenze

- La nota non contiene nessun richiamo sull’utilizzo, diciamo base, di R. Lo studente

completamente “digiuno di R” deve perciò utilizzare, prima di questa nota, una delle

molte introduzioni disponibili.

- La nota è pensata per essere utilizzata alla tastiera, non per essere letta in poltrona.

- Parecchie tra le funzioni considerate hanno altri parametri e/o opzioni. Ovvero, non

si eviti di guardare il manuale!

1.2 La biblioteca “ast”

Alcune delle funzioni che utilizzeremo nel seguito sono contenute in una “biblioteca”,

chiamata ast, che deve essere quindi per prima cosa installata. L’ultima versione della

biblioteca può essere trovata all’indirizzo

http://sirio.stat.unipd.it/ts

Il sorgente è disponibile nel file ast_XXX.tar.gz (XXX indica la versione) e può

essere installato, se il sistema è ben configurato, in maniera analoga ad una delle

qualsiasi altre biblioteche aggiuntive di R (si veda la FAQ di R). Di norma è sufficiente

scaricare il file in una directory e poi dare il comando

> R CMD INSTALL /pathto/ast_XXX.tar.gzse si lavora in un sistema Unix o Linux, o

> RCmd INSTALL /pathto/ast_XXX.tar.gzse si stà lavorando in una macchina MsWindows.

Gli utenti MsWindows possono comunque trovare nella stessa pagina una versio-

ne della biblioteca già precompilata e pronta per essere installata. Il file si chiama

3

Page 4: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

ast_XXX.zip. Per installarlo è sufficiente (i) scaricarlo, (ii) lanciare R, (iii) selezio-

nare dal menu “Packages” la voce “Install package from local zip file...” e (iv) nella

finestra di dialogo successiva selezionare il file appena scaricato.

L’installazione, ovviamente, va fatta una volta per tutte (almeno fintanchè non si cam-

bia la versione di R). Per poter accedere alle funzioni nella biblioteca è poi però

necessario, all’inizio di ogni sessione, caricarle in memoria con il comando

> library(ast)

Al caricamento, ast carica anche le biblioteche

- modreg: metodi “moderni” di regressione

- ts: serie temporali

che dovrebbero far parte di ogni installazione di R. In particolare, molte delle funzioni

presentate fanno parte della biblioteca ts.

4

Page 5: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

2 Rappresentazione di una serie temporale

2.1 ts

ts(y, start=1, frequency=1, deltat=1, end=numeric(0))

- y: valori della serie (vettore nel caso di una serie univariata, matrice nel caso di una

serie multivariata)

- start: istante iniziale (ad esempio 1967)

- frequency: numero di osservazioni in un unità di tempo

- deltat: la “distanza” nel tempo tra le osservazioni

- end: istante finale

Una serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-

riata, in una matrice. R però dispone di una struttura ad hoc, denominata ts, per

rappresentare in memoria i valori di una serie temporale insieme ad alcune altre ca-

ratteristiche (inizio, fine, eventuale periodicità stagionale,. . . ). Per costruire questa

struttura è possibile utilizzare la funzione ts.

In una applicazione reale, i valori osservati della serie temporale vengono “letti dal-

l’esterno” utilizzando una delle molte funzioni disponibili per farlo (dal disco fisso, da

internet, da un data base, . . . ). Ma per semplicità, come primo esempio, “generiamo”

24 valori che supporremmo, per il momento, costituire la serie osservata

> x <- (1:24)/4 + rnorm(24)> x[1] 0.452031655 -0.194178258 0.243101188 -0.007990146[5] 0.744130280 2.911109359 2.232786704 1.687583890[9] 2.800810573 1.857238229 3.838114776 4.348430501

[13] 3.724094681 2.789332546 2.940917468 2.302895380[17] 1.972642782 3.206725925 4.212569841 3.495470390

5

Page 6: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

[21] 3.132792405 6.765122122 5.915017801 4.414375574> plot(x)

Il grafico è mostrato nella figura 2.1. x è ovviamente un vettore di 24 numeri non una

serie temporale

> is.vector(x)[1] TRUE> is.ts(x)[1] FALSE

Trasformiamo x in una serie storica.

> y <- ts(x)> is.ts(y)[1] TRUE> yTime Series:Start = 1End = 24Frequency = 1[1] 0.452031655 -0.194178258 0.243101188 -0.007990146[5] 0.744130280 2.911109359 2.232786704 1.687583890[9] 2.800810573 1.857238229 3.838114776 4.348430501

[13] 3.724094681 2.789332546 2.940917468 2.302895380[17] 1.972642782 3.206725925 4.212569841 3.495470390[21] 3.132792405 6.765122122 5.915017801 4.414375574> plot(y)

La figura 2.2 mostra il grafico. Si osservi come è “cambiata” la maniera in cui R mostra

e disegna gli stessi valori.

Esercizio: Verificare che per ottenere da y il grafico di prima è sufficiente usare il

seguente comando

> plot(y,type="p",xlab="Index",ylab="x")

Gli elementi della serie temporale possono essere “estratti” come se y fosse un vettore

6

Page 7: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

5 10 15 20

01

23

45

67

Index

x

Figura 2.1: Primi dati

7

Page 8: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

Time

y

5 10 15 20

01

23

45

67

Figura 2.2: Una prima serie storica

8

Page 9: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

> y[2][1] -0.1941783> y[15:18][1] 2.940917 2.302895 1.972643 3.206726> y[(1:24)<7][1] 0.452031655 -0.194178258 0.243101188 -0.007990146[5] 0.744130280 2.911109359> y[-(1:12)][1] 3.724095 2.789333 2.940917 2.302895 1.972643 3.206726[7] 4.212570 3.495470 3.132792 6.765122 5.915018 4.414376

Si osservi però che i valori “estratti” non sono più una serie temporale.

Utilizzando la stessa “grammatica” possiamo alterare uno o più dei valori osservati. In

questo caso, la serie modificata continua ad essere una serie temporale.

> y[c(2,10)] <- 0> yTime Series:Start = 1End = 24Frequency = 1[1] 0.452031655 0.000000000 0.243101188 -0.007990146[5] 0.744130280 2.911109359 2.232786704 1.687583890[9] 2.800810573 0.000000000 3.838114776 4.348430501

[13] 3.724094681 2.789332546 2.940917468 2.302895380[17] 1.972642782 3.206725925 4.212569841 3.495470390[21] 3.132792405 6.765122122 5.915017801 4.414375574

Il parametro opzionale start serve per informare R dell’istante a cui deve essere

riferita la prima osservazione. Ad esempio, supponiamo che i valori contenuti in xsiano in realtà una serie storica annuale e che la prima osservazione sia da riferire al

1978. Allora, potevamo utilizzare

> y <- ts(x, start=1978)> yTime Series:Start = 1978End = 2001

9

Page 10: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

Frequency = 1[1] 0.452031655 -0.194178258 0.243101188 -0.007990146[5] 0.744130280 2.911109359 2.232786704 1.687583890[9] 2.800810573 1.857238229 3.838114776 4.348430501

[13] 3.724094681 2.789332546 2.940917468 2.302895380[17] 1.972642782 3.206725925 4.212569841 3.495470390[21] 3.132792405 6.765122122 5.915017801 4.414375574> plot(y)

La figura 2.3 mostra il grafico. Si osservi come R abbia calcolato automaticamente

l’anno finale e l’asse delle ascisse nel grafico.

deltat serve per indicare la distanza nel tempo tra le osservazioni. Ovviamente

dipende dall’unità di tempo prescelta. Ad esempio, supponiamo che

- le osservazioni in x iniziano nel 1978,

- abbiano cadenza semestrale,

- vogliamo continuare ad utilizzare l’anno come unità di tempo.

Allora, possiamo utilizzare

> y <- ts(x, start=1978, deltat=0.5)> yTime Series:Start = c(1978, 1)End = c(1989, 2)Frequency = 2[1] 0.452031655 -0.194178258 0.243101188 -0.007990146[5] 0.744130280 2.911109359 2.232786704 1.687583890[9] 2.800810573 1.857238229 3.838114776 4.348430501

[13] 3.724094681 2.789332546 2.940917468 2.302895380[17] 1.972642782 3.206725925 4.212569841 3.495470390[21] 3.132792405 6.765122122 5.915017801 4.414375574

Si osservino i “campi” Start, End e Frequency e si notino le differenze con gli

esempi precedenti. La lettura in questo caso è che abbiamo 2 osservazioni per unità

di tempo, che la prima osservazione è da riferirsi al I semestre del 1978 e l’ultima al II

semestre del 1989.

Equivalentemente potevamo utilizzare

> y <- ts(x, start=1978, frequency=2)

10

Page 11: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

Time

y

1980 1985 1990 1995 2000

01

23

45

67

Figura 2.3: La storia inizia. . . nel 1978

11

Page 12: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

> yTime Series:Start = c(1978, 1)End = c(1989, 2)Frequency = 2[1] 0.452031655 -0.194178258 0.243101188 -0.007990146[5] 0.744130280 2.911109359 2.232786704 1.687583890[9] 2.800810573 1.857238229 3.838114776 4.348430501

[13] 3.724094681 2.789332546 2.940917468 2.302895380[17] 1.972642782 3.206725925 4.212569841 3.495470390[21] 3.132792405 6.765122122 5.915017801 4.414375574

frequency rappresenta il reciproco di deltat ovvero il numero di osservazioni per

unità di tempo.

Come facciamo a dire ad R che la prima osservazione è del II semestre del 1978?

Facile. E’ sufficiente usare per start un vettore di lunghezza due contenente rispetti-

vamente l’anno e il “periodo dentro l’anno”.

> y <- ts(x, start=c(1978,2), frequency=2)> yTime Series:Start = c(1978, 2)End = c(1990, 1)Frequency = 2[1] 0.452031655 -0.194178258 0.243101188 -0.007990146[5] 0.744130280 2.911109359 2.232786704 1.687583890[9] 2.800810573 1.857238229 3.838114776 4.348430501

[13] 3.724094681 2.789332546 2.940917468 2.302895380[17] 1.972642782 3.206725925 4.212569841 3.495470390[21] 3.132792405 6.765122122 5.915017801 4.414375574

Esercizio: Sempre utilizzando i valori in x, come possiamo costruire

- una serie temporale mensile la cui prima osservazione è stata presa nel giugno 1990;

- una serie temporale quadrimestrale che inizia con l’estate del 1721.

12

Page 13: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

Esercizio: Si esplori l’utilizzo del parametro end.

2.2 start, end, deltat, frequency

Caratteristiche di una serie temporale

start(y): la data di “inizio” della serie yend(y): la data di “fine” della serie ydeltat(y): l’intervallo di tempo tra le osservazioni della serie yfrequency(y): il numero di osservazioni per unità di tempo per la serie y

Le funzioni nella tabella precedente possono essere utilizzate per “accedere” ad alcune

delle caratteristiche della serie temporale.

> start(y)[1] 1978 2> end(y)[1] 1990 1> frequency(y)[1] 2> deltat(y)[1] 0.5

Si osservi come il valore ritornato da start e end sia un vettore di lunghezza due

(nel nostro esempio “anno” e “semestre”). Questa forma è sempre utilizzata, anche

nei casi in cui ci sia una sola osservazione per unità di tempo

> y <- ts( x, start=1756)> start(y)[1] 1756 1> end(y)[1] 1779 1

13

Page 14: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

2.3 time, cycle

Tempo e periodo

time(y): gli “istanti” di tempo della serie ycycle(y): le “stagioni” della serie y

Un esempio con una serie non “stagionale”. . .

> time(y)Time Series:Start = 1756End = 1779Frequency = 1[1] 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767

[13] 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779> cycle(y)Time Series:Start = 1756End = 1779Frequency = 1[1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

. . . e uno con una serie “mensile”. . .

> y <- ts(x, start=c(1996,4), frequency=12)> y

Jan Feb Mar Apr1996 0.4520316551997 1.857238229 3.838114776 4.348430501 3.7240946811998 6.765122122 5.915017801 4.414375574

May Jun Jul Aug1996 -0.194178258 0.243101188 -0.007990146 0.7441302801997 2.789332546 2.940917468 2.302895380 1.9726427821998

Sep Oct Nov Dec

14

Page 15: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

1996 2.911109359 2.232786704 1.687583890 2.8008105731997 3.206725925 4.212569841 3.495470390 3.1327924051998> time(y)

Jan Feb Mar Apr May Jun1996 1996.250 1996.333 1996.4171997 1997.000 1997.083 1997.167 1997.250 1997.333 1997.4171998 1998.000 1998.083 1998.167

Jul Aug Sep Oct Nov Dec1996 1996.500 1996.583 1996.667 1996.750 1996.833 1996.9171997 1997.500 1997.583 1997.667 1997.750 1997.833 1997.9171998> cycle(y)

Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec1996 4 5 6 7 8 9 10 11 121997 1 2 3 4 5 6 7 8 9 10 11 121998 1 2 3

. . . dovrebbero essere sufficienti. Si osservi, nel secondo esempio, come R conosca “i

nomi dei mesi” e quindi adegui automaticamente la maniera in cui la serie temporale

viene visualizzata.

Si osservi inoltre che time e cycle ritornano delle serie temporali.

2.4 window

window(y, start = NULL, end = NULL, frequency = NULL, deltat = NULL, extend

= FALSE)

Estrae il “pezzettino” della serie temporale y individuato da start, end,frequency, deltat, eventualmente estendendo la serie stessa se extend==TRUE

window permette di estrarre un sottoinsieme delle osservazioni di una serie temporale

utilizzando non il loro numero d’ordine (come quando si utilizza l’operatore [·]) ma il

“tempo”. Inoltre, window ritorna una serie temporale.

Per mostrare alcuni esempi, “costruiamo” la seguente serie trimestrale

15

Page 16: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

> y <- ts(x, start=1990, frequency=4)> y

Qtr1 Qtr2 Qtr3 Qtr41990 0.452031655 -0.194178258 0.243101188 -0.0079901461991 0.744130280 2.911109359 2.232786704 1.6875838901992 2.800810573 1.857238229 3.838114776 4.3484305011993 3.724094681 2.789332546 2.940917468 2.3028953801994 1.972642782 3.206725925 4.212569841 3.4954703901995 3.132792405 6.765122122 5.915017801 4.414375574

Incidentalmente, si osservi che, come le serie mensili, anche quelle trimestrali godono

di un trattamento speciale1.

Per “estrarre” le osservazioni fino al II trimestre 1992 possiamo utilizzare

> window(y,end=c(1992,2))Qtr1 Qtr2 Qtr3 Qtr4

1990 0.452031655 -0.194178258 0.243101188 -0.0079901461991 0.744130280 2.911109359 2.232786704 1.6875838901992 2.800810573 1.857238229

Viceversa, le osservazioni tra il III trimestre del 1993 e il II del 1995 possono essere

ottenute con il comando

> window(y, start=c(1993,3), end=c(1995,2))Qtr1 Qtr2 Qtr3 Qtr4

1993 2.940917 2.3028951994 1.972643 3.206726 4.212570 3.4954701995 3.132792 6.765122

Tutte le osservazioni riferite al secondo semestre sono

> window(y, start=c(1990, 2), deltat=1)Time Series:Start = 1990.25End = 1995.25Frequency = 1[1] -0.1941783 2.9111094 1.8572382 2.7893325 3.2067259[6] 6.7651221

1Qtr è l’abbreviazione di quarter ovvero trimestre in inglese.

16

Page 17: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

Normalmente window non “estende” la serie stessa. Ad esempio, se si richiedono le

osservazioni fino al 1996 si ottiene

> window(y , end=c(1996,4))Qtr1 Qtr2 Qtr3 Qtr4

1990 0.452031655 -0.194178258 0.243101188 -0.0079901461991 0.744130280 2.911109359 2.232786704 1.6875838901992 2.800810573 1.857238229 3.838114776 4.3484305011993 3.724094681 2.789332546 2.940917468 2.3028953801994 1.972642782 3.206725925 4.212569841 3.4954703901995 3.132792405 6.765122122 5.915017801 4.414375574Warning message:end value not changed in: window.default(x, ...)

Si osservi l’avviso finale. Questo comportamento può essere cambiato utilizzando il

parametro extend come nel seguente esempio

> window(y , end=c(1996,4), extend=TRUE)Qtr1 Qtr2 Qtr3 Qtr4

1990 0.452031655 -0.194178258 0.243101188 -0.0079901461991 0.744130280 2.911109359 2.232786704 1.6875838901992 2.800810573 1.857238229 3.838114776 4.3484305011993 3.724094681 2.789332546 2.940917468 2.3028953801994 1.972642782 3.206725925 4.212569841 3.4954703901995 3.132792405 6.765122122 5.915017801 4.4143755741996 NA NA NA NA>

Si osservi che la serie è stata “allungata”. Al posto dei valori non osservati troviamo

dei valori mancanti (NA).

Nel caso di una serie temporale non “stagionale” (frequency(y)==1), non è neces-

sario utilizzare un vettore bidimensionale per start e end. Ad esempio,

> y <- ts(x, end=1666)> yTime Series:Start = 1643End = 1666

17

Page 18: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

Frequency = 1[1] 0.452031655 -0.194178258 0.243101188 -0.007990146[5] 0.744130280 2.911109359 2.232786704 1.687583890[9] 2.800810573 1.857238229 3.838114776 4.348430501

[13] 3.724094681 2.789332546 2.940917468 2.302895380[17] 1.972642782 3.206725925 4.212569841 3.495470390[21] 3.132792405 6.765122122 5.915017801 4.414375574> window(y, start=1650, end=1655)Time Series:Start = 1650End = 1655Frequency = 1[1] 1.687584 2.800811 1.857238 3.838115 4.348431 3.724095

Esercizio: Si esplori l’utilizzo in window del parametro frequency.

18

Page 19: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

3 Diagrammi di autodispersione, stima della funzione

di autocorrelazione, test di Ljung-Box e Box-Pierce

3.1 lag.plot

lag.plot(y, lags = 1, set.lags = 1:lags,. . . )

- y: serie temporale

- lags: numero di ritardi per cui costruire i grafici

- set.lags: quali ritardi devono essere utilizzati

- . . . : altri parametri che controllano la posizione dei grafici (ad esempio su quante

righe e colonne) e l’aspetto (vedi il manuale)

La serie delle temperature al Castello di Nottingham il cui grafico è mostrato sul lucido

39 fa parte degli insiemi di dati che “arrivano” con R e che possono essere caricati con

il comando data. Per ottenere i diagrammi di autodispersione mostrati nei lucidi 42

e 44 è possibile utilizzare i seguenti comandi

> data(nottem)> lag.plot(nottem,set.lags=seq(12,144,by=12))> lag.plot(nottem,lags=12)

Esercizio: Come è possibile ottenere il grafico nel lucido 43?

Esercizio: I dati sulle linci catturate annualmente in Canada mostrati nel grafico sul

lucido 4 possono essere caricati con il comando

> data(lynx)

Usare lag.plot per disegnare i logaritmi di yt verso i logaritmi di yt−k con k =

1, . . . , 20 e commentare il grafico. In particolare, spiegare perchè il grafico ottenuto

suggerisce un comportamento ciclico con un periodo di 10 anni.

19

Page 20: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

3.2 acf

acf(y, lag.max = NULL, . . . )

- y: serie temporale

- lag.max: sono calcolati i primi lag.max coefficienti

- . . . : altri argomenti o per il “sottosistema grafico” o di utilizzo meno comune (si

veda il manuale)

L’utilizzo di questa funzione è molto semplice. La funzione calcola le stime della funzio-

ne di autocorrelazione e, normalmente, ne produce un grafico. Ad esempio, il grafico

nel lucido 40 è stato ottenuto con il comando

> acf(nottem,120, ylim=c(-1,1))

Si noti l’uso di ylim per fissare “l’ampiezza” dell’asse delle ordinate.

Esercizio: Calcolare e commentare il correlogramma della serie delle linci catturate

in Canada.

Esercizio: Per simulare un white noise (vedi lucidi a pagina 27) gaussiano possiamo

utilizzare la funzione rnorm. In particolare, le seguenti istruzioni “generano” 300

osservazioni da una serie temporale incorrelata nel tempo, le disegnano e, sullo stesso

grafico, aggiungono la stima della funzione di autocorrelazione

> old <- par(mfrow=c(2,1))> y <- ts(rnorm(300))> plot(y)> acf(y)> par(old)

Ripeterle un certo numero di volte guardando ogni volta i risultati. Ripetere l’esercizio

utilizzando 30 come numerisità. Che cosa si nota di differente?

Esercizio: Le seguenti righe di istruzioni generano una serie temporale con un trend

lineare ed una componente erratica incorrelata e gaussiana e ne mostrano il grafi-

co e la funzione di autocorrelazione (stimata). Ripeterle un certo numero di volte

eventualmente cambiando i coefficienti della retta che descrive il trend.

20

Page 21: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

> old <- par(mfrow=c(2,1))> a <- 10 #intercetta del trend> b <- 0.05 #coefficiente angolare del trend> y <- ts(rnorm(200)) #generiamo la componente erratica> y <- a+b*time(y)+y #aggiungiamo il trend lineare> plot(y)> acf(y)> par(old)

Esercizio: Le seguenti righe di istruzioni generano una serie temporale caratterizza-

ta dalla presenza di una componente periodica che si ripete ogni “12 mesi”. La serie

simulata viene disegnata e al grafico viene aggiunta la stima della funzione di autocor-

relazione. Ripeterle un certo numero di volte eventualmente cambiando l’ampiezza e

la frequenza della “componente stagionale”

> old <- par(mfrow=c(2,1))> a <- 5 #ampiezza della componente stagionale> f <- 12 #frequenza della componente stagionale> y <- rnorm(200) #generiamo la componente erratica> #e sommiamo quella "stagionale"> y <- ts(a*cos(2*pi*(1:length(y))/f)+y,frequency=f)> plot(y)> acf(y,60)> par(old)

3.3 Le linci canadesi

Svolgiamo brevemente i due esercizi precedenti sulle linci canadesi. Innanzitutto

“carichiamo” e disegnamiamo i dati

> data(lynx)> plot(lynx)

21

Page 22: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

Il grafico è a pagina 4 nei lucidi.

I primi 20 diagrammi di autodispersione della serie originale e del logaritmo della

serie stessa possono essere ottenuti con i comandi

> lag.plot(lynx,20)> lag.plot(log(lynx),20)

I due grafici sono riportati rispettivamente nelle figure 3.4 e 3.5.

Innazitutto osserviamo come R quando le osservazioni non sono molte connetta i punti

con delle linee. Questo può essere evitato se si aggiunge il parametro do.lines=FALSEnella chiamata a lag.plot.

Le due figure mostrano chiaramente che le relazioni tra “passato” e “presente” sono

decisamente più lineari per la serie dei logaritmi. Guardando quindi la figura 3.5

osserviamo come la correlazione sia positiva al primo ritardo poi diventi negativa (in

particolare a ritardo 5 e 6) per poi ritornare positiva (con un massimo di “forza” della

relazione a ritardo 10) e poi nuovamente negativa. . . Questo comportamento è legato

alla presenza di una componente ciclica evidente nel grafico della serie e che ha un

periodo di circa 10 anni. Osservazioni di anni contigui tendono ad essere o ambedue

“grandi” o ambedue “piccole” e questo spiega la dipendenza osservata al primo ritardo.

Lo stesso vale per osservazioni distanti 10 anni. Mentre l’esatto opposto vale per

osservazioni distanti 5/6 anni: se una è nella fase “alta” del ciclo l’altra sarà in quella

“bassa” e viceversa.

Per ottenere le stime dei primi 20 coefficienti di autocorrelazione possiamo utilizzare

il comando

> acf(log(lynx),20)

Si osservi che continuamo a lavorare con la serie trasformata. La figura 3.6 mostra il

grafico. Il tipo di dipendenza prima descritto diventa ancora più evidente.

3.4 pacf

pacf(y, lag.max = NULL, . . . )

- y: serie temporale

- lag.max: sono calcolati i primi lag.max coefficienti

- . . . : altri argomenti come per acf

22

Page 23: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

lag 1

lynx

123 45

6

7

8

9

10

11121314 15

1617

18

19

202122232425

26

2728

2930313233

34

35

3637

38

39404142

43

44

45

46

47

48495051

52

535455

565758596061 62

63

64

65

66

676869707172 73

74

7576

77787980

8182

83

8485

86

87

888990

91

92

9394 95

96

979899100101102

103

104

105106

107

108109110111

112

113

020

0050

00

0 2000 6000

lag 2

lynx

12 3 45

6

7

8

9

10

111213 1415

1617

18

19

202122232425

26

2728

29303132 33

34

35

3637

38

394041 42

43

44

45

46

47

484950 51

52

535455

5657585960 61 62

63

64

65

66

6768697071 72 73

74

7576

77787980

8182

83

8485

86

87

888990

91

92

939495

96

979899100101 102

103

104

105106

107

108109110111

112

lag 3

lynx

1 2 3 45

6

7

8

9

10

1112 1314 15

1617

18

19

20212223 2425

26

2728

293031 32 33

34

35

3637

38

3940 41 42

43

44

45

46

47

4849 5051

52

535455

56575859 60 61 62

63

64

65

66

67686970 71 7273

74

7576

777879 80

8182

83

8485

86

87

88 8990

91

92

939495

96

979899100 101 102

103

104

105106

107

108109 110111

0 2000 6000

lag 4

lynx

1 2 3 45

6

7

8

9

10

111213 1415

161718

19

202122 232425

26

2728

2930 31 3233

34

35

3637

38

3940 41 42

43

44

45

46

47

48495051

52

535455

565758 59 60 6162

63

64

65

66

676869 70 717273

74

7576

7778 79 80

8182

83

8485

86

87

88 899091

92

939495

96

9798 99 100 101102

103

104

105106

107

108 109110

lag 5

lynx

1 2 345

6

7

8

9

10

1112 131415

161718

19

2021 2223242526

2728

2930 313233

34

35

3637

38

3940 4142

43

44

45

46

47

48495051

52

535455

5657

58 59 606162

63

64

65

66

6768 69 70717273

74

7576

7778 7980

8182

83

8485

86

87

888990

91

92

939495

96

9798 99 100101102

103

104

105106

107

108109

lag 6

lynx

1 2345

6

7

8

9

10

1112131415

161718

19

20 2122232425

26

2728

2930313233

34

35

3637

38

39404142

43

44

45

46

47

48495051

52

535455

5657

58 59606162

63

64

65

66

6768 6970717273

74

7576

77787980

8182

83

8485

86

87

888990

91

92

939495

96

9798 99100101102

103

104

105106

107

108

lag 7

lynx

12345

6

7

8

9

10

1112131415

1617

18

19

20212223242526

2728

2930313233

34

35

36 37

38

39404142

43

44

45

46

47

48495051

52

535455

5657

5859606162

63

64

65

66

67686970717273

74

7576

77787980

8182

83

8485

86

87

88 8990

91

92

939495

96

979899100101102

103

104

105106

107

lag 8

lynx

12345

6

7

8

9

10

1112131415

1617

18

19

202122232425

26

2728

2930313233

34

35

36 37

38

39404142

43

44

45

46

47

48495051

52

535455

5657

5859606162

63

64

65

66

67686970717273

74

7576

77787980

8182

83

8485

86

87

88899091

92

9394 95

96

979899100101102

103

104

105106

020

0050

00

lag 9

lynx

12345

6

7

8

9

10

1112131415

1617

18

19

202122232425

26

2728

293031323334

35

36 37

38

39404142

43

44

45

46

47

4849505152

53 5455

5657

5859606162

63

64

65

66

67686970717273

74

7576

77787980

8182

83

8485

86

87

88899091

92

9394 95

96

979899100101102103

104

105

020

0050

00

lag 10

lynx

12345

6

7

8

9

10

1112131415

1617

18

19

202122232425

26

2728

2930313233

34

35

3637

38

39404142

43

44

45

46

47

48495051

52

53 5455

5657

5859606162

63

64

65

66

676869707172 73

74

7576

77787980

8182

83

8485

86

87

88899091

92

9394 95

96

979899100101102

103

104

lag 11

lynx

1234

5

6

7

8

9

10

1112131415

1617

18

19

20212223 242526

2728

29303132 33

34

35

3637

38

394041 42

43

44

45

46

47

48495051

52

53 5455

56575859606162

63

64

65

66

6768697071 72 73

74

7576

77787980

8182

83

8485

86

87

88899091

92

939495

96

979899100101 102

103

lag 12

lynx

123 4

5

6

7

8

9

10

11121314 15

1617

18

19

202122 23 2425

26

2728

293031 32 33

34

35

3637

38

3940 4142

43

44

45

46

47

484950 51

52

535455

565758596061 62

63

64

65

66

67686970 71 7273

74

7576

777879 80

8182

83

8485

86

87

888990

91

92

939495

96

979899100 101102

lag 13

lynx

123 4

5

6

7

8

9

10

111213 1415

161718

19

2021 22 232425

26

2728

2930 31 32 33

34

35

3637

38

39404142

43

44

45

46

47

4849 50 51

52

535455

5657585960 61 62

63

64

65

66

676869 70 717273

74

7576

7778 79 80

8182

83

8485

86

87

888990

91

92

939495

96

979899 100101

lag 14

lynx

1 2 3 45

6

7

8

9

10

1112 131415

1617

18

19

20 21 22232425

26

2728

2930 31 3233

34

35

3637

38

39404142

43

44

45

46

47

4849 50 51

52

535455

56575859 60 6162

63

64

65

66

6768 69 70717273

74

7576

7778 798081

82

83

8485

86

87

88 8990

91

92

939495

96

9798 99100

lag 15

lynx

1 2 345

6

7

8

9

10

1112131415

161718

19

20 212223242526

2728

2930 313233

34

35

3637

38

39404142

43

44

45

46

47

4849 5051

52

535455

565758 59 606162

63

64

65

66

6768 6970717273

74

7576

7778798081

82

83

8485

86

87

88 8990

91

92

939495

96

9798 99

lag 16

lynx

1 2345

6

7

8

9

10

1112131415

1617

18

19

20212223242526

2728

2930313233

34

35

36 37

38

39404142

43

44

45

46

47

48495051

52

535455

5657

58 59606162

63

64

65

66

67686970717273

74

7576

777879 80

8182

83

8485

86

87

88 8990

91

92

939495

96

9798 0

2000

5000

lag 17

lynx

12345

6

7

8

9

10

1112131415

1617

18

19

202122232425

26

2728

2930313233

34

35

3637

38

39404142

43

44

45

46

47

48495051

52

535455

5657

5859606162

63

64

65

66

67686970717273

74

7576

7778 7980

8182

83

8485

86

87

888990

91

92

939495

96

97

020

0050

00

lag 18

lynx

12345

6

7

8

9

10

1112131415

1617

18

19

202122232425

26

2728

293031323334

35

3637

38

3940414243

44

45

46

47

48495051

52

535455

5657

5859606162

63

64

65

66

67686970717273

74

7576

77787980

8182

83

8485

86

87

88899091

92

9394 95

96

0 2000 6000lag 19

lynx

12345

6

7

8

9

10

1112131415

161718

19

202122232425

26

2728

2930313233

34

35

3637

38

39404142

43

44

45

46

47

4849505152

535455

5657

5859606162

63

64

65

66

676869707172 73

74

7576

77787980

8182

83

8485

86

87

88899091

92

9394 95

lag 20

lynx

1234

5

6

7

8

9

10

11121314 15

1617

18

19

20212223 2425

26

2728

29303132 33

34

35

3637

38

39404142

43

44

45

46

47

4849505152

53 5455

5657

5859606162

63

64

65

66

6768697071 72 73

74

7576

777879808182

83

8485

86

87

888990

91

92

9394

0 2000 6000

Figura 3.4: Linci canadesi. Diagrammi di autodispersione

23

Page 24: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

lag 1

log(

lynx

)

1 2

34

5

67

89

10

11

12

1314

15

161718

19

20

21

2223

24

25

26

2728

29

303132

33

34

353637

38

39

4041 42

43

44

45

4647

48

49

5051

52

535455

56

57

5859 60

6162

6364

65

66

67

68

6970 71

72

73

74

7576

77

7879

80

8182

83

848586

87

88 89

9091

92939495

96

97

9899100

101102

103

104105106

107

108109110

111112

113

45

67

89

3 4 5 6 7 8 9

lag 2

log(

lynx

)

1 2

34

5

67

89

10

11

12

131415

161718

19

20

21

2223

24

25

26

2728

29

303132

33

34

353637

38

39

4041 42

43

44

45

4647

48

49

5051

52

535455

56

57

585960

6162

6364

65

66

67

68

6970 71

72

73

74

7576

77

7879

80

8182

83

848586

87

88 89

9091

92939495

96

97

98 99100

101102

103

104105106

107

108109110

111112

lag 3

log(

lynx

)

1 2

34

5

67

89

10

11

12

1314

15

161718

19

20

21

2223

24

25

26

2728

29

30 3132

33

34

353637

38

39

4041 42

43

44

45

4647

48

49

5051

52

535455

56

57

5859 60

6162

6364

65

66

67

68

6970 71

72

73

74

7576

77

7879

80

8182

83

848586

87

88 89

9091

92939495

96

97

98 99100

101102

103

104105106

107

108109110

111

3 4 5 6 7 8 9

lag 4

log(

lynx

)

1 2

34

5

67

8 9

10

11

12

1314

15

161718

19

20

21

2223

24

25

26

2728

29

30 313233

34

353637

38

39

4041 42

43

44

45

4647

48

49

5051

52

53545556

57

585960

6162

6364

65

66

67

68

6970 71

72

73

74

75 76

77

7879

80

8182

83

848586

87

8889

9091

92939495

96

97

98 99100

101102

103

104105106

107

108109110

lag 5

log(

lynx

)

1 2

34

5

67

8 9

10

11

12

1314

15

161718

19

20

21

2223

24

25

26

2728

29

30 3132

33

34

353637

38

39

404142

43

44

45

4647

48

49

5051

52

535455

56

57

585960

6162

6364

65

66

67

68

697071

72

73

74

75 76

77

7879

80

8182

83

84 8586

87

8889

9091

92939495

96

97

98 99100

101102

103

104105106

107

108109

lag 6

log(

lynx

)

1 2

34

5

67

8 9

10

11

12

1314

15

161718

19

20

21

2223

24

25

26

27 28

29

303132

33

34

3536 37

38

39

404142

43

44

45

4647

48

49

5051

52

535455

56

57

585960

6162

636465

66

67

68

697071

72

73

74

75 76

77

7879

80

8182

83

84 8586

87

8889

9091

929394 95

96

97

9899100

101102

103

104105106

107

108

lag 7

log(

lynx

)12

34

5

67

8 9

10

11

12

1314

15

16 1718

19

20

21

2223

24

25

26

27 28

29

303132

33

34

3536 37

38

39

404142

43

44

45

4647

48

49

5051

52

53 5455

56

57

585960

6162

6364

65

66

67

68

697071

72

73

74

75 76

77

7879

80

8182

83

84 8586

87

8889

9091

9293 94 95

96

97

9899100

101102

103

104105106

107

lag 8

log(

lynx

)

12

34

5

67

89

10

11

12

1314

15

16 1718

19

20

21

2223

24

25

26

27 28

29

303132

33

34

3536 37

38

39

4041 42

43

44

45

4647

48

49

5051

52

535455

56

57

585960

6162

6364

65

66

67

68

697071

72

73

74

75 76

77

7879

80

8182

83

848586

87

8889

9091

9293 94 95

96

97

9899100

101102

103

104105106

45

67

89

lag 9

log(

lynx

)

12

34

5

6789

10

11

12

1314

15

16 1718

19

20

21

2223

24

25

26

2728

29

30313233

34

3536 37

38

39

404142

43

44

45

4647

48

49

5051

52

53 5455

56

57

585960

6162

6364

65

66

67

68

6970 71

72

73

74

7576

77

7879

80

8182

83

848586

87

8889

9091

9293 94 95

96

97

9899100

101102

103

104105

45

67

89

lag 10

log(

lynx

)

12

34

5

67

89

10

11

12

1314

15

16 1718

19

20

21

2223

24

25

26

2728

29

303132

33

34

353637

38

39

4041 42

43

44

45

4647

48

49

5051

52

535455

56

57

585960

6162

6364

65

66

67

68

6970 71

72

73

74

7576

77

7879

80

8182

83

848586

87

8889

9091

9293 9495

96

97

9899100

101102

103

104

lag 11

log(

lynx

)

1 2

34

5

67

89

10

11

12

1314

15

161718

19

20

21

2223

24

25

26

2728

29

303132

33

34

353637

38

39

4041 42

43

44

45

4647

48

49

5051

52

535455

56

57

585960

6162

6364

65

66

67

68

6970 71

72

73

74

7576

77

7879

80

8182

83

848586

87

8889

9091

92939495

96

97

9899100

101102

103

lag 12

log(

lynx

)

1 2

345

67

89

10

11

12

1314

15

161718

19

20

21

2223

24

25

26

2728

29

30 3132

33

34

353637

38

39

404142

43

44

45

4647

48

49

5051

52

535455

56

57

5859 60

6162

6364

65

66

67

68

6970 71

72

73

74

7576

77

7879

80

8182

83

848586

87

88 89

9091

92939495

96

97

9899100

101102

lag 13

log(

lynx

)

1 2

34

5

67

89

10

11

12

131415

161718

19

20

21

2223

24

25

26

2728

29

30 3132

33

34

3536 37

38

39

404142

43

44

45

4647

48

49

5051

52

535455

56

57

5859 60

6162

6364

65

66

67

68

6970 71

72

73

74

7576

77

7879

80

8182

83

848586

87

88 89

9091

92939495

96

97

9899100

101

lag 14

log(

lynx

)

1 2

34

5

67

8 9

10

11

12

1314

15

161718

19

20

21

2223

24

25

26

2728

29

30 3132

33

34

353637

38

39

404142

43

44

45

4647

48

49

5051

52

535455

56

57

5859 60

6162

6364

65

66

67

68

697071

72

73

74

75 76

77

7879

80

8182

83

848586

87

88 89

9091

92939495

96

97

98 99100

lag 15

log(

lynx

)

12

34

5

67

8 9

10

11

12

1314

15

161718

19

20

21

2223

24

25

26

27 28

29

30 3132

33

34

3536 37

38

39

404142

43

44

45

4647

48

49

5051

52

53545556

57

5859 60

6162

6364

65

66

67

68

697071

72

73

74

75 76

77

7879

80

8182

83

848586

87

88 89

9091

92939495

96

97

9899

lag 16

log(

lynx

)

12

34

5

67

8 9

10

11

12

131415

161718

19

20

21

2223

24

25

26

27 28

29

303132

33

34

3536 37

38

39

404142

43

44

45

4647

48

49

5051

52

535455

56

57

585960

6162

6364

65

66

67

68

697071

72

73

74

75 76

77

7879

80

8182

83

84 8586

87

8889

9091

92939495

96

97

98

45

67

89

lag 17

log(

lynx

)

12

34

5

67

8 9

10

11

12

1314

15

16 1718

19

20

21

2223

24

25

26

27 28

29

303132

33

34

353637

38

39

404142

43

44

45

4647

48

49

5051

52

535455

56

57

585960

6162

6364

65

66

67

68

697071

72

73

74

7576

77

7879

80

8182

83

84 8586

87

8889

9091

92939495

96

97

45

67

89

lag 18

log(

lynx

)

12

34

5

67

8 9

10

11

12

1314

15

16 1718

19

20

21

2223

24

25

26

27 28

29

303132

33

34

353637

38

39

404142

43

44

45

4647

48

49

5051

52

53 5455

56

57

585960

6162

6364

65

66

67

68

697071

72

73

74

7576

77

7879

80

8182

83

84 8586

87

8889

9091

929394 95

96

3 4 5 6 7 8 9lag 19

log(

lynx

)

12

34

5

67

89

10

11

12

1314

15

16 1718

19

20

21

2223

24

25

26

2728

29

30 3132

33

34

353637

38

39

4041 42

43

44

45

4647

48

49

5051

52

53 5455

56

57

585960

6162

6364

65

66

67

68

6970 71

72

73

74

7576

77

7879

80

8182

83

84 8586

87

8889

9091

9293 9495

lag 20

log(

lynx

)

12

34

5

6789

10

11

12

1314

15

161718

19

20

21

2223

24

25

26

2728

29

303132

33

34

353637

38

39

404142

43

44

45

4647

48

49

5051

52

53 5455

56

57

5859 60

6162

636465

66

67

68

6970 71

72

73

74

7576

77

7879

80

8182

83

848586

87

8889

9091

929394

3 4 5 6 7 8 9

Figura 3.5: Linci canadesi. Diagrammi di autodispersione del logaritmo della serie

originale

24

Page 25: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

0 5 10 15 20

−0.

50.

00.

51.

0

Lag

AC

F

Series log(lynx)

Figura 3.6: Linci canadesi. Correlogramma

25

Page 26: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

Questa funzione, gemella di acf, calcola le stime della funzione di autocorrelazione

parziale.

3.5 Box.test

Box.test (y, lag = 1, type=c(Box-Pierce, Ljung-Box))

- y: serie temporale

- lag: il test è basato sui primi lag coefficienti di autocorrelazione;

- type: tipo di test; si osservi che se questo argomento non viene specificato il test

calcolato è quello di Box-Pierce.

Continuamo ad utilizzare la serie delle linci catturate in Canada come esempio.

> Box.test(lynx)

Box-Pierce test

data: lynxX-squared = 57.6, df = 1, p-value = 3.209e-14

> Box.test(lynx, type="Ljung-Box")

Box-Ljung test

data: lynxX-squared = 59.1292, df = 1, p-value = 1.477e-14

> Box.test(lynx, lag=10, type="L")

Box-Ljung test

data: lynxX-squared = 215.4452, df = 10, p-value = < 2.2e-16

26

Page 27: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

Come si vede quello che R mostra sono, oltre al nome del test e della serie tem-

porale, il valore della statistica (indicata con X-squared), il numero dei gradi di

libertà (df=l’argomento lag della funzione) e il livello di significatività osservato

(p-value). I valori di quest’ultimo sono così piccoli, in tutte le versioni provate, da

non lasciar alcun dubbio: la serie delle linci è autocorrelata.

Si osservi, come mostra l’ultimo esempio, che è possibile abbreviare il nome del test.

27

Page 28: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

4 Scomposizione di una serie temporale in componenti

elementari

4.1 seaplot

4.2 smoothts

4.3 sfilter

4.4 tsr e amici

4.5 trend, seasonal, remainder, detrend, deseasonal

4.6 residuals, fitted

28

Page 29: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

5 Modelli ARIMA

5.1 ARMAacf, ARMAtoMA

5.2 diff, diffinv

5.3 arima and friends

5.4 allArima, bestArima

29

Page 30: Analisi delle Serie Temporali con R - Sirio - Benvenutosirio.stat.unipd.it/files/ts02-03/tsR.pdfUna serie temporale può essere memorizzata in un vettore o, nel caso sia multiva-riata,

6 Cenno ad altre funzioni disponibili

6.1 Modelli strutturali

6.2 Lisciamento esponenziale

6.3 Funzioni “specializzate” per i modelli autoregressivi

6.4 Curve non-lineari per il trend

6.5 Modelli GARCH

30