previsione di serie storiche -...

28
09/11/2019 1 Previsione di serie storiche elementi introduttivi Vittorio Maniezzo Univ. Bologna 2 Everything Should Be Made as Simple as Possible, But Not Simpler Prediction is very difficult, especially about the future

Upload: others

Post on 20-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Previsione di serie storiche - unibo.itisi-personale.csr.unibo.it/vittorio.maniezzo/didattica/DSS/Time Series... · futuro ipotetico. 2. La previsione usa una sequenza temporizzata

09/11/2019

1

Previsione di serie storiche− elementi introduttivi –

Vittorio Maniezzo

Univ. Bologna

2

Everything Should Be

Made as Simple as

Possible, But Not

SimplerPrediction is very

difficult, especially

about the future

Page 2: Previsione di serie storiche - unibo.itisi-personale.csr.unibo.it/vittorio.maniezzo/didattica/DSS/Time Series... · futuro ipotetico. 2. La previsione usa una sequenza temporizzata

09/11/2019

2

Analitica previsionalePrevisioni

• Obiettivo primario è predire il futuro utilizzando i dati (serie

storiche o altro) disponibili adesso

Analitica

• Le previsioni sono alla base di decisioni che si prendono adesso

Esempi (in area gestionale)

• Previsione della domanda di beni e servizi

• Previsione della disponibilità o il fabbisogno di forza lavoro

• Previsione delle necessità di materiale e della disponibilità a

magazzino

• Previsione di ricavi, profitti e debiti per definire gli investimenti

Previsioni nella pianificazione

A breve termine (giorni, settimane)• Richieste di risorse

• Calendario turni

• Vendite dettaglio

A medio termine (settimane, mesi)• Vendite per tipologia di prodotto

• Necessità forza lavoro

• Richieste di risorse

A lungo termine (mesi, anni)• Trend di crescita

• Esigenze di stoccaggio

• Pattern di vendita, andamento di mercato

Page 3: Previsione di serie storiche - unibo.itisi-personale.csr.unibo.it/vittorio.maniezzo/didattica/DSS/Time Series... · futuro ipotetico. 2. La previsione usa una sequenza temporizzata

09/11/2019

3

Previsioni, caratteristiche

Normalmente sono sbagliate.

Una buona previsione non fornisce solo un numero:

• Specifica valori medi e dispersione

• Specifica l’intervallo di affidabilità

Normalmente le previsioni di dati aggregati sono più affidabili di

quelle specifiche.

Normalmente l’accuratezza cala progredendo nel futuro.

Le previsioni dovrebbero comunque essere integrate con dati

aggiuntivi, qualora disponibili.

Modelli previsionaliMolti modelli che permettono di fare previsioni

Previsioni

Oggettive

Modelli causali

Serie temporali

Giudizio esperti

Stazionarie

Trend

Delphi

Soggettive

Ricerche di

mercato

Econometrici

Page 4: Previsione di serie storiche - unibo.itisi-personale.csr.unibo.it/vittorio.maniezzo/didattica/DSS/Time Series... · futuro ipotetico. 2. La previsione usa una sequenza temporizzata

09/11/2019

4

Metodi soggettivi

Molto vari, includono:

• Sales Force Composite: aggregazione delle stime degli

agenti commerciali

• Sondaggi dei clienti

• Opinioni dei dirigenti

• Il metodo Delfi: posta la domanda, si raccolgono varie

opinioni individuali, e le si condivide in forma anonima al

gruppo. Poi, si ri-pone la domanda e si ripete tutto il

procedimento finché non si raggiunge un consenso nel gruppo.

Metodi oggettivi

I metodi oggettivi sono basati su modelli matematici. Si

richiedono le seguenti attività ad alto livello:

• Identificazione del modello (model specification) è il processo

di selezione della tecnica previsionale da utilizzare.

• Identificazione parametrica (model fitting) dato il modello

stima i parametri in modo da rendere i risultati compatibili

con i dati sperimentali.

• Validazione del modello (model diagnosis) determina quanto il

modello sia coerente con i dati sperimentali e quindi quanto

le assunzioni fatte siano soddisfatte.

Page 5: Previsione di serie storiche - unibo.itisi-personale.csr.unibo.it/vittorio.maniezzo/didattica/DSS/Time Series... · futuro ipotetico. 2. La previsione usa una sequenza temporizzata

09/11/2019

5

Previsioni, definizioni

• Orizzonte previsionale si riferisce al numero di

periodi futuri coperti dalla previsione.

• Periodo previsionale è l'unità di tempo per cui si

fanno le previsioni.

• Intervallo previsionale è la frequenza con cui si

effettuano nuove previsioni.

Vittorio Maniezzo - University of Bologna 9

Serie storiche

Una serie storica (o serie temporale) è semplicemente

un insieme di valori ordinati rispetto al tempo, esprime

