Capitolo 1 – Introduzione
1.2 Formulazione del problema specifico, sfi-
de/ostacoli
L’ obiettivo che ci si è posto inizialmente, è stato quello di creare un
modello di previsione accurato su un set di dati provenienti da una società
di servizi informatici con sede a Milano. Preliminarmente, si è dovuta fare
una selezione sia sui dati delle richieste (workload), sia su quelli delle me-
triche interne (cpu, memoria, utilizzo dischi, ecc.), per capire le possibili
relazioni e valutare quale modello di previsione fosse il più adatto.
A questo scopo si è dovuto utilizzare un software di manipolazione
dati quali Mysql per estrapolare i dati più significativi da un file di log del
nostro server di circa 1.250.000 righe.
Dopo questo lavoro di selezione, abbiamo elaborato dei grafici sui
nostri dati, sia per il workload che per le metriche interne, per capire le e-
ventuali correlazioni tra le varie metriche. In questo caso, la mole dei grafi-
ci si attestava sulle migliaia di unità, quindi è stato necessario affidarsi ad
un programma di automazione.
Per la creazione dei grafici ci siamo affidati al programma statistico
R e, grazie ad alcuni script realizzati ad hoc, abbiamo creato varie tipologie
di grafici: grafici dei dati grezzi, grafici di correlazione e grafici di fit.
Il passo successivo è stato l’analisi dei grafici per osservare le even-
tuali correlazioni tra i dati ed elaborare un modello di previsione accurato.
Abbiamo quindi deciso di concentrarci sulla previsione del workload (ri-
chieste), lasciando l’analisi delle metriche interne a lavori futuri.
Per prevedere l’andamento del workload abbiamo selezionato un
modello ARIMA (auto regressive integrated moving average models) adat-
to per le serie temporali, mentre per la grande mole di dati che dovevamo
trattare ci siamo affidati al programma R, e nello specifico, ad una libreria
8
Capitolo 1 – Introduzione
di esso: la Zelig [1]. Questo package, sviluppato dall’Università di Harvard,
permette una perfetta trattazione dei modelli di previsione ARIMA, sempli-
ficando il settaggio (di solito complesso) dei vari parametri per avere un
modello di previsione il più possibile attinente alla realtà.
Infine, abbiamo verificato l’accuratezza del nostro lavoro facendo
delle prove di predizione con dati reali in nostro possesso: i risultati sono
stati buoni e in linea con le nostre aspettative.
9
Capitolo 2
Stato dell’arte
2.1 Serie Temporali
Una serie temporale è una sequenza di osservazioni di una variabile
in funzione del tempo. In quasi tutti i casi, e in particolare per serie di dati
socio-economici, l'osservazione di questa variabile avviene in istanti di
tempo consecutivi e intervallati in modo regolare e costante: ogni anno, o-
gni trimestre oppure ogni mese.
Lo studio di tale successione trova la propria ragion d'essere nel fatto
che, la conoscenza di quanto è avvenuto, determina ciò che avverrà secon-
do un principio generale di inerzia e di stabilità delle leggi che conosciamo.
Nel caso in cui la serie storica oggetto di studio non è di tipo deterministico
ma si basa su una certa distribuzione di probabilità, sarà chiamata processo
stocastico [2].
Si definisce processo stocastico una famiglia di variabili casuali ca-
ratterizzate da un parametro "t" (nel caso delle serie storiche, tale parame-
tro, consiste nell'unità di tempo considerata). Tali variabili casuali sono de-
finite tutte nel medesimo spazio fondamentale "S". Lo spazio fondamentale
è l’insieme degli eventi possibili. Quando si parla di variabili casuali esso
coincide con il campo di esistenza di una funzione, la variabile casuale ap-
punto, la quale va da SÆR con R insieme dei numeri reali[3].
In altre parole, si può affermare che, una data serie temporale è una
particolare realizzazione di un processo stocastico.
10
Capitolo 2 – Stato dell’arte
La serie temporale sotto analisi (detta anche originale) sarà chiamata
e saranno esaminati solo dati mensili o trimestrali.
t
y
2.1.1 Identificazione e Previsione
Prima di approfondire l’analisi dell’investigazione di una serie stori-
ca, vanno sottolineate le due principali finalità da perseguire allorquando si
studia una sequenza di dati osservati nel corso del tempo: per prima cosa,
va identificata la natura del fenomeno rappresentato dalla sequenza di os-
servazioni a disposizione; successivamente, si valuterà la possibilità di ope-
rare previsioni attendibili, di sequenze di dati futuri, sulla base delle infor-
mazioni disponibili a partire dalla sequenza osservata [4].
Tali fattori vengono riportati in letteratura rispettivamente con i ter-
mini di identificazione e previsione. Per perseguire entrambi, molto spes-
so, si assume che i dati siano la realizzazione di una combinazione nota di
un set di componenti predefinite, più un termine di errore di natura stocasti-
ca, che normalmente crea delle difficoltà di identificazione del modello che
si presta meglio a spiegare il fenomeno osservato. In generale, va detto che
la maggior parte delle serie storiche possono essere descritte in termini di
due componenti fondamentali: il trend e la stagionalità.
Il primo rappresenta una componente della serie che cambia nel cor-
so del tempo senza tuttavia presentare dei cicli prevedibili a priori; la com-
ponente stagionale, al contrario, esprime delle variazioni riscontrabili ad in-
tervalli regolari e sistematici. Per quanto riguarda l’analisi del trend, va sot-
tolineato che non esistono tecniche sempre valide ed “immediate” per evi-
denziarlo, tuttavia, laddove il trend è monotono, crescente o decrescente,
l’analisi risulta piuttosto facilitata. Molto spesso, una semplice osservazione
visiva della serie, permette di diagnosticare la presenza di un trend; tuttavia,
11
Capitolo 2 – Stato dell’arte
laddove non si è certi di poter fare affidamento su semplici impressioni, può
essere utile analizzare le funzioni di autocorrelazione [5].
Spesso è necessario, al di là della mera evidenziazione, rimuovere la
componente di trend. A riguardo esistono varie metodologie, e tra tutte la
più usata, nonché la più facile da utilizzare, risulta essere quella delle diffe-
renze successive. Tale approccio si rivela molto conveniente quando si ri-
mane nell’ambito della modellistica ARIMA, di seguito analizzata [6]. In
generale tuttavia, risulta utile “ridurre” la presenza di “fattori di disturbo”
che possono “nascondere” la componente di trend: tale obiettivo può essere
raggiunto attraverso l’utilizzo di opportune medie mobili.
La componente stagionale è invece facilmente riscontrabile osser-
vando l’eventuale correlazione tra un elemento della serie e gli elementi
successivi. Va sottolineato inoltre che, anche per “smussare” le componenti
stagionali, le medie mobili rappresentano un metodo efficace in quanto, per
costruzione, tendono a ridimensionare eventuali “outperformance”.
2.1.2 Stock and flow
Variabili di diverso tipo possono essere interessate dall'analisi. Di-
stinguiamo due tipi principali di variabili:
• stock type, o livello: il loro valore è associato a un dato mo-
mento, ad esempio, l'ammontare del tuo conto in banca al 30
novembre 2001, la quantità di moneta circolante oppure il
numero di persone alla ricerca di lavoro in un certo istante;
• flow type: relativo a somme associate ad un periodo di tempo
come, ad esempio, il totale delle tue spese nel mese di no-
12
Capitolo 2 – Stato dell’arte
vembre 2001, il totale di banconote emesse o il numero di di-
soccupati registrati in un dato periodo.
È importante conoscere la natura della variabile in esame. Infatti,
quando è necessario cambiare l'unità temporale (attraverso dei raggruppa-
menti), i metodi da applicare sono completamente diversi. Supponiamo che
si debbano ottenere dati trimestrali a partire da dati mensili. In caso di
stock, possiamo utilizzare il valore osservato alla fine del trimestre oppure
utilizzare la media tra i valori di ogni mese del trimestre considerato. Per un
flow, il valore trimestrale sarà la sommatoria di quelli mensili.
In modo simile, l'unità richiesta per esprimere il valore cambia a se-
conda che si tratti di stock o flow. Se si studiano totali monetari, uno stock
verrà espresso in euro (o altre valute), un flow verrà espresso come euro su
unità di tempo (€/mese, ecc.). In quest'ultimo caso, pensa a come esprimere
il tuo salario: mensilmente o annualmente?
La distinzione tra stock e flow può essere pertinente nel caso di ag-
giustamenti stagionali, perché l'impatto di “effetti calendariali” non è lo
stesso per i due tipi considerati.
Lo studio di una serie temporale può essere motivato da due differen-
ti interessi:
● congiuntura, concomitanza;
● previsione.
L'analisi congiunturale punta a interpretare la situazione corrispon-
dente agli ultimi dati osservati: cosa è accaduto il mese scorso? Cosa sta ac-
cadendo oggi? Siamo in un periodo di crescita, di stabilità, o di calo? L'an-
damento osservato è strutturale (spiegabile), o accidentale?
13
Capitolo 2 – Stato dell’arte
L'analisi predittiva mira alla previsione. Tutti i metodi automatici so-
no basati sulla supposizione implicita che le informazioni relative al futuro
possano essere trovate nel passato o nel presente dei dati. Pertanto è richie-
sta un'analisi di queste informazioni.
2.1.3 Pre-aggiustamento
Nei due contesti appena esposti, un approccio classico consiste nel
tentare di decomporre la serie in più elementi o componenti. Tale approccio
è decisamente naturale; è già in forma embrionica ed è interamente intuitiva
quando si guardano rappresentazioni grafiche simili a questa:
Figura 1.1: Esempio di Serie Temporale
È visibilmente facile identificare una forma di pre-aggiustamento
della serie originale. Sono visibili:
• trend;
14