la dinamica di un certo fenomeno nel tempo.

Modellisticamente, si suppone che esistano n

osservazioni provenienti da altrettante variabili casuali

dipendenti.

Obiettivo dello studio delle serie storiche è

l'individuazione di schemi nei dati passati, che si

ipotizzano ripetersi anche nel futuro.

Page 6: Previsione di serie storiche - unibo.itisi-personale.csr.unibo.it/vittorio.maniezzo/didattica/DSS/Time Series... · futuro ipotetico. 2. La previsione usa una sequenza temporizzata

09/11/2019

6

Serie storiche, esempiRilevanti in ogni settore economico. Esempi

Vittorio Maniezzo - University of Bologna 11

Organizzazione Serie

Commerciante Vendite giornaliere, settimanali, mensili, …

Azienda manufatt. Costo del lavoro mensile (ore o euro)

Azienda manufatt. Vendite trimestrali (unità o euro)

Amministrazione loc. Tasse (mensili)

Amministrazione loc. Permessi edilizi settimanali

Parrocchia Partecipazione alle messe, settimanali

Università Num. studenti iscritti (assoluto, percentuale)

Banca Mutui concessi settimanale (numero, euro)

Azienda agricola Produzione per ettaro, annuale

Azienda ospedaliera Giorni-uomo di degenza, mensile

Famiglia Costi telefonici, bimestrale

Serie storicheUn diagramma temporale (time-series plot) è un grafico

bidimensionale della serie storica.

L'asse verticale rappresenta la variabile e quello

orizzontale i periodi temporali.

Es.

http://www.tylervigen.com/spurious-correlations

Page 7: Previsione di serie storiche - unibo.itisi-personale.csr.unibo.it/vittorio.maniezzo/didattica/DSS/Time Series... · futuro ipotetico. 2. La previsione usa una sequenza temporizzata

09/11/2019

7

Serie storiche e previsione

La previsione di una serie storica cerca di predire I valori

che assumerà in futuro.

Due tipi di previsione:

• Previsione univariata: usa solo i valori precedenti

della stessa serie per predire i valori futuri.

• Previsione multivariata: usa dei predittori esterni alla

serie (variabili esogene) per la previsione.

Vittorio Maniezzo - University of Bologna 13

Previsione e regressioneSpesso si dice “previsione” se univariata e “regressione” se

multivariata (!).

Previsione usa dati passati (es. vendite passate) per predire i valori

futuri di dati omogenei (es. vendite future),

Regressione usa dati esogeni (es. gli attributi di una transazione)

per predire le vendite.

Nella regressione gli attributi esogeni della transizioni future

devono essere noti.

• Se si hanno dati indipendenti di eventi futuri, allora può

convenire la regressione.

• Se la situazione future è completamente sconosciuta, es. la

temperatura in un certo giorno, allora la previsione è l’unica

possibilità.

Vittorio Maniezzo - University of Bologna 14

Page 8: Previsione di serie storiche - unibo.itisi-personale.csr.unibo.it/vittorio.maniezzo/didattica/DSS/Time Series... · futuro ipotetico. 2. La previsione usa una sequenza temporizzata

09/11/2019

8

Previsione e regressione

Altra differenza fondamentale è il tempo.

La regressione può usare i dati storici per fare le previsioni, non è

richiesto. In regressione non è neanche necessario ordinare i dati

in ingresso dal passato al futuro.

La previsione richiede il tempo e la storia come componenti

indispensabili.

1. La regressione prevede un valore numerico in uno scenario

futuro ipotetico.

2. La previsione usa una sequenza temporizzata di dati per dire

come continuerà nei periodi successivi.

Vittorio Maniezzo - University of Bologna 15

LA serie storica

International airline passengers: monthly totals in

thousands. Jan 49 – Dec 60 (G.E.P. Box, G.M. Jenkins,

1976).

Vittorio Maniezzo - University of Bologna 16

Page 9: Previsione di serie storiche - unibo.itisi-personale.csr.unibo.it/vittorio.maniezzo/didattica/DSS/Time Series... · futuro ipotetico. 2. La previsione usa una sequenza temporizzata

09/11/2019

9

Un'altra serie storica

Vendite settore gioielli, USA (milioni di $).

Vittorio Maniezzo - University of Bologna 17

Dow Jones e arte

Vittorio Maniezzo - University of Bologna 18

Crisi del 2008

Page 10: Previsione di serie storiche - unibo.itisi-personale.csr.unibo.it/vittorio.maniezzo/didattica/DSS/Time Series... · futuro ipotetico. 2. La previsione usa una sequenza temporizzata

09/11/2019

10

Il nostro esempio (fil rouge)Daily tv sales

t anno trim. sales1 2004 1 1282 2 1813 3 874 4 2195 2005 1 4076 2 2267 3 2148 4 3839 2006 1 50510 2 38711 3 27812 4 52313 2007 1 57214 2 35415 3 40416 4 67317 2008 1 75218 2 46819 3 41920 4 725

Vittorio Maniezzo - University of Bologna 19

Componenti di serie storicheLa scomposizione di serie storiche identifica nella serie vari

componenti, ciascuno dei quali rappresenta una categoria di

contributi.

Una scomposizione comune prevede i componenti:

• Trend

• Stagionale

• Ciclico

• Casuale

• (occasionale)

Un modello comune è STL (seasonal decomposition of time series

by Loess, dove Loess sta per Local Regression), che scompone la

serie nei componenti stagionale, trend e irregolare. Il componente

ciclico è incluso nel trend.

Vittorio Maniezzo - University of Bologna 20

Page 11: Previsione di serie storiche - unibo.itisi-personale.csr.unibo.it/vittorio.maniezzo/didattica/DSS/Time Series... · futuro ipotetico. 2. La previsione usa una sequenza temporizzata

09/11/2019

11

Componenti serie storiche• Componente tendenziale (trend) è una crescita o diminuzione a

lungo termine della serie, in cui il tasso di variazione è

relativamente costante. Tipicamente rappresentata con un

modello lineare, quadratico o esponenziale.

• Componente stagionale contiene pattern ripetitivi , ad es.

associati a variazioni climatiche o calendariali, individuabili su

periodi annuali, mensili, settimanali, ecc.

• Componente ciclica fluttuazioni congiunturali non spiegate da

effetti di stagionalità, tipicamente dovute a variazioni delle

condizioni economiche (recessioni, espansioni).

• Componente casuale (accidentale), piccole oscillazioni dovute

ad eventi casuali.

• Componente occasionale, raro, dovuto a eventi bellici,

importanti innovazioni tecnologiche, crisi politiche etc. Vittorio Maniezzo - University of Bologna 21

Page 12: Previsione di serie storiche - unibo.itisi-personale.csr.unibo.it/vittorio.maniezzo/didattica/DSS/Time Series... · futuro ipotetico. 2. La previsione usa una sequenza temporizzata

09/11/2019

12

Vendite camper, USA

Vittorio Maniezzo - University of Bologna 23

Stagionalità

Qtr 4 minore di qtr 3

Qtr 3 maggiore di qtr 2

Qtr 2 maggiore di qtr 1

Qtr 1 maggiore di qtr 4

Trend a lungo termine

Ciclicità economica

Recessioni anni 80 e 90

Decomposizione, pythonimport os

import pandas as pd

from matplotlib import pyplot as plot

from statsmodels.tsa.seasonal import seasonal_decompose

os.chdir('c:\\AAAToBackup\\didattica\\Data analytics\\forecast')

plot.rcParams['figure.figsize'] = (10.0, 6.0)

series = pd.read_csv('BoxJenkins.csv',usecols=['Passengers'], header=0)

result = seasonal_decompose(series, model='multiplicative',freq=12)

result.plot()

plot.show()

Vittorio Maniezzo - University of Bologna 24

Page 13: Previsione di serie storiche - unibo.itisi-personale.csr.unibo.it/vittorio.maniezzo/didattica/DSS/Time Series... · futuro ipotetico. 2. La previsione usa una sequenza temporizzata

09/11/2019

13

Modelli di serie storiche Si fa l'ipotesi che i valori osservati �� nella serie storica siano il

risultato della combinazione di componenti di natura diversa.

• Andamento tendenziale di lungo periodo ��• Andamento stagionale �� (con periodo L)

• Andamento dovuto ai cicli economici ��• Residuo casuale, imprevedibile ��.

Relativamente al modo in cui le componenti si combinano si

distinguono modelli additivi e moltiplicativi (e misti).

Modelli additivi: �� � �� � �� � �� � ��Modelli moltiplicativi: �� � �� �� �� ��Modelli misti: �� � �� �� �� � ��

Vittorio Maniezzo - University of Bologna 25

Serie stazionarie

Condizioni di stazionarietà. Una serie storica si dice stazionaria se:

1. La sua media è costante nel tempo (stazionarietà in media);

2. La sua varianza è costante nel tempo (stazionarietà in

varianza);

3. Il rapporto tra valori distanti k periodi è influenzato solo da k,

non dal punto della serie in cui viene calcolata (stazionarietà in

covarianza).

In sostanza, una serie è stazionaria se la sua distribuzione è

invariante rispetto a traslazioni nel tempo.

Vittorio Maniezzo - University of Bologna 26

Page 14: Previsione di serie storiche - unibo.itisi-personale.csr.unibo.it/vittorio.maniezzo/didattica/DSS/Time Series... · futuro ipotetico. 2. La previsione usa una sequenza temporizzata

09/11/2019

14

Processo stazionario

Non ha nessun trend (stazionaria in media e varianza).

Non ha neanche stagionalità o cicli.

Vittorio Maniezzo - University of Bologna 27

0

10

20

30

40

50

60

70

80

Daily total female births in California, 1959

Stazionario con stagionalita

Questo è stazionario in media ma ha una stagionalità.

Vittorio Maniezzo - University of Bologna 28

0

2000

4000

6000

8000

10000

12000

19

73

-01

19

73

-03

19

73

-05

19

73

-07

19

73

-09

19

73

-11

19

74

-01

19

74

-03

19

74

-05

19

74

-07

19

74

-09

19

74

-11

19

75

-01

19

75

-03

19

75

-05

19

75

-07

19

75

-09

19

75

-11

19

76

-01

19

76

-03

19

76

-05

19

76

-07

19

76

-09

19

76

-11

19

77

-01

19

77

-03

19

77

-05

19

77

-07

19

77

-09

19

77

-11

19

78

-01

19

78

-03

19

78

-05

19

78

-07

19

78

-09

19

78

-11

Morti accidentali negli U.S.A.

Page 15: Previsione di serie storiche - unibo.itisi-personale.csr.unibo.it/vittorio.maniezzo/didattica/DSS/Time Series... · futuro ipotetico. 2. La previsione usa una sequenza temporizzata

09/11/2019

15

DiscontinuitàPIL Italia dal 1861

Vittorio Maniezzo - University of Bologna 29

Serve una variazione di modello.

Componente occasionale.

Train−Test SplitE’ necessario scomporre il dataset in training e testing set.

Il modello va definito sul set di training ma le previsioni vanno

fatte e valutate sul set di test.

La scomposizione viene fatta selezionando un punto di taglio

arbitrario nella lista delle osservazioni e creando due nuovi

dataset. A seconda della quantità di dati disponibili, si possono

fare scomposizioni 50-50, 70-30 e 90-10.

Vittorio Maniezzo - University of Bologna 30

import pandas as pd, osfrom matplotlib import pyplotos.chdir('/AAAToBackup/didattica/SistemiSupportoDecisioni/forecast/serie storiche')series = pd.read_csv('BoxJenkins.csv', header=0,usecols=['Passengers'])X = series.valuestrain_size = int(len(X) * 0.66)train, test = X[0:train_size], X[train_size:len(X)]print('Observations: %d' % (len(X)))print('Training Observations: %d' % (len(train)))print('Testing Observations: %d' % (len(test)))pyplot.plot(train); pyplot.plot([None for i in train] + [x for x in test])pyplot.show()

Page 16: Previsione di serie storiche - unibo.itisi-personale.csr.unibo.it/vittorio.maniezzo/didattica/DSS/Time Series... · futuro ipotetico. 2. La previsione usa una sequenza temporizzata

09/11/2019

16

Momenti fondamentali

Data una serie storica � � ���, … , ���, la descrizione

statistica si basa su tre momenti principali:

• media: �� � ����;

• varianza: ��� � � � � �� �

• autocovarianza: ��,� � ���� � ����� � ����(correla i valori al tempo t con i valori al tempo s = t-

i, i=1, …, k. Rappresentata da autocorrelogrammi, v.

dopo)

Vittorio Maniezzo - University of Bologna 31

PreprocessingLa serie storica più facile da prevedere.

Si cercherà di ricondursi a questo caso con pre-

elaborazioni sui dati.

Vittorio Maniezzo - University of Bologna 32

Page 17: Previsione di serie storiche - unibo.itisi-personale.csr.unibo.it/vittorio.maniezzo/didattica/DSS/Time Series... · futuro ipotetico. 2. La previsione usa una sequenza temporizzata

09/11/2019

17

DifferenziazioneUna serie viene resa stazionaria in media mediante

differenziazione (del primo ordine) sottraendo al valore

corrente il valore assunto dalla serie al tempo

precedente:

��� � �� � ����Se la serie �� ha un trend lineare, la serie risultante ��� è

stazionaria in media.

Differenziazione del secondo ordine:

���� � ��� � ����� � �� � 2���� � ����Differenziazione stagionale: si sottrae al dato quello

corrispondente nella stagione precedente

��� � �� � ����Vittorio Maniezzo - University of Bologna 33

Fil rouge, differenziazione

Vittorio Maniezzo - University of Bologna 34

t yt

differenz

1 128

2 181 53

3 87 -94

4 219 132

5 407 188

6 226 -181

7 214 -12

8 383 169

9 505 122

10 387 -118

11 278 -109

12 523 245

13 572 49

14 354 -218

15 404 50

16 673 269

17 752 79

18 468 -284

19 419 -49

20 725 306

Annullato il

trend lineare!

Page 18: Previsione di serie storiche - unibo.itisi-personale.csr.unibo.it/vittorio.maniezzo/didattica/DSS/Time Series... · futuro ipotetico. 2. La previsione usa una sequenza temporizzata

09/11/2019

18

Log transformUna trasformazione logaritmica può rendere stazionaria la serie

sia in varianza che, combinata al diff, in media.

Vittorio Maniezzo - University of Bologna 35

La funzione y = ln(x) nel punto (1,0) è

tangente alla retta y = x-1.

Quindi ln(1+r) ≈ r quando r è piccolo

rispetto a 1 (es. 1 ± 0.2).

Se x cresce percentualmente di poco, es.

5%, cambia da x a x(1+r), con r = 0.05. si

ha che:

ln(x(1+r)) = ln(x) + ln(1+r) ≈ ln(x) + r

Se x cresce del 5% il log di x cresce da

ln(x) a ln(x) + 0.05.

Aumentare x del 5% corrisponde (circa)

ad aggiungere 0.05 a ln(x).

Una variazione percentuale nella serie al periodo t è definita

come (yt-yt-1)/yt-1, che è circa uguale a ln(yt) - ln(yt-1)

Log transform, esempio

Vittorio Maniezzo - University of Bologna 36

Page 19: Previsione di serie storiche - unibo.itisi-personale.csr.unibo.it/vittorio.maniezzo/didattica/DSS/Time Series... · futuro ipotetico. 2. La previsione usa una sequenza temporizzata

09/11/2019

19

Trend line, pythonCalcolo di trend quadratico (dati in colonna, da trasporre, come

da esempio precedente)

plt.plot(train);

plt.plot([None for i in train] + [x for x in test])

y = X.transpose()[0]

x = np.arange(len(y))

z = np.polyfit(x, y, 2) # qui quandratico (1 lineare)

p = np.poly1d(z)

plt.plot(x,p(x),"r--")

plt.show()

Oppure:import seaborn as sns

sns.regplot(x=np.arange(len(series['Passengers'])),y='Passengers',data=series, fit_reg=True)

Vittorio Maniezzo - University of Bologna 37

Fil rouge, log transform

Vittorio Maniezzo - University of Bologna 38

Annullato il trend

sulla varianza!

t yt

log log-diff

1 128 4.85

2 181 5.20 0.35

3 87 4.47 -0.73

4 219 5.39 0.92

5 407 6.01 0.62

6 226 5.42 -0.59

7 214 5.37 -0.05

8 383 5.95 0.58

9 505 6.22 0.28

10 387 5.96 -0.27

11 278 5.63 -0.33

12 523 6.26 0.63

13 572 6.35 0.09

14 354 5.87 -0.48

15 404 6.00 0.13

16 673 6.51 0.51

17 752 6.62 0.11

18 468 6.15 -0.47

19 419 6.04 -0.11

20 725 6.59 0.55

Annullato il trend su

media e varianza!

Page 20: Previsione di serie storiche - unibo.itisi-personale.csr.unibo.it/vittorio.maniezzo/didattica/DSS/Time Series... · futuro ipotetico. 2. La previsione usa una sequenza temporizzata

09/11/2019

20

Log transform• Linearizzazione di crescite esponenziali (e inflazione): ln(xy) =

ln(x) + ln(y), quindi il log trasforma relazioni moltiplicative in

additive e trend esponenziali in lineari. Si possono utilizzare

modelli lineari per processi moltiplicativi.

• Trend misurati in unità logaritmiche ≈ crescite percentuali: la

pendenza di un trend calcolato su dati log è uguale alla crescita

percentuale media della serie originale.

• Errori misurati su dati log ≈ errori percentuali: gli errori nelle

previsioni su dati log sono interpretabili come errori

percentuali sulle serie originali.

Vittorio Maniezzo - University of Bologna 39

CMA, centered MA

Vittorio Maniezzo - University of Bologna 40

anno trimestre hits

2001 1 267

2 108

3 109

4 216

2002 1 414

2 279

3 207

4 417

Medie mobili su 4 trimestri. Vanno inserite al centro del

periodo calcolato

MA(4) va

inserita

qui, riga

2.5. Non

si può,

metto in

riga 3.

175.00

211.75

254.50

279.00

329.25

In riga 3

metto la

media

fra riga

2.5 e riga

3.5 e va

tutto a

posto

193.38

233.13

266.75

304.13

Page 21: Previsione di serie storiche - unibo.itisi-personale.csr.unibo.it/vittorio.maniezzo/didattica/DSS/Time Series... · futuro ipotetico. 2. La previsione usa una sequenza temporizzata

09/11/2019

21

Fil rouge, con CMA(4)

Vittorio Maniezzo - University of Bologna 41

Chiamata anche

Baseline

anno trim. sales MA(4) CMA(4)

2004 1 128

2 181

3 87 153.75 188.625

4 219 223.5 229.125

2005 1 407 234.75 250.625

2 226 266.5 287

3 214 307.5 319.75

4 383 332 352.125

2006 1 505 372.25 380.25

2 387 388.25 405.75

3 278 423.25 431.625

4 523 440 435.875

2007 1 572 431.75 447.5

2 354 463.25 482

3 404 500.75 523.25

4 673 545.75 560

2008 1 752 574.25 576.125

2 468 578 584.5

3 419 591

4 725

CorrelogrammiUn correlogramma, o autocorrelogramma, è un grafico che

rappresenta la autocorrelazione di una serie storica in funzione

del ritardo con cui la autocorrelazione è calcolata.

Per costruire un correlogramma, si esaminano le correlazioni tra

la serie storica e più serie ritardate di k periodi;

Ad esempio, data Y = (y1, ... , yn) si costruisce la tabella sotto e si

esaminano le K correlazioni tra la colonna yt e ciascuna delle K

colonne yt-k

Vittorio Maniezzo - University of Bologna 42

Page 22: Previsione di serie storiche - unibo.itisi-personale.csr.unibo.it/vittorio.maniezzo/didattica/DSS/Time Series... · futuro ipotetico. 2. La previsione usa una sequenza temporizzata

09/11/2019

22

CorrelogrammiSi parte sempre dalla (K+1)-esima riga, in modo da confrontare

sempre serie di uguale lunghezza

Si calcola un valore di �� facendo variare k da 1 a K e rilevando la

correlazione �� tra la colonna � , di media �� , e la colonna della

variabile ritardata ���:

�� � ∑ � � �� ��� � �� �!�"�∑ � � �� � �!�"�

Le coppie di valori (k, ��) sono presentate in un grafico

cartesiano, con i ritardi sulle ascisse e le corrispondenti

correlazioni sulle ordinate:

Vittorio Maniezzo - University of Bologna 43

Correlogramma

I correlogrammi possono presentare gli andamenti più

disparati, ma si hanno le seguenti tre situazioni tipiche:

Vittorio Maniezzo - University of Bologna 44

Page 23: Previsione di serie storiche - unibo.itisi-personale.csr.unibo.it/vittorio.maniezzo/didattica/DSS/Time Series... · futuro ipotetico. 2. La previsione usa una sequenza temporizzata

09/11/2019

23

Fil rouge, correlogramma

Vittorio Maniezzo - University of Bologna 45

yt yt-1 yt-2 yt-3 yt-4 yt-5 yt-6 yt-7 yt-8

1 128

2 181 128

3 87 181 128

4 219 87 181 128

5 407 219 87 181 128

6 226 407 219 87 181 128

7 214 226 407 219 87 181 128

8 383 214 226 407 219 87 181 128

9 505 383 214 226 407 219 87 181 128

10 387 505 383 214 226 407 219 87 181

11 278 387 505 383 214 226 407 219 87

12 523 278 387 505 383 214 226 407 219

13 572 523 278 387 505 383 214 226 407

14 354 572 523 278 387 505 383 214 226

15 404 354 572 523 278 387 505 383 214

16 673 404 354 572 523 278 387 505 383

17 752 673 404 354 572 523 278 387 505

18 468 752 673 404 354 572 523 278 387

19 419 468 752 673 404 354 572 523 278

20 725 419 468 752 673 404 354 572 523

r 0.13 -0.38 0.37 0.91 0.14 -0.27 0.56 0.84

Stagionalità su 4

import os

import numpy as np, pandas as pd, matplotlib.pyplot as plt

from statsmodels.graphics.tsaplots import plot_acf, plot_pacf

# Import data

os.chdir('c:\\AAAToBackup\\didattica\\Data analytics\\forecast\python')

df = pd.read_csv('..\\rawAirlinesPassengers.csv', usecols=[0], names=['value'], engine='python', header=0)

# Original Series

plt.rcParams.update({'figure.figsize':(9,7), 'figure.dpi':120})

fig, axes = plt.subplots(2, 2, sharex=True)

axes[0, 0].plot(df.value); axes[0, 0].set_title('Original Series')

plot_acf(df.value, ax=axes[0, 1])

# 1st Differencing

axes[1, 0].plot(df.value.diff()); axes[1, 0].set_title('1st Order Differencing')

plot_acf(df.value.diff().dropna(), ax=axes[1, 1])

plt.show()

Python, ACF

Vittorio Maniezzo - University of Bologna 46

Page 24: Previsione di serie storiche - unibo.itisi-personale.csr.unibo.it/vittorio.maniezzo/didattica/DSS/Time Series... · futuro ipotetico. 2. La previsione usa una sequenza temporizzata

09/11/2019

24

Fil rouge, destagionalizzazioneAssumiamo un modello moltiplicativo senza componenti cicliche:

�� � �� �� ��Baseline: �� � �� ����⁄

Vittorio Maniezzo - University of Bologna 47

Il 3 trim. del 2004 era

al 46% della baseline

(54% sotto)

Il 1 trim. del 2007 era

al 118% della baseline

(18% sopra)

yt yt/CMA

t anno trim. sales MA(4) baseline st rt

1 2004 1 128

2 2 181

3 3 87 153.75 188.63 0.46

4 4 219 223.50 229.13 0.96

5 2005 1 407 234.75 250.63 1.62

6 2 226 266.50 287.00 0.79

7 3 214 307.50 319.75 0.67

8 4 383 332.00 352.13 1.09

9 2006 1 505 372.25 380.25 1.33

10 2 387 388.25 405.75 0.95

11 3 278 423.25 431.63 0.64

12 4 523 440.00 435.88 1.20

13 2007 1 572 431.75 447.50 1.28

14 2 354 463.25 482.00 0.73

15 3 404 500.75 523.25 0.77

16 4 673 545.75 560.00 1.20

17 2008 1 752 574.25 576.13 1.31

18 2 468 578.00 584.50 0.80

19 3 419 591.00

20 4 725

Fil rouge, destagionalizzazioneQui stagionalità di 4 periodi. Per individuare st da strt si mediano i

dati corrispondenti e si riportano le medie in tutte le righe.

Vittorio Maniezzo - University of Bologna 48

st

1.38

0.82

0.64

1.11

1.38

0.82

0.64

1.11

1.38

0.82

0.64

1.11

1.38

0.82

0.64

1.11

1.38

0.82

0.64

1.11

media copia

yt yt/CMA

t anno trim. sales st rt

1 2004 1 128

2 2 181

3 3 87 0.46

4 4 219 0.96

5 2005 1 407 1.62

6 2 226 0.79

7 3 214 0.67

8 4 383 1.09

9 2006 1 505 1.33

10 2 387 0.95

11 3 278 0.64

12 4 523 1.20

13 2007 1 572 1.28

14 2 354 0.73

15 3 404 0.77

16 4 673 1.20

17 2008 1 752 1.31

18 2 468 0.80

19 3 419

20 4 725

t st

1 1.38

2 0.82

3 0.64

4 1.11

Page 25: Previsione di serie storiche - unibo.itisi-personale.csr.unibo.it/vittorio.maniezzo/didattica/DSS/Time Series... · futuro ipotetico. 2. La previsione usa una sequenza temporizzata

09/11/2019

25

Fil rouge, destagionalizzazionePer eliminare l’effetto di st, basta dividere per st.

Restano componenti di trend e casuale.

Vittorio Maniezzo - University of Bologna 49

t yt

st

destag.

1 128 1.38 92.49

2 181 0.82 220.98

3 87 0.64 136.65

4 219 1.11 197.07

5 407 1.38 294.10

6 226 0.82 275.92

7 214 0.64 336.12

8 383 1.11 344.64

9 505 1.38 364.92

10 387 0.82 472.47

11 278 0.64 436.65

12 523 1.11 470.62

13 572 1.38 413.33

14 354 0.82 432.19

15 404 0.64 634.55

16 673 1.11 605.60

17 752 1.38 543.40

18 468 0.82 571.36

19 419 0.64 658.11

20 725 1.11 652.39

Coefficienti

Errore

standard Stat t

Intercetta 115.2272 23.33137 4.938724

Variabile X 1 27.85254 1.947665 14.30048

Fil rouge, derandomizzazioneCol metodo minimi quadrati (LMS) si individua la retta di

regressione dei dati della serie, per trend lineare.

Es., con Analisi dati -> regressione.

Vittorio Maniezzo - University of Bologna 50

Il trend c’è!

t yt

destag. Tt

1 128 92.49 143.08

2 181 220.98 170.93

3 87 136.65 198.78

4 219 197.07 226.64

5 407 294.10 254.49

6 226 275.92 282.34

7 214 336.12 310.19

8 383 344.64 338.05

9 505 364.92 365.90

10 387 472.47 393.75

11 278 436.65 421.61

12 523 470.62 449.46

13 572 413.33 477.31

14 354 432.19 505.16

15 404 634.55 533.02

16 673 605.60 560.87

17 752 543.40 588.72

18 468 571.36 616.57

19 419 658.11 644.43

20 725 652.39 672.28

Page 26: Previsione di serie storiche - unibo.itisi-personale.csr.unibo.it/vittorio.maniezzo/didattica/DSS/Time Series... · futuro ipotetico. 2. La previsione usa una sequenza temporizzata

09/11/2019

26

Minimi quadratiSi cerca la retta interpolante y = ax + b che ne minimizza lo scarto

quadratico medio con le osservazioni (xi, yi).

Si vuole minimizzare

$ %& , �& � %& , '%& � ( �)

)Coefficienti:

( � * ⋅ ∑ %&�&)) � ∑ %& ⋅ ∑ �&))))* ⋅ ∑ %&�)) � ∑ %&)) �

Quindi, avendo i valori medi %̅ e �-:

' � �- � ( ⋅ %̅

Vittorio Maniezzo - University of Bologna 51

Fil rouge, derandomizzazioneSi elimina il rumore, calcolando �� � �� �� (qui .� ��)

Vittorio Maniezzo - University of Bologna 52

t yt

st Tt st Tt

1 128 1.38 143.08 198.00

2 181 0.82 170.93 140.01

3 87 0.64 198.78 126.56

4 219 1.11 226.64 251.86

5 407 1.38 254.49 352.18

6 226 0.82 282.34 231.26

7 214 0.64 310.19 197.49

8 383 1.11 338.05 375.67

9 505 1.38 365.90 506.36

10 387 0.82 393.75 322.52

11 278 0.64 421.61 268.42

12 523 1.11 449.46 499.48

13 572 1.38 477.31 660.54

14 354 0.82 505.16 413.78

15 404 0.64 533.02 339.35

16 673 1.11 560.87 623.29

17 752 1.38 588.72 814.72

18 468 0.82 616.57 505.03

19 419 0.64 644.43 410.29

20 725 1.11 672.28 747.10

Page 27: Previsione di serie storiche - unibo.itisi-personale.csr.unibo.it/vittorio.maniezzo/didattica/DSS/Time Series... · futuro ipotetico. 2. La previsione usa una sequenza temporizzata

09/11/2019

27

Fil rouge, previsione (empirica)

Avendo i coefficienti delle componenti di trend e stagionale, si

può proiettare il modello su periodi futuri.

Vittorio Maniezzo - University of Bologna 53

t yt st Tt st Tt Forecast

1 128 1.38 143.08 198.00

2 181 0.82 170.93 140.01

3 87 0.64 198.78 126.56

4 219 1.11 226.64 251.86

5 407 1.38 254.49 352.18

6 226 0.82 282.34 231.26

7 214 0.64 310.19 197.49

8 383 1.11 338.05 375.67

9 505 1.38 365.90 506.36

10 387 0.82 393.75 322.52

11 278 0.64 421.61 268.42

12 523 1.11 449.46 499.48

13 572 1.38 477.31 660.54

14 354 0.82 505.16 413.78

15 404 0.64 533.02 339.35

16 673 1.11 560.87 623.29

17 752 1.38 588.72 814.72

18 468 0.82 616.57 505.03

19 419 0.64 644.43 410.29

20 725 1.11 672.28 747.10 747.10

968.89

596.29

481.22

870.91

La varianza cresce troppo.

Un preprocessing con log

transform era utile.

Misure accuratezza previsione/ � �%�, … , %��, dati osservati, 0 � �1�, … , 1�� dati previsti

• BIAS:

media aritmetica degli errori 2345 � ∑ 78�98:8;<�

• MAD (Mean Absolute Deviation):

media degli errori assoluti =4> � ∑ 78�98:8;<�

• MSE (Mean Squared Error)

media degli errori quadratici =5� � ∑ 78�98 ?:8;<�

• Standard Error: =5�)

• MAPE (Mean Absolute Percent Error)

media degli errori assoluti in percentuale: =4@� � ∑ A8BC8

C8∗�EE:8;<

Page 28: Previsione di serie storiche - unibo.itisi-personale.csr.unibo.it/vittorio.maniezzo/didattica/DSS/Time Series... · futuro ipotetico. 2. La previsione usa una sequenza temporizzata

09/11/2019

28

Python, metriche accuratezzaimport os, numpy as np, pandas as pd, matplotlib.pyplot as plt

from statsmodels.tsa.stattools import acf

# Import data

os.chdir('c:\\AAAToBackup\\didattica\\Data analytics\\forecast\python')

df = pd.read_csv('..\\rawAirlinesPassengers.csv', usecols=[0], names=['value'], engine='python', header=0)

# Accuracy metrics

def forecast_accuracy(forecast, actual):

mape = np.mean(np.abs(forecast - actual)/np.abs(actual)) # MAPE

me = np.mean(forecast - actual) # ME

mae = np.mean(np.abs(forecast - actual)) # MAE

mpe = np.mean((forecast - actual)/actual) # MPE

rmse = np.mean((forecast - actual)**2)**.5 # RMSE

corr = np.corrcoef(forecast, actual)[0,1] # corr

mins = np.amin(np.hstack([forecast[:,None], actual[:,None]]), axis=1)

maxs = np.amax(np.hstack([forecast[:,None], actual[:,None]]), axis=1)

minmax = 1 - np.mean(mins/maxs) # minmax

acf1 = acf(forecast-actual)[1] # ACF1

return({'mape':mape, 'me':me, 'mae': mae,

'mpe': mpe, 'rmse':rmse, 'acf1':acf1,

'corr':corr, 'minmax':minmax})

print( forecast_accuracy(forecast_values, test.values) )

Vittorio Maniezzo - University of Bologna 55