+ All Categories
Home > Documents > Serie Storiche Finanziarie: Studio e Previsione · Universit a degli Studi di Torino Facolt a di...

Serie Storiche Finanziarie: Studio e Previsione · Universit a degli Studi di Torino Facolt a di...

Date post: 14-Feb-2019
Category:
Upload: dinhkhanh
View: 216 times
Download: 0 times
Share this document with a friend
168
Universit` a degli Studi di Torino Facolt`a di Scienze MFN Corso di Laurea Magistrale in Fisica dei Sistemi Complessi Tesi di laurea magistrale Serie Storiche Finanziarie: Studio e Previsione Candidato: Marcello Gomitoni Matricola 731074 Relatore: Pietro Terna Controrelatore: Michele Caselle Anno Accademico 2012–2013
Transcript

Universita degli Studi di Torino

Facolta di Scienze MFN

Corso di Laurea Magistrale in Fisica dei SistemiComplessi

Tesi di laurea magistrale

Serie Storiche Finanziarie:Studio e Previsione

Candidato:Marcello GomitoniMatricola 731074

Relatore:Pietro Terna

Controrelatore:Michele Caselle

Anno Accademico 2012–2013

Indice

Elenco delle figure iv

Elenco delle tabelle v

Introduzione vi

1 Futures 11.1 Origine e Finalita . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1.1 Differenze tra Forward e Futures . . . . . . . . . . . . 21.1.2 Il Mercato dei Futures . . . . . . . . . . . . . . . . . . 4

1.2 Determinazione del Prezzo . . . . . . . . . . . . . . . . . . . 61.2.1 Definizioni e Parametri . . . . . . . . . . . . . . . . . 61.2.2 Arbitraggio . . . . . . . . . . . . . . . . . . . . . . . . 7

1.3 Futures su Indici . . . . . . . . . . . . . . . . . . . . . . . . . 101.3.1 Analisi e Comparazione dei Futures . . . . . . . . . . 12

2 Serie Storiche e Modelli 192.1 Serie Finanziarie . . . . . . . . . . . . . . . . . . . . . . . . . . 192.2 Analisi Lineare Univariata . . . . . . . . . . . . . . . . . . . . 21

2.2.1 Stazionarieta . . . . . . . . . . . . . . . . . . . . . . . 212.2.2 Funzione di Autocorrelazione (ACF) . . . . . . . . . . 22

2.3 Modelli Lineari Univariati . . . . . . . . . . . . . . . . . . . . 232.3.1 Modello Autoregressivo (AR) . . . . . . . . . . . . . . 242.3.2 Modello a Media Mobile (MA) . . . . . . . . . . . . . 282.3.3 Modello Autoregressivo a Media Mobile (ARMA) . . 302.3.4 Effettuare delle Previsioni . . . . . . . . . . . . . . . . 33

2.4 Modelli Multivariati . . . . . . . . . . . . . . . . . . . . . . . 362.4.1 Analisi Lineare Multivariata . . . . . . . . . . . . . . 372.4.2 Modello Autoregressivo Vettoriale (VAR) . . . . . . . 41

i

INDICE ii

3 Reti Neurali 443.1 Introduzione alle Reti Neurali . . . . . . . . . . . . . . . . . . 443.2 Struttura della Rete . . . . . . . . . . . . . . . . . . . . . . . . 47

3.2.1 Strati Nascosti . . . . . . . . . . . . . . . . . . . . . . . 493.3 Modalita di Apprendimento . . . . . . . . . . . . . . . . . . . 50

3.3.1 Minimizzare la Funzione di Errore . . . . . . . . . . . 513.3.2 Algoritmi di Apprendimento . . . . . . . . . . . . . . 523.3.3 Efficienza e Limiti degli Algoritmi . . . . . . . . . . . 55

3.4 Implementazione della Rete . . . . . . . . . . . . . . . . . . . 573.5 Taratura ed Esempi . . . . . . . . . . . . . . . . . . . . . . . . 60

3.5.1 Studio di una Retta . . . . . . . . . . . . . . . . . . . . 613.5.2 Studio di una Funzione Periodica . . . . . . . . . . . 63

4 Presentazione dei Codici 654.1 Modelli Univariati . . . . . . . . . . . . . . . . . . . . . . . . 66

4.1.1 Rete Neurale . . . . . . . . . . . . . . . . . . . . . . . 664.1.2 Modello ARIMA . . . . . . . . . . . . . . . . . . . . . 714.1.3 Indicatori Studiati . . . . . . . . . . . . . . . . . . . . 734.1.4 Automatizzare la ricerca dei parametri . . . . . . . . 75

4.2 Modelli Bivariati . . . . . . . . . . . . . . . . . . . . . . . . . 79

5 Scelta dei Dati 815.1 Dati ad Alta Frequenza . . . . . . . . . . . . . . . . . . . . . . 81

5.1.1 Considerazioni Teoriche . . . . . . . . . . . . . . . . . 815.1.2 Evidenze Empiriche . . . . . . . . . . . . . . . . . . . 845.1.3 Trading ad Alta Frequenza . . . . . . . . . . . . . . . 85

5.2 Dati Esaminati . . . . . . . . . . . . . . . . . . . . . . . . . . . 865.2.1 Alta frequenza . . . . . . . . . . . . . . . . . . . . . . 865.2.2 Bassa frequenza . . . . . . . . . . . . . . . . . . . . . . 88

6 Simulazioni e Risultati 916.1 Simulazioni In Sample . . . . . . . . . . . . . . . . . . . . . . 92

6.1.1 Scelta dei Parametri . . . . . . . . . . . . . . . . . . . 926.2 Analisi dei Dati . . . . . . . . . . . . . . . . . . . . . . . . . . 94

6.2.1 Gestione degli Output . . . . . . . . . . . . . . . . . . 946.2.2 Analisi Statistica dei Dati . . . . . . . . . . . . . . . . 95

6.3 Simulazioni Out of Sample . . . . . . . . . . . . . . . . . . . . 1066.3.1 Configurazione Scelta e Risultati . . . . . . . . . . . . 107

6.4 Analisi Bivariata . . . . . . . . . . . . . . . . . . . . . . . . . . 108

7 Conclusioni 113

INDICE iii

A Thomson Reuters 115

B Richiami di Statistica 116

C R 118

D Python 119

E Codici Integrali 120

Bibliografia 157

Elenco delle figure

1.1 Volumi FIB 2012 . . . . . . . . . . . . . . . . . . . . . . . . . . 131.2 Volumi futures H2 . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.1 Distribuzione return S&P 500 . . . . . . . . . . . . . . . . . . 202.2 ACF S&P 500 . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.3 PACF S&P 500 . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.4 ACF residui S&P 500 . . . . . . . . . . . . . . . . . . . . . . . 352.5 Previsioni S&P 500 . . . . . . . . . . . . . . . . . . . . . . . . 362.6 Elezioni italiane 2013 . . . . . . . . . . . . . . . . . . . . . . . 372.7 Correlazione futures . . . . . . . . . . . . . . . . . . . . . . . . 40

3.1 Neurone biologico . . . . . . . . . . . . . . . . . . . . . . . . 463.2 Rete neurale feed forward 1 . . . . . . . . . . . . . . . . . . . . 483.3 Funzioni non-lineari . . . . . . . . . . . . . . . . . . . . . . . 483.4 Rete neurale feed forward 2 . . . . . . . . . . . . . . . . . . . . 493.5 Confronto fit retta . . . . . . . . . . . . . . . . . . . . . . . . . 613.6 Previsioni retta . . . . . . . . . . . . . . . . . . . . . . . . . . 623.7 Previsioni retta modificata . . . . . . . . . . . . . . . . . . . . 633.8 Previsioni funzione seno . . . . . . . . . . . . . . . . . . . . . 64

5.1 Volumi futures nell’arco di una giornata (H3) . . . . . . . . . 825.2 Orario futures (GMT) . . . . . . . . . . . . . . . . . . . . . . . 875.3 Volumi futures nell’arco di una settimana (H3) . . . . . . . . 89

6.1 Output csv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 956.2 Intraday: modello ARIMA . . . . . . . . . . . . . . . . . . . . 986.3 Intraday: reti neurali . . . . . . . . . . . . . . . . . . . . . . . . 1016.4 Day close: modelli ARIMA . . . . . . . . . . . . . . . . . . . . 1036.5 Day close: rete neurale . . . . . . . . . . . . . . . . . . . . . . . 1056.6 IFSH3 intraday: previsioni . . . . . . . . . . . . . . . . . . . . 1096.7 ESH3 day close: previsioni . . . . . . . . . . . . . . . . . . . . 1106.8 ESH3-IFSH3: modello VAR . . . . . . . . . . . . . . . . . . . 112

iv

ELENCO DELLE TABELLE v

Elenco delle tabelle

1.1 Confronto tra contratti forward e futures . . . . . . . . . . . . 31.2 Scadenze trimestrali . . . . . . . . . . . . . . . . . . . . . . . 51.3 Statistiche futures FTSE MIB . . . . . . . . . . . . . . . . . . . 151.4 Statistiche futures EURO STOXX 50 . . . . . . . . . . . . . . . 161.5 Statistiche futures S&P . . . . . . . . . . . . . . . . . . . . . . 171.6 Statistiche futures Nikkei . . . . . . . . . . . . . . . . . . . . . 171.7 Controvalore annuale futures . . . . . . . . . . . . . . . . . . 18

2.1 Statistiche S&P 500 . . . . . . . . . . . . . . . . . . . . . . . . 212.2 Parametri ARMA(1,1) S&P 500 . . . . . . . . . . . . . . . . . 342.3 Previsioni S&P 500 . . . . . . . . . . . . . . . . . . . . . . . . 35

5.1 Frequenza variazioni prezzo IBM . . . . . . . . . . . . . . . . 845.2 Segno variazioni prezzo IBM . . . . . . . . . . . . . . . . . . 855.3 Rilevazioni intraday . . . . . . . . . . . . . . . . . . . . . . . . 885.4 Rilevazioni giornaliere . . . . . . . . . . . . . . . . . . . . . . 885.5 Rilevazioni bassa frequenza 2013 . . . . . . . . . . . . . . . . 90

6.1 Tipologie simulazioni . . . . . . . . . . . . . . . . . . . . . . . 926.2 Out of sample: alta frequenza . . . . . . . . . . . . . . . . . . . 1076.3 Out of sample: bassa frequenza . . . . . . . . . . . . . . . . . . 1086.4 Confronto modelli . . . . . . . . . . . . . . . . . . . . . . . . . 111

Introduzione

Nell’ultimo decennio l’analisi delle serie storiche finanziarie ha conosciutoun importante sviluppo, sia per quanto riguarda la ricerca di base, siaa livello di applicazioni dirette sul mercato. In particolare, l’informatiz-zazione dei dati ha reso facilmente disponibili informazioni dettagliatesull’andamento dei prezzi e dei volumi scambiati (anche a livello di singolatransazione eseguita), creando cosı nuovi campi di indagine. Allo stessotempo, l’introduzione dei sistemi di trading elettronico ha fatto si che i gran-di istituti finanziari si interessassero all’automatizzazione dei processi ditrading attraverso degli algoritmi.

L’esperienza come stagista in Banca Aletti, dove ho affiancato un deskdi trading, ha accresciuto il mio interesse per questo ambito. Ho cosıdeciso di condurre uno studio sulle serie temporali finanziarie, con lo scopodi confrontare l’efficacia degli strumenti predittivi moderni tipicamenteutilizzati. La ricerca considera parallelamente i modelli ARIMA (autoregressive integrated moving average) e le reti neurali.

Questi modelli, tuttavia, non possono essere applicati alla ”cieca” e,nonostante esistano delle regole generali, e compito del ricercatore determi-narne i parametri caratteristici che meglio si adattano alla descrizione delproblema sottoposto. Un altro aspetto importante delle serie temporali e lafrequenza di campionamento. Per valutare eventuali discrepanze su scaletemporali differenti, vengono analizzate serie con campionamento ad altafrequenza (ogni 5 minuti), e a bassa frequenza (chiusure giornaliere).

Dopo aver descritto le principali caratteristiche dei contratti futures (glistrumenti finanziari oggetto dell’analisi empirica), e presentato le proprietadei modelli utilizzati, viene implementato un programma adibito alla simu-lazione e gestione di questi ultimi. Si considera un insieme che comprendei possibili valori dei parametri caratteristici, per poi valutare la capacita didescrivere e predirre il comportamento delle serie storiche su di un cam-pione definito in sample. Effettuata un’analisi statistica dei risultati ottenuti,il passo successivo consiste nel selezionare le configurazioni piu efficienti emetterle alla prova sul secondo insieme di dati, definito out of sample.

vi

INTRODUZIONE vii

Entrando piu nel dettaglio, il lavoro si articola come segue:

• Capitolo 1. Sono introdotti i contratti futures, partendo dalle loro ori-gini, fino ad arrivare all’utilizzo che ne viene fatto attualmente daglioperatori finanziari. Particolare rilievo e dato ai dettagli operativi(date, orari in cui sono scambiati e fusi orari adottati), indispensabiliper condurre uno studio rigorosto degli stessi.

• Capitolo 2. La prima parte e incentrata sulla presentazione dei ri-sultati gia noti relativi alle serie temporali finanziarie. La secondaparte descrive i principali modelli econometrici adottati per prevederel’andamento delle serie e i metodi per stimarli.

• Capitolo 3. Dopo aver chiarito le analogie e le differenze tra reteneurale biologica e rete neurale artificiale, e presentata la proceduraper determinare i valori dei pesi sinaptici. Chiudono il capitolo alcuniesempi utili per ”tarare” il modello implementato.

• Capitolo 4. Sono presentati sinteticamente i codici utilizzati per effet-tuare le simulazioni. Vengono inoltre introdotti gli indicatori piu si-gnificativi per valutare l’efficienza di una determinata configurazionedei parametri caratteristici.

• Capitolo 5. Un aspetto importante per condurre l’analisi empiricaconsiste nel selezionare dei campioni di dati in sample, e out of sample,rappresentativi. La procedura di raccolta dati e quı descritta, eviden-ziando le differenze fenomenologiche tra il campionamento a bassa ead alta frequenza.

• Capitolo 6. E delineato il progetto delle simulazioni effettuate e lametodologia usata per l’analisi statistica dei dati. Nello specifico,si cerchera di stabilire se i modelli utilizzati sono effettivamente ingrado di fornire delle previsioni precise, accurate, e quindi applicabiliad un contesto relale.

• Capitolo 7. In questa sezione viene riassunto il lavoro svolto, facendochiarezza sui principali risultati ottenuti. Sono poste inoltre le basiper ulteriori approfondimenti e future ricerche.

Lo studio svolto ha mostrato che alcune configurazioni delle reti neuralisono in grado di fornire delle previsioni accurate sul campione in sample.In particolare, le previsioni associate ai parametri che minimizzano l’errorequadratico dei punti previsti, sono corrette nel 57% dei casi: un valore

INTRODUZIONE viii

altamente significativo. Tuttavia questi risultati non sono stati replicati consuccesso sul secondo campione out of sample.

Sia i modelli ARIMA che le reti neurali sono in grado di approssimarele serie storiche finanziare, ma quando si tratta di prevederne l’andamentofuturo (sia a breve che a lungo terminie) falliscono. Una motivazione po-trebbe consistere nel fatto che le dinamiche dei prezzi non seguono alcunpattern ricorrente, ma dipendono unicamente dalle nuove informazioni, edagli effetti che hanno sul mercato. Un’altra ipotesi, e che vadano sondatealtre configurazioni della rete, considerando dati con una maggiore pro-fondita temporale, e introducendo anche le correlazioni incrociate nel setinformativo, in modo da tener conto dell’interdipendenza tra i futures.

Capitolo 1

Futures

I futures costituiscono l’oggetto dell’analisi empirica in questo lavoro: edunque opportuno comprendere appieno il loro funzionamento e l’uso chene fanno gli operatori finanziari.

Verranno in primo luogo presentate le caratteristiche generali di questiprodotti, per poi approfondirne gli aspetti piu specifici che torneranno utilisuccessivamente.

I paragrafi 1.1 e 1.2 sono una rielaborazione di Hull (2009) [1].

1.1 Origine e Finalita

I primi contratti forward vennero scambiati negli Stati Uniti verso lameta del diciannovesimo secolo con la creazione di un mercato centrale,il Chicago Board of Trade (CBOT). In quel luogo gli agricoltori, oltre avendere i loro prodotti con consegna immediata (spot market), potevanoaccordarsi per una consegna futura. Questi contratti erano privati (tracompratore e venditore) e col passare del tempo si sono evoluti nei piustandardizzati contratti futures.

Sia i contratti forward che i futures, sono accordi legali dove si stabiliscel’obbligo di comprare per una controparte (posizione long1), di vendereper l’altra (posizione short), un asset2 ad un prezzo fisso e ad una dataconcordata. Lo scopo, almeno inizialmente, era di garantirsi la possibilita

1Con posizione long su di un bene si intende l’acquisto dello stesso. Piu in generale,assumere una posizione long vuol dire scommettere sul rialzo di una determinata attivitao variabile di mercato. Viceversa una posizione short rappresenta una scommessa sulribasso.

2Un qualunque tipo di attivita: dai prodotti finanziari ai beni di consumo.

1

CAPITOLO 1. FUTURES 2

di vendere o comprare in futuro un bene di consumo (commodity3), ad unprezzo che non fosse oggetto delle oscillazioni del mercato.

1.1.1 Differenze tra Forward e Futures

Forward e futures, rientrano in una categoria di prodotti finanziari moltoestesa che ha avuto un grosso sviluppo negli ultimi quarant’anni: i derivati.Con il termine ”derivato” si intende un qualsiasi strumento finanziario ilcui valore dipende da un’altra attivita. L’attivita sottostante puo esseredi qualunque tipo, principalmente: un bene di consumo, valute, un titoloazionario, un indice di mercato, un tasso di interesse, oppure il rischio dicredito (si parla in questo caso di derivati creditizi4).

Mercati regolamentati e OTC

I derivati possono essere suddivisi in due categorie: quelli trattati in bor-sa (mercati regolamentati) e quelli trattati over the counter (OTC). Nel primocaso e la borsa che fa da intermediario finanziario tra gli investitori, stabili-sce delle regole in modo da ridurre il rischio di credito delle controparti,e offre dei prodotti con delle specifiche tecniche standard. Appartengonoa questa categoria i futures. Nel secondo caso (contratti OTC), gli accordiavvengono direttamente tra le controparti, e la definizione delle caratteri-stiche dei prodotti scambiati e lasciata a loro discrezione. Appartengono aquesta categoria i contratti forward.

Nel 2012 il valore nozionale dei contratti OTC ammontava a 639 bilionidi dollari (639 · 1012 $), contro i 67 bilioni di quelli scambiati in borsa [2]. Sipensi che nel 2000 questi valori erano pari rispettivamente a circa 100 e 10bilioni di dollari.

Margini

Un’altra differenza sostanziale tra forward e futures e rappresentata dallapresenza dei margini in questi ultimi5. Infatti, se due investitori entrano

3Con il termine commodity si indicano beni di consumo e materie prime come: petrolio,oro, grano, energia. Questi beni devo presentare delle caratteristiche comuni che li rendonoequivalenti, anche se provenienti da produzioni differenti.

4Sono dei contratti bilaterali creati per gestire l’esposizione al rischio che una contropar-te possa essere insolvente. Il sottostante per questi derivati e la probabilita di insolvenzadi un agente economico.

5Recentemente anche per i contratti OTC sono strate introdotte misure per ridurre ilrischio di credito. Queste procedure prendono il nome di collateralization e riproduconosostanzialmente il meccanismo dei margini [3].

CAPITOLO 1. FUTURES 3

Tabella 1.1: Confronto tra contratti forward e futures.

Forward Futures

Contratti privati tra due controparti Trattati in borsaRegolati alla fine del contratto Regolati ogni giornoConsegna o saldo finale Chiusi prima della scadenzaRischio di credito Rischio di credito praticamente assente

in un contratto l’uno con l’altro direttamente, ci sono evidenti rischi. Unodei due investitori potrebbe rammaricarsi dell’impegno preso e cercaredi non rispettarlo. Oppure potrebbe non avere piu le risorse necessarieper onorarlo. Uno dei ruoli chiave della borsa e quello di ottimizzare lenegoziazioni in modo da minimizzare le insolvenze.

Lo strumento utilizzato per ridurre questo rischio e quello dei ”depositidi garanzia” (marginal account). Quando un investitore decide di acquistaredei futures (posizione long), fa un ordine al suo broker6 che gli chiedera didepositare un margine iniziale (in genere rappresenta circa un 10% delvalore nominale del contratto). Se col passare del tempo il valore del futuresscende, dal deposito di garanzia viene prelevata una quantita di denaropari a questa variazione, moltiplicata per il numero di contratti sottoscritti(questa procedura prende il nome di marking to market). Il broker trasferira ildenaro alla borsa7, che a sua volta lo gireara ad un altro broker in contattocon un cliente che aveva una posizione short.

Affinche il saldo del conto di deposito non diventi mai negativo, esisteun margine di mantenimento inferiore al margine iniziale (pari a circail 75%). Se il saldo del conto scende al di sotto di tale soglia, il brokerchiede (margin call) all’investitore di riportare il deposito al valore iniziale,questo versamento integrativo e detto variation margin. Se il cliente non loeffettua, il broker chiude la sua posizione. Queste procedure vengono svoltequotidianamente.

L’esistenza di un mercato regolamentato fa sı che i futures venganoscambiati piu volte nel corso della loro ”vita”. Inoltre, come si vedra nelprossimo paragrafo, chi investe nei futures spesso non lo fa per acquista-re l’attivita sottostante, cosicche i contratti vengono chiusi prima dellascadenza.

La tabella 1.1 riassume le principali differenze tra forward e futures.

6Un individuo, o un’azienda, che esegue degli ordini da parte di un investitorericevendo in compenso una percentuale dei soldi investiti.

7E la ”cassa di compensazione” (clearinghouse) l’organo di borsa che fa da intermediariotra il broker e la borsa stessa.

CAPITOLO 1. FUTURES 4

1.1.2 Il Mercato dei Futures

Dovendo studiare delle serie storiche, e naturale mettere da parte iforward in favore dei futures che vengono quotati in borsa e scambiaticontinuamente. Di seguito verranno esaminate le caratteristiche di questiultimi.

Tipologie

Generalmente le scadenze (expiry date) dei futures sono trimestrali (siveda la tabella 1.2 nella pagina successiva), e cadono nel secondo o terzovenerdı del mese. Alla scadenza di un contratto segue la data in cui vieneregolato (settlement date8). Le possibilita sono due:

• Consegna. Nel caso di merci, l’acquirente accetta una ricevuta dimagazzino in cambio di un pagamento immediato. Sara inoltre re-sponsabile di tutti i relativi costi di gestione. Nel caso di prodottifinanziari la consegna viene fatta solitamente mediante registrazionecontabile (wire transfer).

• Liquidazione per contanti. Alcuni futures (ad esempio quelli su indi-ci azionari) vengono liquidati per mezzo di contanti, dato che nonconviene, o e impossibile, consegnare l’attivita sottostante.

La dimensione del contratto riguarda l’esatto ammontare dell’attivitasottostante che il il venditore dovra consegnare per ogni contratto negoziato.Si tratta di un parametro importante per la borsa. Se la dimensione delcontratto e troppo grande, piccoli investitori avranno difficolta a servirsene.Viceversa, con contratti piccoli, le negoziazioni possono risultare troppocostose dato che esiste un costo associato ad ogni singolo contratto. Laborsa definisce anche l’unita di misura in cui sono espresse le quotazioni,ossia la variazione minima di prezzo (tick size).

I contratti sono caratterizzati anche da dei limiti di prezzo, ovverodelle soglie (in alto e in basso) che in una giornata non possono essereoltrepassate. Quando cio si verifica le contrattazioni vengono sospese.

Utilizzo

I mercati dei futures hanno avuto un grande successo. Il motivo principa-le e che sono stati in grado di attirare l’attenzione di molti tipi di operatori

8Il periodo e stabilito dalla borsa e varia da contratto a contratto, mentre la scelta delladata spetta alla parte short.

CAPITOLO 1. FUTURES 5

Tabella 1.2: Scadenze trimestrali.

Mese Sigla

Marzo HGiugno MSettembre UDicembre Z

e sono ora molto ”liquidi”. Ovvero, quando un investitore vuole assumereuna certa posizione non incontra difficolta a trovare qualcuno disposto aporsi dall’altro lato del contratto.

E stato sottolineato in precedenza che spesso i futures non vengonocomprati, o venduti, con l’intento di arrivare alla scadenza e ritirare lamerce o il denaro. Di seguito ne vengono esposti i principali utilizzi (Alcuniaspetti risulteranno meno oscuri dopo aver letto il paragrafo 1.2 nellapagina seguente):

• Gestione del rischio (hedging). L’esposizione ai rischi di mercato puoessere ridotta assumendo posizioni di segno opposto. Si pensi ad unabanca d’investimento che complessivamente, per i prodotti finanziariche gestisce, ha una posizione long su di un indice azionario. In questomodo si troverebbe esposta al ribasso dell’indice, ma allo stesso temporisulterebbe abbastanza scomodo dover vendere un paniere di azioniscelte con dei pesi opportuni per replicare l’indice. La soluzione piusemplice consiste nell’assumere una posizione short sul futures aventecome sottostante lo stesso indice. I futures permettono di coprireposizioni anche su tassi d’interesse e dividendi9.

• Speculazione. In questo caso l’investitore vuole assumersi il rischioscommettendo sull’andamento futuro del mercato. I futures sonoparticolarmente adatti a questo scopo per via della ”leva finanziaria”(leverage10). Chiaramente questo amplifica sia i potenziali guadagniche le potenziali perdite.

• Arbitraggio. Puo capitare che due futures identici, quotati su dueborse differenti, presentino delle minime differenze di prezzo. Que-sti piccoli discostamenti fanno si che l’arbitraggista possa contem-poraneamente, comprare il contratto sottostimato e vendere quello

9Il dividendo e quella parte di utile che viene distribuita da una societa ai suoi azionisti.10Si intende la possibilita di gestire un determinato valore nozionale con un investimento

ridotto (nel caso dei futures il deposito di garanzia).

CAPITOLO 1. FUTURES 6

sovrastimato, non esponendosi in questo modo a rischi di mercato elucrando sulla differenza di prezzo. Come si puo immaginare, sfrutta-re queste possibilita richiede una grande efficienza a livello operativo,poiche il fattore ”tempo” e determinante. Infatti, la presenza di di-versi arbitraggisti sul mercato fa sı che i disallineamenti venganorapidamente eliminati.

A quanto detto va aggiunta la necessita periodica di convertire i futuresvicini alla data di expiry. Si pensi ad uno speculatore che acquista dei futurespuntando sul rialzo di una determinata merce. Se il contratto arrivassealla scadenza, l’investitore si troverebbe costretto ad acquistare il benesottostante, portandosi a casa magari dei barili di petrolio.

Chiaramente non e questo l’obiettivo di uno speculatore. Per ovviare acio, prima della data di expiry, verranno venduti i futures in scadenza percomprarne contemporaneamente altri uguali che scadranno in un periodosuccessivo. Questa procedura nel gergo viene detta roll.

1.2 Determinazione del Prezzo

Valutare il prezzo di un derivato (pricing) e un problema che richiedeun uso massiccio della teoria dei processi stocastici11. Inoltre, applicarequesti modelli e spesso piu complicato di quanto possa apparire sui libri ditesto. Cio e dovuto alla difficolta insita nell’estrapolare dal mercato alcuniparametri che compaiono nelle equazioni stocastiche.

Tuttavia, in alcuni casi, facendo delle opportune assunzioni di comodo, epossibile derivare delle leggi attraverso dei ragionamenti piuttosto semplici.Rientrano in questa categoria le formule di pricing relative a forward efutures.

1.2.1 Definizioni e Parametri

Innanzitutto e importante chiarire la distinzione tra prezzo quotato di unfutures o forward e la quantita di denaro necessaria per acquistarlo. Questicontratti sono strutturati affinche il loro valore intrinseco al momentodell’acquisto sia pari a zero, mentre invece il prezzo quotato rappresental’aspettativa sul livello del sottostante alla data di scadenza dei contratti.

Un esempio puo rendere meglio questo concetto. Se oggi il titolo azio-nario ENI venisse quotato a 17, 53e, il corrispettivo futures o forward con

11Modelli matematici che trattano tutti quei sistemi caratterizzati dalla presenza dicomponenti aleatorie.

CAPITOLO 1. FUTURES 7

scadenza al prossimo trimestre sara quotato al valore atteso di ENI perquella data di scadenza. Tale valore terra conto di tutte le informazionidisponibili sul mercato. Risulta quindi che, comprare un forward o futures,significa entrare in un contratto alla pari e il suo valore intrinseco sara nullo.La quantita di denaro necessaria per sottoscrivere il contratto corrispondeal marginal account nel caso dei futures. Vengono definiti:

T : tempo alla scadenza del contratto forward o futures (in anni);

S0: prezzo spot corrente dell’attivia sottostante il contratto;

F0: prezzo forward o futures corrente;

r: tasso d’interesse annuo privo di rischio12 (composto continuamente),valido per un investimento che scade alla data di consegna;

Di: Dividendo staccato dall’attivita sottostante al tempo i.

Lo scopo della prossima sezione sara quello di determinare F0 noti glialtri parametri.

1.2.2 Arbitraggio

Il principio generale su cui si basano i modelli di pricing e l’assenza diarbitraggio. Con questo termine si indica un’operazione che consente diottenere un profitto certo, senza che il soggetto che la pone in essere corraalcun rischio. Solitamente l’arbitraggio consiste nell’acquisto/vendita diun’attivita finanziaria, e in una contemporanea operazione di segno oppo-sto sullo stesso strumento negoziato su di un mercato diverso dal prece-dente, oppure su uno strumento diverso ma avente le stesse caratteristichedel primo in termini di payoff 13.

Come si e visto in precedenza, il mercato non e esente da possibilitadi arbitraggio, ed e proprio l’operato degli arbitraggisti a ridurre que-sta evenienza. Tuttavia, possono verificarsi condizioni in cui la presenzadi ”attriti finanziari”14 rende impraticabile l’arbitraggio, in questo caso idisallineamenti dei prezzi possono permanere.

12E il tasso a cui vengono prestati dei soldi quando il rischio di credito e assente.Un’approssimazione e rappresentata dai tassi con cui le banche sono disposte a prestarsisoldi in forma di deposito (tasso LIBOR).

13Si intende il rendimento di un prodotto finanziario ad una data futura.14Appartengono a questa categoria tutti i costi di transizione associati ad un’opreazione

finanziaria. Chiaramente questi costi sono minori per i grandi investitori.

CAPITOLO 1. FUTURES 8

Prezzo quotato

Si facciano le seguenti assunzioni:

1. il mercato e liquido e non esistono costi di transazione;

2. il denaro puo essere dato e preso in prestito allo stesso tasso privo dirischio;

3. sono consentite vendite allo ”scoperto” (vendita di un prodotto finan-ziario senza possederlo);

4. dividendi nulli (∀i ∈ T : Di = 0).

Il prezzo di un forward, ovvero la stima del livello raggiunto dal sotto-stante S tra T anni e dato da:

F0 = S0 · erT . (1.1)

Infatti, se un ipotetico acquirente B quotasse F0 = S0 ·erT +ε (con ε quantitapositiva), allora un venditore A potrebbe:

⇒ vendere a B un forward con prezzo F0 = S0 · erT + ε (va short),

⇒ prendere in prestito S0 al tasso r (dovra rendere S0 · erT ),

⇒ comprare il sottostante per il controvalore di S0 (va long).

Dopo T anni: A consegna a B il sottostante, riceve S0 · erT + ε da B erimborsa con S0 · erT il prestito ricevuto. In questo modo lucra una quantitadi denaro pari ad ε senza alcun rischio.

Viceversa, se B quotasse F0 = S0 · erT − ε, allora il venditore A potra:

⇒ comprare da B un forward a F0 = S0 · erT − ε,

⇒ vendere subito il sottostante a S0 con consegna al tempo T ,

⇒ investire S0 al tasso r.

Dopo T anni: A riceve S0 · erT , compra da B il sottostante a S0 · erT − εe lo consegna. Cosı facendo lucra una quantita di denaro pari ad ε senzaalcun rischio.

In entrambi i casi, si vede che un prezzo diverso da quello espressonella 1.1 offre delle opportunita di arbitraggio.

CAPITOLO 1. FUTURES 9

Dividendi

Titoli azionari, e di riflesso gli indici azionari, periodicamente possonoridurre il proprio valore in seguito allo stacco dei dividendi: e possibileestendere facilmente la 1.1 affinche ne tenga conto.

Se al tempo i e attesa una variazione del sottostante pari al dividendo,non si fa altro che modificare il valore corrente del sottostante tenendoconto di questa futura riduzione attualizzata al tasso di sconto privo dirischio. Si ha quindi:

F0 =

(S0 −

∑∀i≤T

Di · e−rti)· erT . (1.2)

La sommatoria tiene conto di tutti i dividendi attesi fino alla scadenza delcontratto. Nel caso degli indici i dividendi saranno quelli delle azioni cheli compongono tenendo conto del loro peso relativo15. L’attualizzazione”riduce” l’entita dei dividendi: 1e domani vale meno di 1e oggi.

Effetto dei margini

Le argomentazioni dei paragrafi precedenti sono corrette solo per icontratti forward dato che non tengono conto della liquidazione giornaliera.Si puo dimostrare che, se il tasso d’interesse privo di rischio e costante ovaria nel tempo seguendo una legge nota, il valore di forward e futures eidentico.

Quando i tassi d’interesse variano in modo imprevedibile (come avvienenel mondo reale), i prezzi futures e i prezzi forward teorici non sono piuuguali. Se ne puo dare una dimostrazione euristica considerando il casoin cui il prezzo dell’attivita sottostante, S, e correlato positivamente coni tassi d’interesse. Quando S aumenta, un investitore con una posizionelong in futures realizza un guadagno immediato a causa della proceduradi liquidazione giornaliera. Data la correlazione positiva, e probabile cheanche i tassi d’interesse siano aumentati, per cui il guadagno tende adessere investito ad un tasso piu alto della media. Analogamente, quandoS diminuisce, l’investitore subisce una perdita immediata. Questa perditatende ad essere finanziata a un tasso d’interesse piu basso della media.

Un investitore che e entrato in un contratto forward non e influenzatoin questo modo dai movimenti dei tassi. Pertanto, quando S e correlato

15Il valore di un indice azionario non e dato dalla semplice somma delle azioni che locompongono. Spesso sono introdotti dei fattori di correzione (”pesi”) che tengono contodella diversa rilevanza dei singoli titoli.

CAPITOLO 1. FUTURES 10

positivamente con i tassi d’interesse, i prezzi futures tendono ad essere piualti rispetto a quelli forward. Allo stesso modo, quando la correlazione enegativa, i prezzi forward tendono ad essere piu alti di quelli futures.

Va aggiunto che nella maggior parte dei casi queste differenze sonosufficientemente piccole da poter essere trascurate.

Altri sottostanti

Fino ad ora sono stati considerati contratti il cui sottostante era un titoloazionario, o al piu un indice. In effetti, per l’analisi che seguira, bastanoqueste due casistiche. Tuttavia si possono menzionare alcuni risultati difacile derivazione.

Futures su valute: considerando come sottostante il prezzo corrente spot,in euro, di un un’unita di valuta estera, si ha:

F0 = S0 · e(r−re)T , (1.3)

dove re e il tasso d’interesse privo di rischio estero.

Futures su merci: definendo U come il valore attuale di tutti i costi diimmagazzinamento della merce, per beni d’investimento (come oro eargento) si ha:

F0 = (S0 +U) · erT . (1.4)

Per un bene di consumo (come il petrolio) si ottiene invece:

F0 ≤ (S0 +U) · erT . (1.5)

1.3 Futures su Indici

Gli indici azionari sono stati creati per rappresentare in modo sinteticol’andamento di un determinato settore di mercato. Il loro valore puoessere dato dalla somma dei valori dei singoli componenti, oppure da unacombinazione degli stessi con dei ”pesi” in modo da tener conto dellediverse rilevanze.

Nel decidere quali prodotti finanziari studiare, e venuto naturale indi-rizzarsi verso degli strumenti che avessero le seguenti caratteristiche:

CAPITOLO 1. FUTURES 11

Liquidita: se si vuole andare oltre uno studio teorico, ed implementareeffettivamente un algoritmo di trading, e necessario avere la possibilitadi comprare e vendere a piacimento. Inoltre, un grande volume discambi fa sı che diminuisca il bid-ask spread16,

Influenza reciproca: facendo un’analisi volta a trovare anche dei nessi dicausalita, si puo restringere il cerchio considerando quei prodotti che,almeno in linea teroica, hanno ragione di essere correlati.

Sono stati selezionati i futures relativi ai seguenti indici:

• FTSE MIB. E il paniere che racchiude le azioni delle 40 maggiorisocieta italiane. L’indice e nato in seguito alla fusione tra Borsa Italianae London Stock Exchange, andando a creare il London Stock Exchangegroup (LSE). E operativo dal 01/06/2009 e rappresenta all’incircal’80% della capitalizzazione del mercato azionario italiano.

• EURO STOXX 50. comprende 50 titoli azionari a maggior capitalizza-zione dei paesi dell’eurozona. Ogni paese che compone l’indice ha undeterminato numero di societa quotate, ognuna con il proprio peso.L’indice e stato sviluppato nel 31/12/1991 con un valore iniziale paria 1000.

• S&P 500. E stato realizzato da Standard & Poor’s (S&P) nel 1957 esegue l’andamento di un paniere azionario formato dalle 500 aziendestatunitensi a maggiore capitalizzazione. Il peso attribuito a ciascunaazienda e direttamente proporzionale al valore di mercato della stessa.

• NIKKEI 225. L’indice contiene i titoli (pesati sui loro prezzi) delle 225maggiori compagnie quotate dalla Borsa di Tokyo (TSE). Inizio adessere calcolato nel 07/09/1950.

Questi indici rappresentano una parte significativa del mercato aziona-rio nei tre continenti piu attivi: Europa, Asia e America. Tali economie sonofortemente interconnesse e, come si vedra piu avanti, fortemente correlate.Chiaramente, non potendo scambiare direttamente gli indici, verrannostudiati i futures ad essi associati.

La relazione teorica tra indice e futures e espressa dalla 1.2. Di fatto ilprezzo e determinato dalla domanda e dall’offerta, tuttavia se questo valore

16Il bid e il livello di prezzo a cui i compratori di un titolo sono disposti ad acquistare daivenditori. L’ask e il livello di prezzo a cui i venditori sono disposti a vendere ai compratori.Lo spread e la differenza tra questi due valori.

CAPITOLO 1. FUTURES 12

dovesse discostarsi da quello teorico gli arbitraggisti lo riporterebbero allivello corretto. Si noti che la relazione teorica include dei termini non noticon esattezza. Il valore dell’indice e quotato, ma r e Di vengono ricavatiindirettamente da altri prodotti finanziari (come bonds e dividend swap17),lasciando comunque dei margini di incertezza. Infine va detto che nonsempre gli orari in cui sono scambiati i futures, e i singoli componentidell’indice corrispondono; spesso questi ultimi sono quotati in fasce orariepiu ristrette. In questo caso sara il futures ad ”incorporare” prima dell’indicele notizie che influenzano il mercato.

La scelta di considerare proprio questi strumenti finanziari e sicura-mente arbitraria, ma necessaria per restringere il campo di studio. Nellaprossima sezione verranno descritte le specifiche tecniche di ciascun futures.

1.3.1 Analisi e Comparazione dei Futures

I futures su indici hanno scadenze trimestrali e cominciano ad esserequotati in periodi che vanno da 6 mesi ad un anno prima della scadenza.Tuttavia, il lasso di tempo in cui sono effettivamente scambiati e moltolimitato, e coincide con gli ultimi 3 mesi del loro ”ciclo vitale” (si vedano lefigure: 1.1 nella pagina successiva e 1.2 a pagina 14). Di fatto gli operatorifinanziari si servono solo dei futures relativi alla scadenza piu prossima.Avvicinandosi alla data di expiry, generalmente nell’arco degli ultimi 5gironi, i futures dell’attuale trimestre vengono girati (roll) a favore di quellidel trimestre successivo. La necessita di convertire i contratti vecchi inquelli nuovi fa sı che nell’ultima settimana gli scambi siano piu intensi erisultino quindi ”viziati” da questa procedura.

FIB - Futures su FTSE MIB

Nella scheda prodotto 1.1 sono indicate le principali specifiche tecnichedel futures sul FTSE MIB (IFS). Si noti che l’orario di negoziazione (9:00- 17:40) e riferito all’Italia e, col passaggio dall’ora solare all’ora legale,diventa GMT +2.

La tabella 1.3 a pagina 15 mostra alcuni valori statistici riassuntivi perognuno dei 4 trimestri. In particolare con ”Volume TOT” si intende lasomma dei contratti scambiati nei 6 mesi prima dell’expiry, mentre con

17Lo swap appartiene alla categoria degli strumenti derivati, e consiste nello scambiodi flussi di cassa tra due controparti. In particolare, gli swap su dividendi pagano dellecedole periodiche in base alla differenza tra dividendi attesi e dividendi realizzati.

CAPITOLO 1. FUTURES 13

19/09/2011 04/11/2011 19/12/2011 31/01/2012 14/03/2012

IFSH2

Giorni

Vol

ume

010

000

2000

030

000

4000

0

15/12/2011 31/01/2012 16/03/2012 07/05/2012

IFSM2

Giorni

Vol

ume

010

000

3000

050

000

15/03/2012 27/04/2012 08/06/2012 19/07/2012 30/08/2012

IFSU2

Giorni

Vol

ume

010

000

2000

030

000

4000

0

14/06/2012 02/08/2012 18/09/2012 01/11/2012 17/12/2012

IFSZ2

Giorni

Vol

ume

010

000

2000

030

000

4000

050

000

Figura 1.1: Sono mostrati i volumi scambiati sul futures relativo al FTSE MIB nelle 4scadenze trimestrali del 2012. Solo negli ultimi 3 mesi di ogni trimestre ivolumi sono significativi, con picchi poco prima della scadenza. Si consultil’appendice A a pagina 115 per la nomenclatura dei prodotti.

CAPITOLO 1. FUTURES 14

19/09/2011 04/11/2011 19/12/2011 31/01/2012 14/03/2012

IFSH2

Giorni

Vol

ume

010

000

2000

030

000

4000

0

15/09/2011 25/10/2011 02/12/2011 12/01/2012 21/02/2012

STXEH2

Giorni

Vol

ume

050

0000

1500

000

19/09/2011 26/10/2011 05/12/2011 13/01/2012 23/02/2012

ESH2

Giorni

Vol

ume

050

0000

1500

000

2500

000

15/02/2011 18/10/2011 29/11/2011 09/01/2012 16/02/2012

SSIH2

Giorni

Vol

ume

050

000

1000

0015

0000

Figura 1.2: Sono mostrati i volumi scambiati sui 4 futures con scadenza a marzo 2012.Risulta ancora evidente la quasi totale assenza di scambi prima degli ultimitre mesi.

CAPITOLO 1. FUTURES 15

Tabella 1.3: Statistiche descrittive del futures IFS nel 2012.

Volume TOT Volume 3 Mesi Controvalore TOT (e)

IFSH2 1, 08 · 106 94% 0, 86 · 1011IFSM2 1, 69 · 106 95% 1, 19 · 1011IFSU2 1, 77 · 106 90% 1, 27 · 1011IFSZ2 1, 46 · 106 93% 1, 14 · 1011

”Volume 3 Mesi” ci si riferisce al valore percentuale degli scambi avvenutisolo negli ultmi 3 mesi. Infine, ”Controvalore TOT” e dato da:

Controvalore TOT =∑∀j

Volumej · Lastj ·M, (1.6)

dove la sommatoria viene effettuata su ogni giorno (j) tra quelli compresinegli ultimi 6 mesi. Il valore ”Last” e riferito all’ultimo trade eseguito ingiornata, mentre il parametro ”M” e il moltiplicatore del contratto. Segueche ”Controvalore TOT” rappresenta un’approssimazione (il valore cor-retto dovrebbe tener conto del livello dei futures ad ogni singolo trade) delcontrovalore di tutti i futures scambiati.

Scheda prodotto 1.1: FIB - Futures su FTSE MIB

Borsa di riferimento: Borsa ItalianaIndice sottostante: FTSE MIBCodice Reuters: IFSScadenze negoziate: Sono contemporaneamente quotate le quattro scadenze

trimestrali del ciclo marzo, giugno, settembre e dicembre.Orario di negoziazione: 9:00 - 17:40 (Italia: GMT* +1/+2)Moltiplicatore: Punti indice ×5.Valuta: Euro (e).Movimento minimo di prezzo: 5 punti indice (25 e).Giorno scadenza: Terzo venerdı dell’ultimo mese di quotazione.

Informazioni piu dettagliate sono reperibili al sito di rieferimento [4].

*Orario di Greenwich.

EURO STOXX 50 R© Index Futures

Nella scheda prodotto 1.2 sono indicate le principali specifiche tecnichedel futures sullo EURO STOXX 50 (STXE). L’orario di negoziazione (7:50

CAPITOLO 1. FUTURES 16

Tabella 1.4: Statistiche descrittive del futures STXE nel 2012.

Volume TOT Volume 3 Mesi Controvalore TOT (e)

STXEH2 7, 18 · 107 91% 1, 74 · 1012STXEM2 9, 48 · 107 90% 2, 13 · 1012STXEU2 8, 59 · 107 86% 2, 01 · 1012STXEZ2 6, 77 · 107 92% 1, 72 · 1012

- 22:00) si riferisce al ”Central European Time”, e in primavera passa daGMT +1 a GMT +2.

La tabella 1.4 mostra alcuni valori statistici riassuntivi per ognuno dei 4trimestri.

Scheda prodotto 1.2: EURO STOXX 50 R© Index Futures

Borsa di riferimento: Eurex ExchangeIndice sottostante: EURO STOXX 50Codice Reuters: STXEScadenze negoziate: Sono contemporaneamente quotate le quattro scadenze

trimestrali del ciclo marzo, giugno, settembre e dicembre.Orario di negoziazione: 7:50 - 22:00 (CET*: GMT +1/+2)Moltiplicatore: Punti indice ×10.Valuta: Euro (e).Movimento minimo di prezzo: 1 punto indice (10 e).Giorno scadenza: Terzo venerdı dell’ultimo mese di quotazione.

Informazioni piu dettagliate sono reperibili al sito di rieferimento [5].

*Central European Time.

E-mini S&P 500 Futures

Nella scheda prodotto 1.3 sono indicate le principali specifiche tecnichedel futures sull’S&P 500 (ES). L’orario di negoziazione si estende in un arcotemporale di 23 ore facendo riferimento al ”Central Standard Time” che inprimavera passa da GMT -6 a GMT -5.

La tabella 1.5 nella pagina successiva mostra alcuni valori statisticiriassuntivi per ognuno dei 4 trimestri.

CAPITOLO 1. FUTURES 17

Tabella 1.5: Statistiche descrittive del futures ES nel 2012.

Volume TOT Volume 3 Mesi Controvalore TOT ($)

ESH2 1, 10 · 108 95% 7, 17 · 1012ESM2 1, 23 · 108 92% 8, 80 · 1012ESU2 1, 26 · 108 82% 8, 64 · 1012ESZ2 1, 16 · 108 90% 8, 23 · 1012

Tabella 1.6: Statistiche descrittive del futures SSI nel 2012.

Volume TOT Volume 3 Mesi Controvalore TOT (U)

SSIH2 6, 02 · 106 97% 2, 72 · 1013SSIM2 7, 50 · 106 98% 3, 50 · 1013SSIU2 6, 54 · 106 91% 2, 88 · 1013SSIZ2 6, 28 · 106 96% 2, 84 · 1013

Scheda prodotto 1.3: E-mini S&P 500 Futures

Borsa di riferimento: CME GroupIndice sottostante: S&P 500Codice Reuters: ESScadenze negoziate: Sono contemporaneamente quotate le quattro scadenze

trimestrali del ciclo marzo, giugno, settembre e dicembre.Orario di negoziazione: 17:00* - 15:15 / 15:30 - 16:15 (CST**: GMT -6/-5)Moltiplicatore: Punti indice ×50.Valuta: Dollaro ($).Movimento minimo di prezzo: 0.25 punti indice (12.5 $).Giorno scadenza: Terzo venerdı dell’ultimo mese di quotazione.

Informazioni piu dettagliate sono reperibili al sito di rieferimento [6].

*Del giorno precedente.**Central Standard Time.

Nikkei 225 Index Futures

Nella scheda prodotto 1.4 sono indicate le principali specifiche tecnichedel futures sul Nikkei 225 (SSI). L’orario di negoziazione si estende in unarco temporale di 17 ore e 25 minuti facendo riferimento al fuso orario diSingapore che durante tutto l’anno corrisponde a GMT +8.

La tabella 1.6 mostra alcuni valori statistici riassuntivi per ognuno dei 4trimestri.

CAPITOLO 1. FUTURES 18

Tabella 1.7: Controvalore annuale futures

Controvalore TOT (e)

IFS 0, 45 · 1012STOXE 7, 60 · 1012ES 25, 60 · 1012SSI 0, 98 · 1012

Scheda prodotto 1.4: Nikkei 225 Index Futures

Borsa di riferimento: Singapore Exchange (SGX)Indice sottostante: Nikkei 225Codice Reuters: SSIScadenze negoziate: Sono contemporaneamente quotate le quattro scadenze

trimestrali del ciclo marzo, giugno, settembre e dicembre.Orario di negoziazione: 7:45 - 14:25 / 15:15 - 2:00* (Singapore: GMT +8)Moltiplicatore: Punti indice ×500.Valuta: Yen (U)Movimento minimo di prezzo: 5 punti indice (2500 U).Giorno scadenza: Secondo venerdı dell’ultimo mese di quotazione.

Informazioni piu dettagliate sono reperibili al sito di rieferimento [7].

*Del giorno successivo.

Tutti i futures, a parte quello sul FTSE MIB, vengono negoziati in unarco temporale significativamente piu esteso rispetto al corrispettivo indicedi mercato (gli indici sono quotati per circa 8 ore al giorno). Il fatto che ifutures interpretino con maggior continuita gli accadimenti esterni, fa sı chei ”salti” tipici che si verificano all’apertura siano di minore entita. Si notiinoltre che solo l’SSI ha come data di expiry il secondo venerdı dell’ultimomese.

Il volume degli scambi, negli ultimi 3 mesi di ”vita” dei futures, e quasisempre attorno al 90% rispetto a quello totale. Considerando 3 mesi piu unasettimana (quella che include l’expiry del contratto relativo al precedentetrimestre), si arriva circa al 98% per tutti i futures.

Infine puo essere fatto un confronto tra i controvalori dei volumi scam-biati nell’arco di un anno per ogni futures, si veda la tabella 1.7. I valorimostrati sono stati ottenuti considerando un cambio euro/dollaro pari a1, 28 e un cambio euro/yen pari a 122, 04 (valori aggiornati al 04/04/2013).

Capitolo 2

Serie Storiche e Modelli

In questo capitolo vengono presentate le principali caratteristiche feno-menologiche delle serie storiche finanziarie, e i modelli lineari standardutilizzati per descriverle ed effettuare previsioni. La trattazione econome-trica parte dai modelli univariati, per arrivare a quelli multivariati in gradodi considerare l’interdipendenza tra piu serie temporali.

Le nozioni teoriche fanno riferimento a Tsay (2010; Capitoli: 1,2,8) [8].

2.1 Serie Finanziarie

Lo studio delle serie storiche finanziarie generalmente tratta i return diun asset al posto del suo prezzo. Viene definito il simple return:

Rt =Pt − Pt−1Pt−1

, (2.1)

dove Pt e il prezzo dell’asset al tempo t. Si introduce inoltre il log return:

rt = In(1+ Rt) = InPt

Pt−1= pt − pt−1, (2.2)

dove pt = In(Pt). Si noti che Rt rappresenta l’approssimazione al primoordine di rt, quindi, per piccole variazioni di prezzo, le corrispettive seriestoriche hanno caratteristiche similari. Il simple return e di fatto la variazionepercentuale del prezzo, e puo assumere valori compresi nell’intervallo[−1,+∞). Diversamente il log return puo assumere valori su tutto l’assereale.

Nell’appendice B a pagina 116 sono riportate alcune definizioni e pro-prieta statistiche che di seguito verranno utilizzate. Se si considera uninsieme di N asset in in un periodo pari a T , i log return studiati saranno

19

CAPITOLO 2. SERIE STORICHE E MODELLI 20

Simple Return S&P 500

Simple Return

Fre

quen

za

−0.10 −0.05 0.00 0.05 0.10

010

020

030

040

050

0Log Return S&P 500

Log Return

Fre

quen

za

−0.10 −0.05 0.00 0.05 0.10

010

020

030

040

050

0Figura 2.1: Sono riportati gli istogrammi delle frequenze dei return (valutati sulle chiusure

giornaliere dal 19/04/1993 al 24/04/2013) relativi all’indice S&P 500. Le lineeblu rappresentano le gaussiane aventi media e varianza del campione inesame.

rit : i = 1, . . . ,N; t = 1, . . . , T (e possibile rappresentare allo stesso modo isimple return Rit). Nel caso univariato, si avra la distribuzione di probabilita:

f(ri1, . . . , riT ;θ) = f(ri1;θ)

T∏t=2

f(rit|ri,t−1, . . . , ri1;θ), (2.3)

dove θ1 e un opportuno vettore di parametri da determinare.In molte applicazioni, al posto della distribuzione condizionata, viene

considerata quella marginale perche piu facile da stimare. Una comune as-sunzione e che i simple return e i log return siano delle variabili indipendentie identicamente distribuite (iid). La distribuzione tipicamente considerata equella ”normale”, con media e varianza ricavate dai valori storici dei return,o in base a informazioni di mercato.

Questi modelli, nella loro semplicita, hanno il difetto di non mostrarealcuni fenomeni tipici delle distribuzioni empiriche. Si veda al propositola figura 2.1, dove vengono rappresentate le distribuzioni dei return (5035osservazioni negli ultimi vent’anni) dell’indice S&P 500, con le relative di-stribuzioni normali. La tabella 2.1 nella pagina seguente riporta i parametristatistici piu significativi.

La media positiva e in linea con l’aspettativa che nel lungo termineil mercato vada al rialzo. I p-valori associati a kurtosi e skewness sono

1Le grandezze vettoriali verranno sempre indicate in grassetto.

CAPITOLO 2. SERIE STORICHE E MODELLI 21

Tabella 2.1: Statistiche descrittive dell’S&P 500 (dati campionati dal 1993 al 2013).

Simple Return Log Return

Media 3, 25 · 10−4 2, 51 · 10−4

Varianza 1, 47 · 10−4 1, 47 · 10−4

Skewness −0, 51 · 10−1 −2, 39 · 10−1

Kurtosi 11, 41 11, 30

altamente significativi, con l’eccezione della skewness relativa ai simplereturn (p-valore=0, 142). La presenza di kurtosi evidenzia il fenomeno delle”code grasse”3 ben noto in finanza [9], ovvero il verificarsi di eventi rari lacui probabilita attesa da una distribuzione normale e praticamente nulla.La presenza skewness e dovuta all’asimmetria della distribuzione dei return,e la sua negativita e associata alla maggior probabilita di eventi rari negativirispetto a quelli positivi: e piu frequente che si verifichino grossi ribassirispetto a grossi rialzi del mercato. Infine, come atteso, le differenze trasimple return e log return risultano marginali.

2.2 Analisi Lineare Univariata

Ipotizzare che i return di un singolo asset siano delle variabili iid conuna distribuzione normale, equivale a trascurare (se non in termini dimedia e varianza) l’effetto di ogni precedente rilevazione ai fini di fareuna previsione: f(rt|r1, . . . , rt−1) = f(rt). Un altro approccio consiste nellostudiare la dipendenza tra rt e ri<t in termini di correlazioni lineari.

2.2.1 Stazionarieta

Una serie temporale rt e detta strettamente stazionaria se la distribuzionef(rt1 , . . . , rtk) e uguale a f(rt1+t, . . . , rtk+t) per ogni valore di t, dove k e unintero positivo e (t1, . . . , tk) e un insieme di k interi positivi. Questa e unacondizione molto forte e difficile da verificare empiricamente.

Si definisce inoltre una serie rt debolmente stazionaria quando E(rt) = µe Cov(rt, rt−`) = γ`, dove ` e un intero arbitrario e prende il nome di lagtemporale. La stazionarieta debole richiede solo l’invarianza per traslazioni

2Se non viene specificato diversamente, di seguito verra considerata come soglia perrifiutare l’ipotesi nulla H0 (in questo caso rappresentata dal considerare kurtosi e skewnessparia a zero) un valore di α pari a 0, 05.

3Per descrivere questo comportamento sono stati introdotti modelli in cui ladistribuzione di probabilita dei singoli return e poissoniana.

CAPITOLO 2. SERIE STORICHE E MODELLI 22

temporali dei primi due momenti della distribuzione e, nel caso in cui laserie temporale sia distribuita come una normale, le due definizioni date distazionarieta coincidono.

Generalmente in finanza si assume che la serie temporale dei returnsia debolmente stazionaria. I metodi di analisi standard che verrannopresentati nei prossimi paragrafi presuppongono la stazionarieta deboledella serie in esame. Quando questo requisito non viene soddisfatto dalleevidenze empiriche, ci si riconduce al caso stazionario considerando laserie delle differenze yt = rt − rt−1; questo procedimento viene ripetutoiterativamente fino a soddisfare la richiesta di stazionarieta.

2.2.2 Funzione di Autocorrelazione (ACF)

Si consideri una serie debolmente stazionaria rt. Per valutare la dipen-denza lineare tra rt e un valore passato arbitrario rt−`, si studia la funzionedi autocorrelazione (ACF):

ρ` =Cov(rt, rt−`)√Var(rt)Var(rt−`)

=Cov(rt, rt−`)

Var(rt)=γ`

γ0, (2.4)

dove la seconda uguaglianza deriva dalla stazionarieta. Dato un insiemert

Tt=1 e possibile stimare ρ`:

ρ` =

∑Tt=`+1(rt − r)(rt−` − r)∑T

t=1(rt − r)2

, 0 ≤ ` < T − 1, (2.5)

dove r e la media del campione in esame.Sia rt e una serie temporale debolmente stazionaria tale che: rt = µ +∑qi=0Ψiat−i, Ψ0 = 1 e aj e una sequenza di variabili casuali iid con media

pari a zero. Allora ρ` e asintoticamente normale con media pari a zero evarianza (1+ 2

∑qi=1 ρ

2i )/T per ` > q. Questo risultato e noto come formula

di Bartlett [10] e puo essere utilizzato per testare l’ipotesi H0 : ρ` = 0. Infattiil t-valore e dato da:

t =ρ`√

(1+ 2∑`−1

i=1 ρ2i )/T

. (2.6)

Considerando vera H0, allora il t-valore e distribuito come una variabilenormale con media pari a zero e varianza unitaria; puo cosı essere calcolatoil p-valore per decidere se rifiutare o meno l’ipotesi nulla.

CAPITOLO 2. SERIE STORICHE E MODELLI 23

Puo risultare necessario valutare direttamente se esistono autocorre-lazioni significative in un insieme i ∈ 1, . . . ,m di valori di `. Ljung eBox [11] hanno proposto la seguente grandezza statistica:

Q(m) = T(T + 2)

m∑`=1

ρ2`T − `

, (2.7)

come test per l’ipotesi nulla H0 : ρ1 = · · · = ρm = 0. Se gli rt sono iid,allora Q(m) assume asintoticamente una distribuzione del chi-quadratocon m gradi di liberta. Anche in questo caso si puo valutare il p-valore perdecidere se rifiutare l’ipotesi H0.

L’insieme dei ρ` definiti nell’equazione 2.5 e chiamato campione dellafunzione di autocorrelazione, e gioca un ruolo fondamentale nell’analisidelle serie temporali caratterizzandone la dinamica lineare.

Tutte le grandezze statistiche introdotte in questo paragrafo, e nei suc-cessivi, possono essere agevolmente calcolate servendosi del software ”R”(si veda l’appendice C a pagina 118). E dunque possibile applicare, a titolodi esempio, questi concetti alla serie storica dell’indice dell’S&P analizzatanel precedente paragrafo.

La figura 2.2 nella pagina seguente mostra il ”correlogramma”, ovveroi valori dell’ACF valutati per un insieme di lag temporali. Non e statoincluso ρ0 poiche, per definizione, sempre uguale a 1. Si puo notare cheil grafico dei simple return e praticamente identico a quello dei log return,ed entrambi mostrano dei ρ` significativi. Effettuando il test Ljung-Boxper Q(10), si ottengono dei valori pari a 58 per i simple returns e 56 per ilog returns, con dei p-valori prossimi a zero. Viene quindi confermata lapresenza di autocorrelazioni, seppur di piccola entita, statisticamente nontrascurabili.

2.3 Modelli Lineari Univariati

Qualora in una serie storica venisse appurata l’esistenza di autocorrela-zioni significative, il passo successivo sarebbe la costruzione di un modelloin grado di descrivere i dati campionati, ed effettuare delle previsioni. Imodelli per una serie temporale rt studiati in questo capitolo, sono di tipolineare, e possono essere espressi dalla:

rt = µ+

∞∑i=0

ψiat−i, (2.8)

CAPITOLO 2. SERIE STORICHE E MODELLI 24

5 10 15 20

−0.

2−

0.1

0.0

0.1

0.2

Lag

AC

F

ACF S&P 500 (Simple Return)

5 10 15 20

−0.

2−

0.1

0.0

0.1

0.2

Lag

AC

F

ACF S&P 500 (Log Return)

Figura 2.2: Sono riportati i valori delle autocorrelazioni per i return dell’S&P 500. Le lineetratteggiate blu rappresentano un intervallo di confidenza pari al 95%, entroal quale le autocorrelazioni sono trascurabili.

dove µ e la media di rt eψ0 = 1. La serie at e composta da variabili casualiindipendenti, caratterizzate da una distribuzione normale, con media paria zero e varianza σ2a: at prende il nome di ”rumore bianco”.

Per una serie lineare stazionaria si ha:

Var(rt) = σ2a

∞∑i=0

ψ2i <∞. (2.9)

La condizione Var(rt) < ∞ richiede che limi→∞ψ2i = 0. Questo fa sı chegli effetti di at−i su rt siano meno rilevanti per grandi valori di i.

2.3.1 Modello Autoregressivo (AR)

La presenza di autocorrelazioni suggerisce la possibilita di esprimere rtcome combinazione lineare dei suoi valori passati; si avra:

rt = φ0 + φ1rt−1 + . . .+ φprt−p + at, (2.10)

dove at e un rumore bianco con varianza σ2a, e p e un intero positivo. Questomodello e detto autoregressivo di ordine p.

CAPITOLO 2. SERIE STORICHE E MODELLI 25

Proprieta del modello AR(1)

Il modello autoregressivo di ordine 1 e definito come:

rt = φ0 + φ1rt−1 + at. (2.11)

In questo caso e possibile calcolare facilmente (tenendo conto della stazio-narieta debole) media e varianza:

E(rt) = µ =φ0

1− φ1; Var(rt) = γ0 =

σ2a1− φ21

. (2.12)

Affinche la media non diverga, si ha la richiesta che φ1 6= 1; inoltre, essendola varianza positiva e limitata, si avra anche la condizione φ21 < 1. Infine sipuo dimostrare che:

ρ` = φ`1 (2.13)

per ` ≥ 0. Questo risultato mostra che la ACF di un modello AR(1) decadeesponenzialmente al tassoφ1: i valori piu vecchi della serie rt sono sempremeno influenti al fine di stimare un futuro rt.

Trattandosi di un modello lineare, deve essere possibile ricondurlo allaforma dell’equazione 2.8. Infatti, utilizzando il risultato della 2.12, si puoriscrivere la 2.11 come:

rt − µ = φ1(rt−1 − µ) + at. (2.14)

Effettuando ripetute sostituzioni, si ottiene:

rt − µ = at + φ1at−1 + φ21at−2 + . . . =

∞∑i=0

φi1at−i. (2.15)

Questa equazione esprime il modello AR(1) nella forma della 2.8 con Ψi =φi1.

Proprieta del modello AR(p)

I risultati relativi ai processi AR(1) possono essere generalizzati per iprocessi AR(p) con p > 1. La media, per un processo stazionario, e data da:

E(rt) =φ0

1− φ1 − . . .− φp, (2.16)

CAPITOLO 2. SERIE STORICHE E MODELLI 26

con denominatore diverso da zero. E possibile associare alla 2.10 la seguenteequazione caratteristica:

1− φ1x− φ2x2 − . . .− φpx

p = 0. (2.17)

Se le soluzioni di questa equazione sono maggiori di 1 in modulo, allora laserie rt e stazionaria.

Come visto precedentemente, il grafico dell’ACF per un modello AR(1)e rappresentato da una funzione esponenziale decrescente. Nel caso piugenerico di un modello AR(p), l’ACF presentera, oltre al decadimentoesponenziale, anche delle componenti periodiche esprimibili attraverso lefunzioni seno e coseno.

Identificazione e stima dei parametri

L’equazione 2.10 e gia nella forma di una regressione lineare multipla,ne segue che i parametri φi e σa possono essere stimati col metodo deiminimi quadrati, tenendo pero conto dei vincoli dovuti alla richiesta distazionarieta del processo.

Il punto cruciale e la determinazione del valore di p, che non e noto apriori, e presenta un certo grado di arbitrarieta. Sono stati considerati dueapprocci:

1. Valutare la funzione delle autocorrelazioni parziali (PACF).

2. Utilizzare dei criteri di informazione basati sul principio di massimaverosimiglianza.

Nel primo caso si stabilisce un limite massimo al valore che p puo as-sumere e si stimano i parametri dei modelli AR(j) : j = 1 . . . p, indicandocon φi,j il valore φ dell’i-esimo coefficiente relativo al modello AR(j). LaPACF e quella funzione che associa ad ogni lag temporale ` il coefficienteφ`,`.

In sostanza la PACF dice quanto e significativa la presenza del terminert−` nella 2.10 in base all’entita del ”peso” ad esso associato. Una serie rt

generata da un processo AR(p), ha le seguenti proprieta:

• I valori stimati φp,p convergono a φp quando il campione in esame vaad infinito.

• φ`,` converge a zero per ` > p.

• La varianza asintotica di φ`,` e pari a 1/T per ` > p.

CAPITOLO 2. SERIE STORICHE E MODELLI 27

5 10 15 20

−0.

10−

0.05

0.00

0.05

0.10

Lag

Par

tial A

CF

PACF S&P 500 (Log Return)

Figura 2.3: Sono riportati i valori della PACF (”partial autocorrelation function”) per ireturn dell’S&P 500. Le linee tratteggiate blu rappresentano un intervallo diconfidenza pari al 95%, entro al quale i valori di φ sono trascurabili.

Se il valore `-esimo della PACF e statisticamente significativo, allora saraopportuno costruire un modello AR(p) con p ≥ `. La figura 2.3 mostrai primi venti valori della PACF relativa alla serie storica dell’indice S&P500. Si possono notare rilevazioni statisticamente significative fino a ` = 18,indicando la scelta di un modello AR(18). Chiaramente questa decisione econdizionata dal valore di α, con α = 0, 01 verrebbe selezionato un modelloAR(5).

Il secondo approccio si basa sulla funzione di massima verosomiglianza.Ad esempio, il criterio di informazione Akaike (AIC), per un modello AR(`)e definito come:

AIC(`) = In(σ2`) +2`

T, (2.18)

dove σ2` e la stima di massima verosimiglianza di σ2α, e T e la grandezza delcampione studiato. Il primo termine misura la bonta dell’adattamento diAR(`) ai dati, il secondo serve a ”penalizzare” modelli con troppi parametrida stimare.

Un altro criterio analogo e quello di Schwarz (BIC):

BIC(`) = In(σ2`) +`In(T)

T. (2.19)

Nell’AIC il termine che penalizza alti valori di ` e pari a 2/T , mentre nelBIC e dato da In(T)/T ; quindi il criterio BIC tende a selezionare modelliAR di ordine minore al crescere del campione in esame.

CAPITOLO 2. SERIE STORICHE E MODELLI 28

In pratica viene utilizzato il criterio di informazione per ` = 0, . . . , k (k eun intero positivo scelto arbitrariamente). Viene poi selezionato il modelloAR di ordine p = ` tale per cui AIC(`) o BIC(`) risultano minimizzati. Sceltol’oridine del modello AR, e possibile stimarne i parametri col metodo deiminimi quadrati. Denotando la stima di φ1 con φi, si ottiene:

rt = φ0 + φ1rt−1 + . . .+ φprt−p; t = p+ 1, . . . , T. (2.20)

Si possono poi valutare i residui associati:

at = rt − rt, (2.21)

la serie at e chiamata serie dei residui. Da quest’ultima si puo ottenere:

σ2a =

∑Tt=p+1 a

2t

T − 2p− 1. (2.22)

Controllo del modello

Se il modello stimato nella 2.20 e adeguato, la serie dei residui devecomportarsi come un rumore bianco. Questa ipotesi puo essere verificatastudiando l’ACF della serie at, o effettuando il test Ljung-Box. Qualoravenissero evidenziate delle autocorrelazioni significative, si procederebbestimando un nuovo modello AR di ordine diverso. Allo stesso tempo, sealcuni dei coefficienti stimati avessero dei valori trascurabili, si potrebbeconsiderare di porli direttamente uguali a zero.

2.3.2 Modello a Media Mobile (MA)

Un’altra classe di modelli utilizzati per descrivere le serie temporalisono i modelli a media mobile (MA). Questi possono essere introdotti in unaforma analoga a quella dell’equazione 2.8 a pagina 23, con una sommatoriafinita di q elementi:

rt = c0 + at − θ1at−1 − . . .− θqat−q = c0 + at −

q∑i=1

θiat−i. (2.23)

Si faccia riferimento all’equazione 2.15 a pagina 25. In questo casoun modello AR(1) e equivalente ad un modello MA di ordine q = ∞.Tuttavia, quando i coefficenti φi sono determinati da alcune regole, anchei modelli AR di ordine p = ∞ possono essere riscritti come degli MA(q).

CAPITOLO 2. SERIE STORICHE E MODELLI 29

Quindi, l’utilita di questi modelli e data dalla possibilita di scrivere la stessaequazione in forma compatta.

Ad esempio, si puo considerare il seguente caso particolare:

rt = φ0 − θ1rt−1 − θ21rt−2 − θ

31rt−3 − . . .+ at, (2.24)

dove i coefficienti dipendono dal un singolo parametro θ1 attraverso larelazione φi = −θi1 per i ≥ 1. E possibile riscrivere la 2.24 come:

rt + θ1rt−1 + θ21rt−2 + . . . = φ0 + at. (2.25)

Per rt−1 si ha:

rt−1 + θ1rt−2 + θ21rt−3 + . . . = φ0 + at−1. (2.26)

Moltiplicando la 2.26 per θ1 e sottraendo il risultato dalla 2.25, si ottiene:

rt = φ0(1− θ1) + at − θ1at−1, (2.27)

che esprime la serie temporale rt nella forma di un processo MA(1).

Proprieta dei modelli MA

I modelli a media mobile rappresentano sempre dei processi stazionari.Infatti, sono dati da delle combinazioni lineari finite di una sequenza divariabili stocastiche (rumore bianco) caratterizzate dai primi due momentiinvarianti nel tempo. Si consideri il seguente modello MA(1):

rt = c0 + at − θ1at−1. (2.28)

Il valore medio e:

E(rt) = c0. (2.29)

La varianza e pari a:

Var(rt) = σ2a + θ

21σ2a = (1+ θ21)σ

2a, (2.30)

dove si e tenuto conto che at e at−1 sono incorrelati. Sia la media che lavarianza risultano invarianti.

Le stesse argomentazioni possono essere utilizzate per i modelli MA(q),in questo caso si ha sempre E(rt) = c0, mentre la varianza e data da:

Var(rt) = (1+ θ21 + θ22 + . . .+ θ

2q)σ

2a. (2.31)

CAPITOLO 2. SERIE STORICHE E MODELLI 30

E inoltre possibile dimostrare che ρ` per un modello MA(q) e diversa dazero solo quando ` ≤ q, per questo motivo si parla di modelli a ”memoriafinita”.

Identificazione e stima dei parametri

Il fatto che le correlazioni di un modello MA(q) siano nulle per lagtemporali maggiori di q, suggerisce di studiare il correlogramma dellaserie temporale in esame. Infatti, se si osserva che le correlazioni empirichediventano poco significative oltre un certo lag temporale `, e allora possibileidentificare il modello come un MA(q = `).

Nel caso delle chiusure giornaliere dell’S&P 500, la figura 2.2 a pagina 24non mostra un chiaro andamento di questo tipo (almeno per i primi 20lag temporali), e difficilmente i valori rt potranno essere descritti da unsemplice modello MA.

Per quanto riguarda la determinazione dei parametri, esistono due pro-cedure per valutare la funzione di verosimiglianza di un modello MA. Ilprimo approccio assume che gli at per t ≤ 0 siano pari a zero. In questomodo gli at per t > 0 sono calcolati ricorsivamente partendo da a1 = r1−c0e a2 = r2− c0+ θ1a1. Si parla in questo caso di metodo della verosimiglianzacondizionata. Il secondo approccio richiede un maggior tempo computa-zionale, e tratta gli at per t ≤ 0 come degli ulteriori parametri da stimare.Viene chimato metodo della verosimiglianza esatta. Se il campione in esamee abbastanza grande, le due stime convergono asintoticamente.

2.3.3 Modello Autoregressivo a Media Mobile (ARMA)

A questo punto e possibile sintetizzare le principali proprieta dei mo-delli AR ed MA:

• In un modello MA, la funzione di autocorrelazione (ACF) e utilizzataper specificarne l’ordine poiche, se la serie e generata da un MA(q),va a zero per un lag maggiore di q.

• In un modello AR, la funzione di autocorrelazione parziale (PACF) eutilizzata per specificarne l’ordine poiche, se la serie e generata da unAR(p), va a zero per un lag maggiore di p.

• Una serie MA e sempre stazionaria, mentre una serie AR per esserestazionaria deve soddisfare la condizione secondo cui gli zeri dell’e-quazione caratteristica (si veda l’equazione 2.17 a pagina 26) sonomaggiori di 1 in modulo.

CAPITOLO 2. SERIE STORICHE E MODELLI 31

In diverse applicazioni, i modelli appena descritti, possono diventareproblematici a causa dell’alto ordine, e il conseguente grande numero diparametri da stimare. Per superare questa difficolta vengono introdotti i mo-delli autoregressivi a media mobile (ARMA). I modelli ARMA non fanno altroche combinare le due descrizioni precedenti (che di fatto ne rappresentanoun caso particolare), e possono essere espressi nella forma generica:

rt = φ0 +

p∑i=1

φirt−1 + at −

q∑i=1

θiat−i, (2.32)

dove at e sempre un rumore bianco e p, q sono degli interi non negativi cherappresentano l’ordine rispettivamente della componente AR ed MA. Inquesto caso si parla di un modello ARMA(p,q), che ha la sua ragione diessere introdotto solo perche ha una forma piu compatta rispetto ai singoliAR/MA.

Va segnalata un’ulteriore generalizzazione fornita attraverso i modelliARMA integrati (ARIMA). Questi ultimi sono descritti da un parametroaggiuntivo ”d” che rappresenta l’ordine di differenziazione della serie alfine di renderla stazionaria4.

Proprieta del modello ARMA(1,1)

Un modello ARMA(1,1) e definito dalla seguente equazione:

rt − φ1rt−1 = φ0 + at − θ1at−1, (2.33)

dove la parte a sinistra e la componente AR, mentre quella a destra e lacomponente MA. Affiniche questa espressione abbia senso, e necessarioche φ1 6= θ1; altrimenti la serie si ridurrebbe ad un semplice rumore bianco.

Le proprieta di un modello ARMA(1,1) sono una genralizzazione diquelle di un AR(1), con qualche alcune modifiche di piccola entita dovuteall’impatto del processo MA(1). Il valore medio della 2.33 e:

E(rt) = µ =φ0

1− φ1, (2.34)

risultato analogo a quello di un AR(1). Inoltre, assumendo per semplicitache φ0 = 0, si ha per la varianza:

Var(rt) =(1− 2φ1θ1 + θ

21)σ

2a

1− φ21. (2.35)

4Questa procedura e gia stata illustrata nel sottoparagrafo 2.2.1.

CAPITOLO 2. SERIE STORICHE E MODELLI 32

Anche in questo caso la condizione di stazionarieta e data da |φ1| < 1, comeper il modello AR(1).

Infine, e possibile valutare l’autocorrelazione:

ρ1 = φ1 −θ1σ

2a

γ0, ρ` = φ1ρ`−1, per ` > 1. (2.36)

Quindi la funzione di autocorrelazione di un modello ARMA(1,1) ricalcal’andamento di un AR(1), con la differenza che il decadimento esponenzialecomincia a partire dal lag ` = 2. Di conseguenza, l’ACF di un ARMA(1,1),non va a zero per un valore finito di `, come accade invece con un modelloMA.

Allo stesso modo, la PACF non va a zero come in un AR(1), ma decadeesponenzialmente come nei modelli MA, anche in questo caso a partire dallag ` = 2.

Modello generale ARMA(p,q)

Il modello ARMA(p,q) e espresso dall’equazione 2.32 nella pagina pre-cedente. Si puo introdurre l’operatore back-shift ”B”, che opera una trasla-zione temporale nel seguente modo: Brt = rt−1, o anche Bat = at−1. E orapossibile riscrivere la 2.32 come:

(1− φ1B− . . .− φpBp)rt = φ0 + (1− θ1B− . . .− θqB

q)at. (2.37)

Si richiede che non vi siano fattori comuni tra i due polinomi AR ed MA;altrimenti l’ordine (p,q) del modello puo essere ridotto. La condizione distazionarieta e soddisfatta se il polinomio caratteristco della componenteAR (membro a sinistra nella 2.37) ha soluzioni maggiori di 1 in modulo. Inquesto caso la media e data da:

E(rt) =φ0

1− φ1 − . . .− φp. (2.38)

Identificazione e stima dei parametri

Per le ragioni appena esposte, risulta piuttosto difficile valutare l’ordinedi un modello ARMA a partire dalla ACF o dalla PACF. Risultano invecepiu appropriati per questo scopo (grazie anche alla potenza di calcolo deicomputer attuali) i criteri di informazion (AIC/BIC) discussi in precedenza.

Una volta che il modello ARMA(p,q) e stato selezionato, e possibilestimarne i parametri utilizzando il metodo della verosimiglianza, esatta o

CAPITOLO 2. SERIE STORICHE E MODELLI 33

condizionata. Infine, puo essere effettuato il test Ljung-Box sui residui percontrollare che non siano ancora presenti delle correlazioni significative.Se le ipotesi fatte sono corrette, allora Q(m) presenta asintoticamente unadistribuzione del chi-quadrato conm− g gradi di liberta, dove g denota ilnumero di coefficienti stimati nelle componenti AR/MA.

2.3.4 Effettuare delle Previsioni

Un’importante applicazione degli strumenti fino ad ora introdotti, con-siste nell’effettuare delle previsioni sui valori futuri delle serie temporali. Sisupponga di trovarsi al tempo t = h, e di essere interessati a prevedere rh+`,con ` ≥ 1. L’indice temporale ”h” e detto origine della previsione, mentrel’intero positivo ”`” prende il nome di orizzonte della previsione.

Determinato il modello (AR, MA o ARMA) che meglio approssimal’insieme noto dei dati empirici, le previsioni non sono altro che il valoreatteso degli rt+`. Chiamando rh(1) la previsione di rt+1, per un modelloARMA si ha:

rh(1) = E(rt+1|Fh) = φ0 +

p∑i=1

φirh+1−i −

q∑i=1

θiah+1−i, (2.39)

dove Fh rappresenta l’insieme di tutte le informazioni note al tempo t = h.L’errore associato e eh(1) = rh+1 − rh(1) = ah+1, quindi la varianza dellostesso risulta pari a Var[eh(1)] = σ2a.

Per un orizzonte di previsione `, si ottiene:

rh(`) = E(rt+`|Fh) = φ0 +

p∑i=1

φirh(`− i) −

q∑i=1

θiah(`− i), (2.40)

dove rh(` − i) = rh+`−i se ` − i ≤ 0, mentre ah(` − i) = 0 se ` − i > 0 eah(`− i) = ah+`−i se `− i ≤ 0. L’errore associato e eh(`) = rh+` − rh(`).

Nella pratica, quando si effettano delle previsioni, vengono utilizzatidirettamente i parametri del modello stimato trascurandone l’incertezza:si parla in questo caso di previsione condizionata. Quando il campioneesaminato e abbastanza grande, le previsioni condizionate e incondizionateconvergono agli stessi valori.

Caratteristiche delle previsioni

Le caratteristiche principali delle previsioni con i modelli ARMA posso-no essere cosı riassunte:

CAPITOLO 2. SERIE STORICHE E MODELLI 34

Tabella 2.2: Parametri ARMA(1,1) S&P 500.

φ1 θ1 µ σa

Stima 0, 625 0, 6955 3, 27 · 10−4 0, 012

Errore 0, 088 0, 0811 1 · 10−4 −

• La varianza dell’errore della previsione Var[eh(`)] e una funzionecrescente di `.

• La previsione rh(`), e Var[eh(`)], convergono asintoticamente rispetti-vamente alla media e alla varianza campionaria quando ` aumenta.

• La componente MA del modello predittivo converge a media e va-rianza campionaria non appena ` > q.

In sostanza, piu ci si spinge in avanti con l’orizzonte di previsione, piul’incertezza aumenta e la stima che viene effettuata si avvicina alla mediaincondizionata dei dati esaminati.

Esempio S&P 500

Il procedimento da adottare per studiare una serie storica puo esserereso piu chiaro considerando un esempio. Viene ripresa la serie tempo-rale generata dai simple return giornalieri dell’S&P 500, gia analizzata neiprecedenti paragrafi.

Per prima cosa viene valutato l’ordine del modello ARMA che megliosi adatta ai dati. I criteri di informazione (BIC e AIC) selezionano unARMA(1,1); ne vengono poi stimati i parametri5 che sono riportati nellatabella 2.2. Si noti che i parametri, tenendo conto dell’errore, sono tuttisignificativi. In particolare il valore medio di rt puo essere confrontatocon la media campionaria che e pari a circa 3, 25 · 10−4 e, tenendo contodell’incertezza del modello, risultano compatibili. Utilizzando la 2.38, siottiene:

φ0 = µ(1− φ1) = 1, 226 · 10−4. (2.41)

E ora possibile scrivere esplicitamente il modello ARMA(1,1):

rt = 1, 23 · 10−4 + 0, 625rt−1 − 0, 695at−1 + at, σa = 0, 012. (2.42)5Le stime sono effettuate dal software ”R”, che restituisce la media µ al posto

dell’intercetta φ0.

CAPITOLO 2. SERIE STORICHE E MODELLI 35

5 10 15 20

−0.

2−

0.1

0.0

0.1

0.2

Lag

AC

F

ACF S&P 500 (Residui)

Figura 2.4: Sono riportati i valori della funzione di autocorrelazione per i residui delmodello stimato. Le linee tratteggiate blu rappresentano un intervallo diconfidenza pari al 95%, entro al quale i valori dell’ACF risultano trascurabili.

Tabella 2.3: Previsioni S&P 500 (Simple Return).

r`=1 r`=3 r`=5 r`=10 Campione

Stima −7, 26 · 10−4 −0, 84 · 10−4 1, 66 · 10−4 3, 12 · 10−4 µ 3, 25 · 10−4

σ 0, 012 0, 012 0, 012 0, 012 σ 0, 012

Per controllare la validita del modello viene poi valutata la funzione diautocorrelazione della serie dei residui (at = rt − rt). A tal proposito, siosservi la figura 2.4. La presenza di alcune autocorrelazioni significativee confermata dal test Ljung-Box (Q(10) e 8 gradi di liberta), che evidenziaun p-valore pari a circa l’1%: si potrebbe quindi decidere di considerare unmodello ARMA di ordine maggiore.

Tenendo per buono il modello della 2.42, e possibile a questo puntoeffettuare delle previsioni. Nella figura 2.5 nella pagina successiva, so-no riportati i primi 10 punti previsti per i simple return comparati conquelli effettivamente rilevati. Balza subito all’occhio che, per quanto i va-lori reali rientrino nei margini delle previsioni, queste ultime convergonovelocemente alla media campionaria, cosı come la varianza (si veda latabella 2.3).

Questo risultato puo avere due interpretazioni:

1. il modello non puo cogliere appieno la dinamica del campione osser-vato;

CAPITOLO 2. SERIE STORICHE E MODELLI 36

5000 5005 5010 5015 5020 5025 5030 5035

−0.

04−

0.02

0.00

0.02

0.04

Giorno

Ret

urn

Previsione S&P 500 (Simple Return)

Figura 2.5: I cerchi blu rappresentano i 10 punti previsti della serie, le linee tratteggiaterosse sono i margini di errore della previsione (due deviazioni standard). Icerchi neri collegati da una linea continua descrivono i valori effettivi dellaserie temporale, mentre la linea verticale tratteggiata coincide con l’orizzontedelle previsioni.

2. oppure, il set informativo Fh non e sufficente per determinare conprecisione rh+`.

La seconda ipotesi suggerisce che l’incertezza delle previsioni riflette lasostanziale ”ignoranza” relativa al sistema esaminato.

2.4 Modelli Multivariati

La ”virtualizzazione” dei mercati (transazioni elettroniche), resa pos-sibile grazie alle nuove tecnologie, e la globalizzazione economica, hannoaccelerato l’integrazione dei mercati finanziari mondiali negli anni recenti.I movimenti di prezzo in un mercato possono diffondersi facilmente edistantaneamente in un altro mercato. Per questo motivo i mercati finanziarisono sono maggiormente dipendenti l’uno dall’altro rispetto al passato,ed e importante considerarli congiuntamente per comprendere meglio lastruttura dinamica della finanza globale.

Un mercato puo condizionarne un altro in certe circostanze, ma questorapporto puo essere capovolto in altre circostanze. Conseguentemente,sapere come i mercati sono intercorrelati l’uno con l’altro, e di grandeimportanza in un’ottica di gestione e riduzione del rischio quando uninvestitore possiede un portafoglio diversificato.

CAPITOLO 2. SERIE STORICHE E MODELLI 37

Figura 2.6: A sinistra l’andamento dell’indice FTSE MIB dal 25/02/2013 al 05/03/2013, irisultati delle elezioni sonon stati resi pubblici nella giornata del 26/02/2013.A destra lo stesso grafico relativo allo EURO STOXX 50. I dati sono staticampionati ogni dieci minuti (fonte: Reuters)

A titolo di esempio si faccia riferimento alla figura 2.6. E mostratol’andamento degli indici FTSE MIB e EURO STOXX 50 in seguito alleelezioni politiche italiane 2013. Si noti come le notizie relative all’esito delleelezioni si ripercuotono istantaneamente sugli indici azionari, causando unavariazione percentuale rispettivamente del −7% e −4%. Questo fenomenoe piuttosto comune: una notizia rilevante per un paese, o un particolaresettore, influenza immediatamente tutti i mercati in modo proporzionale aquanto questi ultimi sono legati.

2.4.1 Analisi Lineare Multivariata

In questa sezione vengono introdotti dei modelli econometrici utili perstudiare l’andamento dei return di piu asset. Nella letteratura statisticasi fa riferimento a questi modelli indicandoli come analisi vettoriale, omultivariata, di serie storiche.

Una serie temporale multivariata e composta da piu serie singole, perquesto motivo si fara ricorso all’uso di vettori e matrici che, come accennatoin precedenza, saranno indicati in grassetto.

Stazionarieta e correlazione incrociata

Molti dei concetti introdotti nei paragrafi precedenti possono essereestesi facilmente alle serie multivariate, in alcuni casi tuttavia bisognaprestare piu attenzione.

Si consideri una serie temporale k-dimensionale rt = (r1t, . . . , rkt)′, dove

ogni ”k” corrisponde ad una singola serie e l’apice rappresenta l’operazione

CAPITOLO 2. SERIE STORICHE E MODELLI 38

di trasposizione. Una serie rt e debolmente stazionaria se il suo primo esecondo momento sono invarianti per traslazioni temporali. In particolare,il vettore medio e la matrice di covarianza sono costanti nel tempo.

Per una serie debolmente stazionaria, vettore medio e matrice di cova-rianza sono definiti rispettivamente come:

µ = E(rt), Γ0 = E[(rt − µ)(rt − µ)′], (2.43)

dove µ e un vettore k-dimensionale, e Γ0 e una matrice k× k. Gli elementidiagonali di Γ0 sono le varianze delle singole serie temporali, mentre glielementi (i, j) sono le covarianze tra rit e rjt.

Viene definita D, una matrice k × k diagonale avente per elementile deviazioni standard di rit per i = 1, . . . , k. La matrice di correlazioneincrociata, con lag temporale pari a zero, e definita come:

ρ0 = D−1Γ0D

−1. (2.44)

Nello specifico, gli elementi (i, j) di ρ0 sono dati da:

ρij(0) =Γij(0)√Γii(0)Γjj(0)

=Cov(rit, rjt)

std(rit)std(rjt), (2.45)

che e la correlazione tra rit e rjt. Si puo facilmente dimostrare che ρij(0) =ρji(0), −1 ≤ ρij(0) ≤ 1, e ρii(0) = 1. Quindi ρ0 e una matrice simmetricacon elementi diagonali unitari.

La generalizzazione ad un lag temporale arbitrario e immediata. Vienecosı definita la matrice di covarianza incrociata:

Γ` = E[(rt − µ)(rt−` − µ)′], (2.46)

dove l’elemento (i, j) e la covarianza tra rit e rj,t−`. Per una serie debolmentestazionaria, Γ` e una funzione di ` e non di t.

La matrice di correlazione incrociata (CCM) e definita come:

ρ0 = D−1Γ`D

−1. (2.47)

Segue che:

ρij(`) =Γij(`)√Γii(0)Γjj(0)

=Cov(rit, rj,t−`)

std(rit)std(rjt), (2.48)

che e il coefficiente di correlazione tra rit e rj,t−`. Inoltre l’elemento diagona-le ρii(`) e semplicemente l’autocorrelazione con ` = 1 di rit.

CAPITOLO 2. SERIE STORICHE E MODELLI 39

E importante evidenziare che in generale ρij(`) 6= ρji(`) per i 6= j (lematrici Γ` e ρ` non sono simmetriche), questo perche i due coefficientimisurano delle relazioni lineari differenti.

Dipendenza lineare

Si consideri l’insieme delle CCM ρ`|` = 0, 1, . . . di una serie stazionariavettoriale rt. E possibile ricavare le seguenti informazioni:

1. Gli elementi diagonali ρii(`)|` = 0, 1, . . . rappresentano la ACF di rij.

2. Gli elementi fuori dalla diagonale ρij(0) misurano la relazione lineare”contemporanea” tra rit e rjt.

3. Per ` > 0, gli elementi fuori dalla diagonale ρij(`) misurano la dipen-denza lineare tra rit e i valori passati rj,t−`.

Quindi, se ρij(`) = 0 per ogni ` > 0, allora rit non dipende linearmenteda alcun valore passato rj,t−` della serie rjt.

In generale, la relazione lineare tra due serie temporali rit e rjt puoessere riassunta come segue:

1. rit e rjt non hanno una relazione lineare se ρij(`) = ρji(`) = 0 per ogni` ≥ 0.

2. rit e rjt sono contemporaneamente correlate se ρij(0) 6= 0.

3. rit e rjt non hanno una dipendenza temporale se ρij(`) = 0 e ρji(`) = 0per ogni ` > 0. In questo caso le due serie si dicono ”disaccoppiate”.

4. C’e una relazione unidirezionale da rit a rjt se ρij(`) = 0 per ogni ` > 0,ma ρji(v) 6= 0 per qualche v > 0. In questo caso rit non dipende daivalori passati di rjt, ma rjt dipende da alcuni valori passati di rit.

5. C’e una relazione a ”feedback” tra rit e rjt se ρij(`) 6= 0 per qualche` > 0 e ρji(v) 6= 0 per qualche v > 0.

Correlazione incrociata di un campione

Una volta raccolti i dati di un campione esaminato rt|t = 1, . . . , T , lamatrice di covarianza incrociata puo essere stimata come segue:

Γ` =1

T

T∑t=`+1

(rt − r)(rt−` − r)′, ` ≥ 0, (2.49)

CAPITOLO 2. SERIE STORICHE E MODELLI 40

−0.003 −0.002 −0.001 0.000 0.001

−0.

004

−0.

002

0.00

00.

002

Return ESH2

Ret

urn

ST

XE

H2

−0.003 −0.002 −0.001 0.000 0.001

−0.

004

−0.

002

0.00

00.

002

Return ESH2

Ret

urn

ST

XE

H2

(Lag

= 1

)

l

Figura 2.7: A sinistra, i simple return dei futures ESH2 e STXEH2 valutati simultanea-mente, a destra, i return STXEH2 sono traslati indietro di 10 minuti. Sono 96misurazioni, una ogni 5 minuti, dalle 8:00 alle 16:00 del 01/03/2012. I cerchipiu scuri rappresentano rilevazioni che si sovrappongono, mentre la linea blue una regressione lineare.

dove r = (∑T

t=1 rt)/T e il vettore della media campionaria. La matrice dicorrelazione incrociata ρ` e data da:

ρ` = D−1Γ`D

−1, ` ≥ 0, (2.50)

dove D e una matrice diagonale K × K i cui elementi corrispondono alledeviazioni standard campionarie.

Come nel caso univariato, le proprieta asintotiche di ρ` sono state inve-stigate sotto varie assunzioni, si veda al proposito Fuller (2009; Capitolo6) [12]. In particolare, si ha che 1/

√T e il valore critico al di sotto del quale

le correlazioni campionarie possono essere considerate trascurabili.La figura 2.7 riporta sugli assi x e y, rispettivamente i simple return dei

futures ESH2 e STXEH2, valutati ogni 5 minuti nell’arco di una giornata.In un caso i return sono contemporanei ` = 0, nell’altro e presente un lagtemporale ` = 1. Per ` = 0 si ha una correlazione ρ`=0 = 0, 83 altamentesignificativa (la soglia e 1/

√96 ≈ 0, 1), mentre ρ`=1 = 0, 14. Si noti che il

valore ”fuori campione” si verifica simultaneamente per entrambi i futures,e corrisponde ad una variazione dello 0, 1%: circa un ordine di grandezzamaggiore rispetto alle altre variazioni sulla scala temporale dei 5 minuti.

Il test Ljung-Box univariato Q(m) e stato generalizzato per il caso mul-tivariato da Hosking (1980) [13]. L’ipotesi nulla e H0 : ρ1 = . . . = ρm = 0,

CAPITOLO 2. SERIE STORICHE E MODELLI 41

mentre l’ipotesi alternativa e Ha = ρi 6= 0 per qualche i ∈ 1, . . . ,m. Il testassume la forma:

Qk(m) = T 2m∑`=1

1

T − `tr(Γ

′`Γ

−1

0 Γ`Γ−1

0 ), (2.51)

dove con tr(A) si indica la traccia della matriceA. Nell’ipotesi nullaQk(m)e caratterizzato asintoticamente da una distribuzione del chi-quadrato conk2m gradi di liberta. Se, in base al campione esaminato, tale ipotesi puoessere rifiutata, e possibile costruire un modello multivariato che tengaconto delle correlazioni incrociate delle serie studiate.

2.4.2 Modello Autoregressivo Vettoriale (VAR)

I processi VAR costituiscono la generalizzazione multivariata dei pro-cessi AR. Fanno parte della piu ampia famiglia dei processi VARMA, i qualihanno una struttura di tipo ARMA vettoriale. Tuttavia, questi ultimi sonopiuttosto complicati da stimare e quindi la maggior parte delle applicazioniempiriche fa uso dei piu semplici modelli VAR.

Alcune delle considerazioni fatte in precedenza a proposito dei modelliAR, si estendono ai modelli VAR, ma l’avere a che fare con dei polinomimatriciali, anziche scalari, impone una serie di considerazioni aggiuntive.

Proprieta del modello VAR(1)

Una serie temporale multivariata rt e un processo VAR di ordine 1, oVAR(1), se e descritta dalla seguente equazione:

rt = φ0 +Φrt−1 + at, (2.52)

dove φ0 e un vettore k-dimensionale, Φ e una matrice K × K e at e unasequenza di vettori serialmente scorrelati6, con media zero, e una matricedi covarianza Σ. Nelle applicazioni e richiesto che la matrice Σ sia definitapositiva; altrimenti la dimensione di rt puo essere ridotta. Si assumeraquindi che at e caratterizzata da una distribuzione normale multivariata.

Nel caso bivariato, il modello VAR(1) puo essere descritto dal seguentesistema:

r1t = φ10 +Φ11r1,t−1 +Φ12r2,t−1 + a1t,

r2t = φ20 +Φ21r1,t−1 +Φ22r2,t−1 + a2t,

6Si intende che ait non presenta una correlazione con ai,t−1 per ogni i, che e la stessacondizione del caso univariato.

CAPITOLO 2. SERIE STORICHE E MODELLI 42

che mostra esplicitamente le dipendenze lineari tra gli elementi di rt e rt−1.La dipendenza contemporanea tra r1t e r2t e implicita, ed e presente neglielementi σ12 della matrice Σ.

Assumendo che il modello VAR(1) sia debolmente stazionario, si ha:

µ ≡ E(rt) = φ0 +ΦE(rt−1) = (I−Φ)−1φ0, (2.53)

dove I e una matrice identita k × k. Si puo dunque riscrivere l’equazio-ne 2.52 nella pagina precedente come:

rt = at +Φat−1 +Φ2at−2 +Φ

3at−3 + . . . , (2.54)

con rt = rt − µ. Questa espressione mostra diverse caratteristiche deiprocessi VAR(1). Primo, siccome at serialmente scorrelato, segue cheCov(at, rt−1) = 0. Secondo Cov(at, rt) = Σ. Inoltre si puo notare chert dipende dagli ”shock” passati at−j, attraverso la matrice dei coefficientiΦj. Affinche questa dipendenza abbia senso Φj deve convergere a zeroquando j → ∞. Quindi i k autovalori di Φ devono essere minori di 1 inmodulo.

Infine si possono ricavare le relazioni per la covarianza e correlazioneincrociate:

Γ` =Φ`Γ0, ρ` = Υ

`ρ0 per ` > 0, (2.55)

dove Υ = D−1/2ΦD1/2.

Proprieta del modello VAR(p)

Una serie temporale rt segue un modello VAR(p) se soddisfa:

rt = φ0 +Φ1rt−1 + . . .+Φprt−p + at, p > 0. (2.56)

Il passaggio da VAR(1) a VAR(p) e analogo a quello relativo ai modelliunivariati. Le principali caratteristiche possono essere cosı riassunte:

• Cov(rt,at) =∑

, la matrice di covarianza di at.

• Cov(rt−`,at) = 0 per ` > 0.

• Γ` =Φ1Γ`−1 + . . .+ΦpΓ`−p per ` > 0.

• ρ` = Υ1ρ`−1 + . . .+Υpρ`−p per ` > 0.

CAPITOLO 2. SERIE STORICHE E MODELLI 43

La struttura dei coefficienti della matriceΦ` e di particolare importanzanello studio delle serie storiche finanziarie. Infatti, se l’elemento Φij(`) epari a zero (o trascurabile) per ogni `, allora rit non dipende dai precedentivalori di rjt. DunqueΦ` fornisce informazioni sulla dipendenza temporaletra le serie componenti il vettore rt.

Stima e previsione

Per quanto riguarda la ricerca dell’ordine del modello, e possibile ge-neralizzare al caso multivariato sia il concetto di PACF, sia i criteri diinformazione AIC o BIC. Una volta stabilito l’ordine, i parametri vengonostimati col metodo dei minimi quadrati, oppure col metodo della massimaverosomiglianza.

Il modello ottenuto dovrebbe poi essere controllato per verificare chenon vi siano correlazioni incrociate nei residui, cosı definiti:

at = rt − φ0 − Φ1rt−1 − . . .− Φprt−p. (2.57)

La statistica Qk(m) puo quindi essere applicata ai residui. Per un modelloVAR(p), Qk(m) e asintoticamente una distribuzione del chi-quadrato conk2m−g gradi di liberta, dove g e il numero di parametri stimati nel modello;si veda Lutkepohl (2005) [14].

Scelto il modello e determinati i suoi parametri, e possibile utilizzarloper effettuare delle previsioni come nel caso univariato. Per un VAR(p),la previsione ad un singolo intervallo di tempo a partire dall’origine h, erh(1) = φ0 +

∑pi=1Φirh+1−i. L’errore associato e eh(1) = ah+1, e la matrice

di covarianza dell’errore di previsione e Σ. Per la previsione a due intervallidi tempo successivi, sostituendo rh+1 si ottiene:

rh(2) = φ0 +Φ1rh(1) +

p∑i=2

Φirh+2−i, (2.58)

e l’errore associato:

eh(2) = ah+2 +Φ1ah+1. (2.59)

La matrice di covarianza dell’errore di previsione e Σ+Φ1ΣΦ′1.

Se la serie rt e debolmente stazionaria, la previsione rh(`) converge alvettore medio µ, e la matrice di covarianza associata all’errore convergealla matrice di covarianza di rt. Come nel caso univariato, aumentandol’orizzonte temporale, le previsioni diventano sempre meno precise.

Capitolo 3

Reti Neurali

Un argomento molto diffuso nell’analisi dei dati moderna e quello delle”reti neurali”. La letteratura al riguardo e vasta e spazia attraverso le piudisparate aree scientifiche.

Di seguito sara introdotta la teoria delle reti neurali concentrandosisu quegli aspetti che le rendono utili al fine di studiare le serie temporali.In particolare verranno discusse le reti feed forward e i metodi utilizzatiper addestrarle, eseguendo infine dei test per valutare le performance delmodello implementato.

3.1 Introduzione alle Reti Neurali

La ”computazione neurale” si ispira ai sistemi neurali biologici, deiquali cerca di modellarne la struttura e di simularne le funzioni di base. Disolito i sistemi basati su reti neurali sono analizzati in contrapposizioneai computer digitali standard di tipo Von Neumann1, ed il motivo sembraessere il fatto che la rete neurale da un lato, e il computer seriale dall’altro,sono i rappresentanti di due filosofie distinte. I calcolatori digitali di tipoVon Neumann, infatti, sono caratterizzati da un processore (CPU) che ac-centra tutta la capacita computazionale del sistema ed esegue le operazioniin una sequenza programmata. Il concetto di algoritmo come insieme dioperazioni organizzate in una sequenza opportuna (o diagramma di flusso)sta alla base di questo approccio.

1John von Neumann (Budapest, 28 dicembre 1903 - Washington, 8 febbraio 1957), estato un matematico, fisico e informatico ungherese naturalizzato statunitense. E notocome il padre dell’omonima architettura dei calcolatori, impiegata nella maggior parte deicomputer moderni.

44

CAPITOLO 3. RETI NEURALI 45

La filosofia delle reti neurali dall’altra parte, ispirandosi ai sistemi bio-logici, considera un numero elevato di processori che hanno una capacitacomputazionale elementare (i neuroni artificiali) connessi ad altre unita dellostesso tipo. Questa idea viene proposta per la prima volta da McCulloc ePitts nel 1943 [15]. Nel loro lavoro asseriscono che unita di questo tipo, inlinea di principio, avrebbero potuto computare ogni algoritmo computabile.Questo fu un risultato molto significativo all’epoca, e generalmente lo siritiene all’origine della disciplina delle reti neurali.

Dalle reti neurali biologiche a quelle artificiali

Lo sviluppo della teoria delle reti neurali artificiali (RNA), nasce dunquecome un tentativo di emulare e comprendere meglio il funzionamentodel cervello umano, organizzato in reti neurali biologiche (RNB). Il cervelloe un sistema altamente complesso, non lineare, e capace di elaborare leinformazioni in parallelo. In questo modo puo svolgere alcune funzioni,come il riconoscimento di pattern2 e la gestione del moto, piu velocementedi qualunque calcolatore moderno, ma sopratutto puo ”apprendere” e”ragionare”.

Il sistema nervoso degli animali ai livelli piu alti della scala evolutiva,e composto da circa 1012 neuroni collegati attraverso 1015 sinapsi [16]. Ilneurone e l’unita cellulare base che analizza i segnali provenienti dal mondoesterno e da altri neuroni. Semplificando al massimo, esso e compostoda un corpo centrale (soma), dal quale si diramano in uscita l’assone (chetrasmette gli impulsi elettrici ad altre cellule) e in entrata i dendriti (cheinvece ricevono impulsi elettrici). Assone e dendriti di neuroni differentisono collegati attraverso le sinapsi (una rappresentazione stilizzata e datadalla figura 3.1 nella pagina seguente).

La cellula neuronale riceve dunque un segnale da altri neuroni attraver-so le sinapsi, se questo segnale supera una certa soglia (dell’ordine delledecine di Millivolt), viene generato uno ”spike” (impulso elettrico) che sipropaga attraverso l’assone. Le connessioni sinaptiche possono essere di ti-po eccitatorio (amplificano il segnale in entrata), oppure inibitorio (smorzanoil segnale in entrata) [16].

Le RNA sono state create in modo da ricalcare questa struttura ed ilsuo funzionamento. Il neurone biologico viene sostituito dal neurone formale;quest’ultimo interagisce con altri neuroni attraverso delle connessioni carat-

2Si intende il riconoscimento e la classificazione di schemi in base ad informazioni notea priori, o ricavate dal pattern stesso. Un esempio tipico e la capacita umana di riconoscereun oggetto osservandolo direttamente, o magari vedendo una sua rappresentazione in unquadro.

CAPITOLO 3. RETI NEURALI 46

Figura 3.1: Sono rappresentati due neuroni connessi l’uno all’altro e i loro principalicostituenti.

terizzate da dei pesi che possono essere positivi o negativi (in analogia alleconnessioni eccitatorie/inibitorie), e la soglia per la generazione del segnalee sostituita da un’opportuna funzione matematica (funzione di attivazione)in grado di approssimarla.

L’apprendimento nelle RNB ha luogo grazie al modificarsi delle con-nessioni sinaptiche; allo stesso modo, nelle RNA vengono modificati i pesidelle connessioni in base agli input esterni seguendo dei ben determinatialgoritmi. Le modalita di apprendimento verranno definite nei prossimiparagrafi.

Vantaggi di questo approccio

Di seguito vengono riportati alcuni punti di forza (oltre a quelli giamenzionati) tipici delle RNA [17]:

1. Non linearita. Se la funzione di attivazione e non-lineare, lo sara anchela RNA. Questa proprieta e importante quando il problema che vienestudiato e esso stesso intrinsecamente non-lineare.

2. Capacita di adattamento. Una RNA creata per lavorare in un precisocontesto puo essere facilmente ”riadattata” ad un contesto nuovo.

CAPITOLO 3. RETI NEURALI 47

3. Tolleranza dell’errore. Una RNA implementata sotto forma hardware3

puo continuare a funzionare anche in seguito a guasti o errori di pro-gettazione (chiaramente le sue performance risulteranno degradate).

A questi vantaggi vanno affiancate anche delle difficolta che si possonoincontrare gestendo una RNA:

1. Struttura della rete. Esistono algoritmi per determinare come devonoessere modificati i pesi, ma non e chiaro il procedimento da seguireper scegliere la struttura piu opportuna della RNA.

2. Scatola nera. La RNA puo dare degli output corretti in risposta aisegnali in entrata, ma non fornisce informazioni esplicite riguardol’eventuale legge che vi e dietro al fenomeno studiato. Per questomotivo talvolta si parla di ”black box”.

3.2 Struttura della Rete

Le RNA possono essere rappresentate visivamente come dei grafi4. Latipologia di rete piu diffusa e quella feed forward5, dove il segnale in entratapassa attraverso i neuroni di input, per poi uscire passando attraversoi neuroni di output: questa rete puo essere schematizzata da un grafoorientato.

L’esempio piu semplice (non banale) di RNA e mostrato nella figura 3.2nella pagina successiva. Il segnale in entrata relativo all’i-esimo neuronee indicato con xi, mentre il segnale in uscita relativo al k-esimo neurone eindicato con yk. Le connessioni tra due neuroni sono caratterizzate dai pesisinaptici wki (possono assumere qualsiasi valore sull’asse reale). I segnali inarrivo ai neuroni di output vengono sommati tenendo conto dell’effetto deipesi. In formule si ha:

ak =

N∑i=1

wkixi = w′x, (3.1)

3Una RNA puo essere realizzata sia da programmi software che da hardware dedicati.4Con questo termine si indica una struttura matematica formata da un insieme di vertici

e di lati che li connettono. Un grafo e orientato quando le connessioni sono unidirezionali,viceversa e non-orientato quando sono bidirezionali.

5Esistono tipologie di rete in cui tutti i neuroni sono connessi in modo bidirezionale(ad esempio le reti di Hopfield), o dove e presente anche un meccanismo ”retroazionante”(un segnale gia elaborato che viene riportato in ingresso).

CAPITOLO 3. RETI NEURALI 48

x1

x2

y1

w21

w22

Input Output

Figura 3.2: Rappresentazione di una rete neurale composta da 2 neuroni di input euno di output. Sono indicati anche i corrispettivi pesi sinaptici.

0.0

0.2

0.4

0.6

0.8

1.0

f(x) = 1 (1 + e−x)

x

y

−10 −6 −4 −2 0 2 4 6 8 10

−1.

0−

0.5

0.0

0.5

1.0

f(x) = (ex − e−x) (ex + e−x)

x

y

−10 −6 −4 −2 0 2 4 6 8 10

Figura 3.3: Nel riquadro a sinistra e rappresentata la funzione logistica; a destra la funzionetangente iperbolica. Entrambe presentano l’andamento ”a soglia” caratteristicodella funzione di attivazione nelle RNB.

dove N e il numero di input, e nel terzo membro dell’equazione e statautilizzata la notazione vettoriale (l’apice indica la trasposizione). Allasomma pesata dei segnali hk spesso viene aggiunto un valore costantedefinito soglia, che puo essere incorporato nel formalismo appena vistoaggiungendo un neurone (x0) con input fisso pari alla soglia, e relativo pesosinaptico (wk0) uguale ad 1.

Infine l’output e dato da una funzione ′′f ′′ in genere non-lineare di ak. Siha quindi:

yk = f(ak) = f( N∑i=1

wkixi +wk0x0

); yk = f(w

′x). (3.2)

CAPITOLO 3. RETI NEURALI 49

Input #1

Input #2

Input #3

Input #4

Output

Stratonascosto

Figura 3.4: Rete neurale feed forward composta da 4 neuroni di input, 5 neuroninascosti, e un’unita di output.

La scelta della funzione f non e univoca, ma si tratta sempre di una funzionelimitata nel codomino (0 ≤ f(x) ≤ 1 oppure −1 ≤ f(x) ≤ 1), in grado direplicare la funzione di attivazione tipica delle RNB. Tipicamente vengonoutilizzate le seguenti:

f1(x) =1

1+ e−x; f2(x) =

ex − e−x

ex + e−x. (3.3)

Si noti che f1(x) e compresa tra 0 e 1, mentre f2(x) e compresa tra −1 ed 1(le due funzioni sono mostrate nella figura 3.3 nella pagina precedente).

3.2.1 Strati Nascosti

Reti composte da un singolo strato di ingresso, ed uno di uscita, co-me quella rappresentata nella 3.2, hanno diverse limitazioni in terminidi funzioni che possono rappresentare. Per questo motivo e necessarioconsiderare diverse trasformazioni dei dati in ingresso, corrispondenti al-l’aggiunta di altri strati intermedi, definiti strati nascosti. Inoltre, e possibiledimostrare che reti con un unico strato di neuroni nascosti possono ap-prossimare qualsiasi funzione continua6: data la versatilita di queste reti, epossibile circoscrivere il campo di indagine allo studio delle loro proprieta.

Nella 3.4 e rappresentata una rete feed forward 4-5-1; con questa notazionesi indica che sono presenti 4 neuroni di input, 5 neuroni nello strato nascosto,

6Esiste una vasta letteratura su questo importante risultato, e si puo fare riferimento aFunahashi (1989) [18].

CAPITOLO 3. RETI NEURALI 50

e un singolo neurone di output (in generale possono essere presenti piuneuroni in uscita). La matrice 5× 4

w(1) =

w11 w12 w13 w14w21 w22 w23 w24w31 w32 w33 w34w41 w42 w43 w44w51 w52 w53 w54

ha come elementi il valore dei pesi che connettono i 4 neuroni in entrata,con i 5 neuroni nascosti. Il vettore w(2) = [w11 w12 w13 w14 w15] ha comeelementi i 5 pesi che connettono i 5 neuroni nascosti al neurone in uscita. Siha quindi che l’output della rete e espresso sinteticamente da7:

output = f2[w(2)f1(w

(1)x)], (3.4)

dove f18 e f2 sono le funzioni di attivazione (possono essere diverse l’unadall’altra).

Una volta che la struttura della rete e stata determinata9, resta aperto ilproblema di stimarne i parametri liberi, ovvero i pesi. L’obiettivo e far sıche il segnale in uscita approssimi al meglio la risposta cercata, e per farequesto serve un algoritmo di apprendimento.

3.3 Modalita di Apprendimento

La proprieta che contraddistingue le reti neurali, e la capacita di impara-re, e di migliorare in questo modo il loro funzionamento. Questo processoavviene attraverso degli aggiustamenti applicati ai pesi sinaptici. Esistonodiverse definizioni di ”apprendimento”; nel contesto delle reti neurali verrautilizzata la seguente:

L’apprendimento e quel processo in cui i parametri liberi di una reteneurale vengono adattati attraverso gli ”stimoli” dell’ambiente nelquale si trova la rete stessa. La tipologia di apprendimento e deter-minata dal modo in cui questo cambiamento dei parametri ha luogo[17].

Questa definizione implica, in ordine, i seguenti passaggi:

7Per semplicita formale e stato trascurato il valore di soglia.8f1 e vettoriale, e ogni componente ha come argomento la sommatoria

∑4j=1w

(1)ij xj.

9Chiaramente il numero dei neuroni nei singoli strati e ancora arbitrario. Questoaspetto verra approfondito nelle prossime sezioni.

CAPITOLO 3. RETI NEURALI 51

1. La rete neurale riceve degli stimoli dall’ambiente che la circonda.

2. Il risultato di questi stimoli consite nelle modifiche che vengonoapportate ai parametri liberi della rete.

3. La rete risponde in un modo differente agli stimoli, questo perche lasua struttura interna e stata modificata.

La soluzione di un problema di apprendimento e chiamata algoritmo diapprendimento. Esistono diversi algoritmi, ognuno con delle caratteristichepeculiari che lo rendono piu efficace per risolvere certi problemi.

Una distinzione fondamentale consiste nella presenza, o assenza, di un”supervisore”.

• Apprendimento supervisionato: data una specifica struttura sceltadall’utilizzatore della rete, lo scopo del processo di apprendimento,e scegliere quei valori dei pesi adatti ad approssimare al meglio lafunzione (ignota) che mappa gli input agli output. Nell’apprendimentosupervisionato si procede presentando piu volte un set di esempi(training set), che consistono in dati in ingresso, dei quali si conoscela risposta corretta che la rete dovrebbe avere. E dunque possibilevalutare la differenza tra la risposta esatta, e quella effettiva della rete,cosicche verranno modificati i pesi in modo da minimizzare questoerrore.

• Apprendimento non supervisionato: basato su algoritmi di addestra-mento che modificano i pesi della rete facendo riferimento esclusiva-mente ad un insieme di dati, che include le sole variabili d’ingresso.Tali algoritmi tentano di raggruppare i dati in ingresso, e di indivi-duare pertanto degli opportuni cluster rappresentativi dei dati stessi.Si fa uso tipicamente di metodi topologici o probabilistici. L’apprendi-mento non supervisionato e anche impiegato per sviluppare tecnichedi compressione dei dati.

Nelle applicazioni che seguono si fara uso solo della prima tipologia diapprendimento.

3.3.1 Minimizzare la Funzione di Errore

Quando viene presentato il training set alla rete, e necessario utilizzareuna funzione che quantifichi la differenza tra la risposta attesa e quellaottenuta. Questa funzione viene definita funzione di errore, o anche funzione

CAPITOLO 3. RETI NEURALI 52

energia (in analogia con la meccanica statistica). La scelta e arbitraria, mageneralmente si opta per la somma degli scarti quadratici:

E =∑n

En(yn) =

1

2

n∑k

(ynk − tnk)2, (3.5)

dove ”ynk” indica l’output del k-esimo neurone relativo all’n-esimo esempio(pattern) presentato alla rete; ”tnk” e la risposta desiderata. La funzione dierrore dipende esplicitamente dai vettori yn, e quindi implicitamente datutti i pesi sinaptici che caratterizzano la rete studiata.

Ottimizzare la rete neurale corrisponde, dunque, a modificare i pesisinaptici in modo da minimizzare la funzione di errore: si tratta quindi diun problema di minimo.

3.3.2 Algoritmi di Apprendimento

Una trattazione dettagliata degli algoritmi di apprendimento si puotrovare in Bishop (1995; Capitoli: 4,7) [19], a cui si fara riferimento in questoparagrafo.

La funzione di errore puo essere espressa come E(w), dove w e unvettore appartenente allo spazio dei pesi (tutte le configurazioni che i pesidella rete possono assumere). L’espansione di Taylor al secondo ordine diquesta funzione, intorno ad un punto w, e data da:

E(w) = E(w) + (w− w) ′∇E|w +1

2(w− w) ′H|w(w− w), (3.6)

dove∇E e il gradiente della funzione energia, e

Hij =∂2E

∂wi∂wj

∣∣∣∣w

(3.7)

e la matrice hessiana. Nel punto di minimo w∗, il gradiente e nullo, e sipuo scrivere:

E(w) = E(w∗) +1

2(w−w∗) ′H|w∗(w−w∗). (3.8)

Il gradiente in un puntow e approssimato da:

g = ∇E = H(w−w∗), (3.9)

CAPITOLO 3. RETI NEURALI 53

quindi il vettore di minimow∗ soddisfa:

w∗ = w−H−1g. (3.10)

Il vettore −H−1g e chiamato direzione di Newton. Siccome alla base vi el’approssimazione quadratica, tale processo andra ripetuto iterativamente,rivalutando la matrice hessiana di volta in volta. Questo metodo e dettoalgoritmo di Newton. Una difficolta legata a questo approccio deriva daltempo computazionale necessario per calcolare la matrice hessiana edinvertirla di volta in volta.

Un altro metodo iterativo e quello della discesa del gradiente, che prevedela seguente legge per aggiornare i pesi:

∆w = −η∇E|w, (3.11)

dove η e una costante positiva detta learning rate, che determina l’entitadella modifica dei pesi. Viene sfruttato il fatto che il gradiente indica la dire-zione in cui la funzione di errore aumenta; viene quindi scelta la direzioneopposta. Questo algoritmo puo essere visto anche come un’approssima-zione di quello di Newton, dove l’inverso dell’hessiana diventa la matriceidentita moltiplicata per una costante: H−1 = ηI.

Back-propagation

L’algoritmo di back-propagation, consente di valutare il gradiente dellafunzione di errore per una rete feed forward caratterizzata da un’architetturaarbitraria, con funzioni di attivazione e funzione di errore differenziabili.

Ogni neurone computa una somma pesata dei segnali che riceve:

aj =∑i

wjizi, (3.12)

dove zi puo essere la funzizone di attivazione di un’altra unita, o un inputdella rete, e wji sono i pesi associati all’unita j. Successivamente la sommaaj viene trasformata dalla funzione di attivazione:

zj = f(aj). (3.13)

Quando zi rappresenta un input della rete viene indicato come xi. Allostesso modo, se l’unita j e un output della rete, il suo segnale in uscita vieneindicato con yk.

La funzione di errore totale E =∑

n En e data dalla somma delle funzio-

ni di errore per ogni singolo pattern, cosı anche le derivate possono essere

CAPITOLO 3. RETI NEURALI 54

valutate per un pattern alla volta e infine sommate10. Inoltre per ogni patternsi suppone di aver calcolato le funzioni di attivazione di tutti i neuroni,questo processo e chiamato forward propagation.

Per prima cosa si nota che En dipende dal peso wji solo attraverso aj,quindi si ha:

∂En

∂wji=∂En

∂aj

∂aj

∂wji. (3.14)

Si introduce per comodita la notazione:

δj ≡∂En

∂aj. (3.15)

Per l’equazione 3.12 nella pagina precedente:

∂aj

∂wji= zi, (3.16)

e sostituendo:

∂En

∂wji= δjzi. (3.17)

L’equazione 3.17 dice che la derivata ricercata si puo ottenere moltiplicandoil δ relativo all’unita verso cui e diretto il peso sinaptico, per lo z dell’unitada cui si dirama lo stesso peso. Quindi resta da calcolare il valore di δj perogni neurone.

Per le unita di output, applicando la definizione, si ottiene:

δk ≡∂En

∂ak= f ′(ak)

∂En

∂yk, (3.18)

dove l’apice indica la derivata. Per valutare i δ delle unita nascoste, si faancora uso della definizine, e della derivazione ”a catena” per le derivateparziali:

δj ≡∂En

∂aj=∑k

En

ak

∂ak

∂aj, (3.19)

dove la somma va su tutti i k (altri neuroni nascosti e/o neuroni di output)ai quali l’unita j e connessa. Nello scrivere la 3.19, si e tenuto conto del

10In questo caso si parla di apprendimento offline. E possibile aggiornare i pesi, e quindivalutare la funzione di errore, anche in seguito ad ogni singolo pattern presentato: inquesto caso si parla di apprendimento online.

CAPITOLO 3. RETI NEURALI 55

fatto che variazioni di aj modificano il valore della funzione di errore soloattraverso ak.

Effettuando le opportune sostituzioni, si ottiene infine:

δj = f′(aj)

∑k

wkjδk, (3.20)

la quale mostra che e possibile ricavare il δ di una determinata unita nasco-sta, propagando all’indietro (back-propagation) i δ di livello piu alto nellarete neurale. Siccome i valori di δ per i neuroni di output sono noti, si puoapplicare l’equazione 3.20 ricorsivamente per tutti i neuroni della rete.

3.3.3 Efficienza e Limiti degli Algoritmi

Vengono riportate alcune considerazioni sugli algoritmi presentati nellaprecedente sezione; si fa riferimento a Beltratti, Margarita e Terna (1996;Capitolo: 1) [20]:

1. Il learning rate η, presente nell’equazione 3.11 a pagina 53 relativoal metodo della discesa del gradiente, e arbitrario. Un valore piccologarantisce la convergenza ad un minimo, tuttavia puo richiederetroppe iterazioni. Nelle applicazioni spesso viene modificato il valoredi η durante l’apprendimento, riducendolo progressivamente. Inoltre,sempre nella 3.11, e possibile aggiungere un termine di persistenzaper aumentare la stabilita del processo:

∆tw = −η∇E|w + β∆t−1w, (3.21)

dove β e un parametro positivo definito momentum, e t e l’indicetemporale dell’iterazione.

2. L’algoritmo di Newton puo essere troppo dispendioso a livello com-putazionale, per questo motivo vengono utilizzati altri algoritmi chelo approssimano. E gia stato citato il metodo della discesa del gradien-te; molto diffusi sono gli algoritmi ”quasi newtoniani”, in particolarmodo gli algoritmi BFGS11.

3. Un rischio insito nel processo di addestramento della rete in presenzadi un training set, consiste nell’overfitting. Infatti procedendo con le

11Nell’ottimizzazione numerica, gli algoritmi BFGS (Broyden, Fletcher, Goldfarb eShanno) sono delle semplificazioni del metodo di Newton, dove la matrice hessiana vieneapprossimata da una funzione del gradiente. Si veda al proposito Nocedal (1980) [21].

CAPITOLO 3. RETI NEURALI 56

iterazioni, i pesi sinaptici si adatteranno sempre meglio agli input deltraining set, perdendo in questo modo la capacita di generalizzare.Per ovviare a questo problema si possono utilizzare strategie empiri-che come l’early stopping, oppure si puo aggiungere un termine allafunzione energia che penalizza le brusche variazioni del segnale inuscita.

Nel primo caso, procedendo con le modifiche dei pesi in base agliinput del training set, si valuta la risposta della rete su di un campionenuovo (out of sample). Quando si verifica il fenomeno dell’overfitting,il valore della funzione di errore relativa ai nuovi input tende adaumentare, e quando cio avviene, viene interrotto il processo di ap-prendimento.

Nel secondo caso, il termine aggiunto alla funzione energia, edefinito come:

Ω = γ |w|2, (3.22)

dove γ e una costante positiva. Questo metodo e detto weight decay; siveda Venables, Ripley (1994; Capitolo: 10) [22].

4. Fino ad ora non e stata considerata la possibilita che la funzione ener-gia presenti diversi minimi locali non assoluti. In questo caso glialgoritmi potrebbero convergere ad uno di questi minimi, riducendocosı la funzionalita della rete.

Una possibile soluzione, consiste nel simulare piu volte il processodi apprendimento partendo con dei pesi iniziali scelti casualmente.Successivamente verra scelta la configurazione che presenta un erroreminore.

Un altro approccio e una variazione dell’algoritmo di metropolis.Dati due vettori nello spazio dei pesiwi ewj, viene valutata la fun-zione energia per entrambi. Si considera la seguente probabilita ditransizione dallo stato i allo stato j:

Pij = min

1, e−

(Ej−Ei)

T

, (3.23)

dove T puo essere interpretato come un ”rumore” del sistema (o comela temperatura, portando avanti l’analogia con la meccanica statistica).Se (Ej − Ei) < 0 viene accettato lo stato j con probabilita 1, altrimentivi e comunque una probabilita non nulla di passare ad uno stato piuenergetico. Maggiore e il valore di T, maggiore e la componente casua-le nelle transizioni da uno stato all’altro. Durante l’apprendimento

CAPITOLO 3. RETI NEURALI 57

viene fatta diminuire la temperatura molto lentamente garantendo(se soddisfatte alcune ipotesi) la convergenza al minimo assoluto. Peruna trattazione si puo fare riferimento a Aarts, Korst (1988) [23].

Quanto detto finora dovrebbe aver messo in luce che l’implementazione,e l’utilizzo di una rete neurale, non segue un processo univoco. E necessaria,infatti, la capacita del ricercatore di fare le scelte opportune (struttura dellarete, modalita di apprendimento) in base al problema che sta esaminando.

3.4 Implementazione della Rete

A questo punto, e possibile applicare quanto visto allo studio delle seriestoriche finanziarie. La rete neurale avra una struttura di tipo feed forward,dove sono presenti 3 strati: i neuroni di input, connessi con uno strato dineuroni nascosti, che a loro volta comunicano verso l’esterno attraverso ineuroni di output. Una rappresentazione e data dalla figura 3.4 a pagina 49,alla quale possono essere aggiunti anche i neuroni per includere la sogliadelle funzioni di attivazione.

La rete utilizzera i dati storici di una serie finanziaria per prevedere ifuturi valori della stessa. Facendo riferimento alla notazione introdotta nelsecondo capitolo, si ha una serie rt (viene considerato il caso univariato)di cui sono noti tutti i valori ri i ≤ h, dove h e l’origine della previsione.Dall’insieme degli ri puo essere costruito il training set.

L’approccio seguito consiste nel suddividere l’insieme degli ri in gruppisequenziali con un numero fisso di componenti. E piu facile rendere chiaroil concetto con un esempio visivo. Si consideri una serie di cui sono noti iprimi 6 elementi r1, r2 . . . r6. Raggruppando in sottoinsiemi di 3 elementi,si ottiene:

gruppi da 3 −→r1r2r3

r2r3r4

r3r4r5

r4r5r6

,o anche in sottoinsiemi da 4:

gruppi da 4 −→r1r2r3r4

r2r3r4r5

r3r4r5r6

.Ciascuno di questi elementi costituisce un input della rete, a cui viene fattocorrispondere l’output corretto. Lo strato di uscita della rete e formato da

CAPITOLO 3. RETI NEURALI 58

un singolo neurone, quindi si sceglie come valore corretto il primo terminedella serie non contenuto nei dati in ingresso.

Anche in questo caso, risulta tutto piu chiaro con un esempio. Facendoriferimento al primo raggruppamento da 4 elementi, si avra:

input :

r1r2r3r4

=⇒ output : r5;

input :

r2r3r4r5

=⇒ output : r6.

E stato volutamente trascurato il terzo sottoinsieme poiche l’output r7 none noto. Si definisce il parametro window size (ws12) come il numero deglielementi di ciascun sottoinsieme piu 1 (il valore di output). In questo modoil training set sara composto da h−(ws−1) coppie: un vettore di input, a cuie associato l’output corretto. Piu sinteticamente, si costruisce una matricedei valori in entrata (InM), e un vettore (Ou) contenente i valori in uscitacorretti. Riprendendo l’ultimo esempio:

InM =

r1 r2r2 r3r3 r4r4 r5

; Ou =

[r5r6

].

La rete sara configurata in modo da avere ws− 1 neuroni nel primo strato,ed un neurone nell’ultimo strato.

Quando sono stati presentati tutti i pattern compresi nel training set, ipesi vengono aggiornati, ed e stata compiuta un’iterazione. Il numero diiterazioni effettuate prima di terminare l’apprendimento (definitoMxIt) eun parametro arbitrario, ma nello sceglierlo bisogna tener presente delleproblematiche derivanti dall’overfitting gia discusse.

Concluso il processo di addestramento della rete, e possibile utilizzarlaper effettuare delle previsioni. Il numero dei punti previsti13 viene denomi-nato number forward (nF). La scelta di avere un solo neurone nello strato

12Verranno introdotti in questo modo alcuni parametri con la terminologia utilizzatanella scrittura del codice.

13Corrisponde all’orizzonte temporale introdotto nel precedente capitolo.

CAPITOLO 3. RETI NEURALI 59

finale della rete non e limitante, corrisponde infatti ad effettuare delle pre-visioni con nF = 1. Per spingersi oltre vengono reintrodotti iterativamentei punti previsti come nuovi input.

Nell’esempio precedente si avra:

Input =

r3r4r5r6

=⇒ Previsto[r7],

dove gli input sono tutti ”esatti”. Successivamente, per prevedere r8:

Input =

r4r5r6r7

=⇒ Previsto[r8],

questa volta l’input r7 non e noto, ma si tratta di una stima. Procedendoin questo modo si puo valutare ogni rt. Qualora fossero accessibili nuoveinformazioni, sarebbe possibile includerle sostituendo i valori stimati conquelli reali.

Parametri arbitrari

Una rete cosı strutturata ha come parametri liberi i soli pesi sinaptici, mala sua implementazione presenta anche dei parametri arbitari che vengonodi seguito elencati:

1. Neuroni nascosti (hN). Aumentando il numero dei neuroni nascosti,aumenta anche la capacita della rete di approssimare una funzionearbitraria, rischiando pero di incorrere nell’overfitting. Generalmentel’ordine di grandezza e lo stesso dei neuroni nello strato di ingresso.

2. Window size (ws). Determina il numero di neuroni nello strato diingresso (ws − 1) e, come mostreranno le simulazioni, fa variaresignificativamente la risposta fornita dalla rete.

3. Numero massimo di iterazioni (MxIt). Presentando piu volte i pat-tern l’errore relativo al training set diminuisce, ma si puo incorrereanche in questo caso nell’overfitting.

4. Weight choice (wc). Rappresenta, come risultera piu chiaro studian-do il codice, il numero di volte che all’interno di ogni simulazione

CAPITOLO 3. RETI NEURALI 60

vengono valutati i pesi. Viene poi selezionata la configurazione chepresenta un errore minore.

5. Numero di simulazioni (simul). Essendo la risposta della rete alea-toria, vengono eseguite piu simulazioni con gli stessi dati in ingressoper avere una ”distribuzione” dei risultati ottenuti. In questo modo epossibile associare un’incertezza alle stime effettuate.

La natura aleatoria dei risultati ottenuti dipende dalla scelta iniziale deipesi sinaptici. Sono presenti complessivamente (ws×hN)+ (hN+ 1) pesi,14

e i loro valori iniziali vengono scelti casualmente. Questo e necessarioperche la funzione d’errore puo presentare dei minimi locali. Effettuandopiu simulazioni con una configurazione dei pesi iniziali differente, none possibile evitare tali minimi, ma si puo fare in modo di ”mediarne” glieffetti.

Si noti che i parametriMxIt,wc e il numero di simulazioni, possono faraumentare rapidamente il tempo computazionale del programma: quindi iloro valori andranno scelti con parsimonia.

3.5 Taratura ed Esempi

Prima di applicare quanto visto allo studio di dati empirici, vengonoeffettuati dei test su delle serie ”giocattolo”, caratterizzate da proprieta note.Questo passo preliminare e importante perche permette di capire se la retee in grado di cogliere delle relazioni, almeno quando queste effettivamenteesistono.

Si pensi all’esempio visto nella sezione 2.3.4 a pagina 34. In quel casoil modello ARMA non riusciva ad effettuare delle previsioni significativesulla serie esaminata, e si era giunti alla conclusione che: o il modello nonera adeguato, oppure era il set informativo a non essere sufficiente.

Per effettuare queste prove, sono stati scelti i seguenti valori dei para-metri:

• Window size (ws)= 5.

• Neuroni nascosti (hN)= 5.

• Numero massimo di iterazioni (MxIt)= 100.14Si e tenuto conto dei pesi relativi ai neuroni di soglia, i quali sono anch’essi un

parametro libero.

CAPITOLO 3. RETI NEURALI 61

0 5 10 15 20 25x

0

5

10

15

20

25y

Training set (MxIt=10)

0 5 10 15 20 25x

0

5

10

15

20

25

y

Training set (MxIt=100)

Figura 3.5: I punti rappresentano i valori della retta y = 1+ x. Le linee continue (una perogni simulazione) collegano i valori fittati dalla rete. A sinistra i pesi dellarete vengono modificati 10 volte, nel riquadro di destra 100 volte.

• Weight choice (wc)= 10.

• Numero di punti previsti (nF)= 4.

• Numero di simulazioni (simul)= 50.

Talvolta saranno modificati in modo da sondare configurazioni differentidella rete.

3.5.1 Studio di una Retta

Il primo caso considerato e quello di una funzione lineare: la rettacaratterizzata dall’equazione y = 1+ x. Si ha quindi rt = t+ 1.

Viene effettuato prima un confronto per verificare la capacita della retedi approssimare il training set. La figura 3.5 mostra i valori ottenuti ponendoMxIt = 10 (a sinistra), eMxIt = 100 a destra. La differenza e evidente: siha infatti che lo scarto quadratico medio dei punti fittati, rispetto a quellicorretti, a sinistra e pari a 0, 89; mentre a destra risulta uguale a 0, 016.

Tenendo il secondo fit, si passa a valutare la bonta delle previsioni.Si faccia riferimento alla figura 3.6 nella pagina successiva. In alto sonoriportate le previsioni effettuate su di un singolo intervallo temporale.Valutato un punto, per la previsione successiva si utilizza il valore esatto(aggiornato) della serie. In basso, invece, la previsione del punto rh+2 si basasu rh+1 stimato (quindi non aggiornato), e cosı anche per i punti successivi.A sinistra sono mostrate tutte e 50 le simulazioni effettuate, mentre a destra

CAPITOLO 3. RETI NEURALI 62

0 5 10 15 20 25x

0

5

10

15

20

25y

Valori previsti aggiornati

0 5 10 15 20 25x

0

5

10

15

20

25

y

Valori medi aggiornati

0 5 10 15 20 25x

0

5

10

15

20

25

y

Valori previsti non aggiornati

0 5 10 15 20 25x

0

5

10

15

20

25

y

Valori medi non aggiornati

Figura 3.6: In alto sono riportati, rispettivamente a sinistra e a destra, i valori previstiaggiornati per ciascuna simulazione (collegati da una linea), e i valori medicon relativa deviazione standard della media. In basso, gli stessi grafici con ivalori non aggiornati. I punti rappresentano i valori della retta y = 1+ x.

i valori medi per ogni punto previsto con le relative deviazioni standarddella media15.

Lo scarto quadratico medio dei punti aggiornati e pari a 0, 51, mentrequello dei punti non aggiornati e uguale a 0, 83. Com’era prevedibile, leprevisioni con delle informazioni aggiuntive sono risultate piu affidabili.Allo stesso modo si nota che l’errore quadratico medio rispetto ai puntifittati e aumentato di circa 4 volte. La rete coglie l’andamento crescentedella retta, ma tende a sottostimarlo.

Retta modificata

E stata modificata la retta per emulare quelli che potrebbero essere deglioutliers. Gli ultimi due valori (21 e 22) vengono posti pari a 15 e 10: un

15In questo caso, essendo le deviazione standard della media dell’ordine di grandezzadi 10−2, non risultano visibile nel grafico.

CAPITOLO 3. RETI NEURALI 63

0 5 10 15 20 25x

0

5

10

15

20

25y

Valori previsti aggiornati

0 5 10 15 20 25x

0

5

10

15

20

25

y

Valori previsti non aggiornati

Figura 3.7: Sono stati aggiunti due valori outliers alla retta. A sinistra le previsioni fatteincludono le nuove informazioni, a destra invece i valori non sono aggiornati.

andamento decrescente che sicuramente non e prevedibile a partire daltraining set.

La figura 3.7 mostra le previsioni effettuate con i valori aggiornati enon aggiornati. In entrambi i casi l’errore quadratico medio e aumentatoconsiderevolmente: rispettivamente 30 e 33, che va confrontato con unerrore vicino all’unita per la retta originaria. Tuttavia, si puo notare chementre le previsioni non aggiornate sono identiche a quelle del precedenteesempio (il training set e lo stesso), quelle aggiornate sono in grado dicogliere l’andamento decrescente.

Inoltre, ponendo il parametro ws a 2 per le previsioni aggiornate, siottiene un errore medio quadratico pari a 16. Questo risultato evidenzial’importanza del numero di neuroni in ingresso. L’aver ridotto la finestradi campionamento, ha fatto sı che nelle previsioni venisse dato maggiorpeso agli ultimi valori registrati rispetto a quelli piu remoti.

3.5.2 Studio di una Funzione Periodica

L’ultimo esempio trattato consiste nella funzine periodica y = 5 +5 sin(x). Si ha quindi rt = 5 + 5 sin(t). In questo caso e stato consideratoanche l’approccio al problema mediante i modelli ARIMA. I criteri diinformazione hanno selezionato un modello ARIMA(1,0,0).

Si faccia riferimento alla figura 3.8 nella pagina successiva. In alto,le previsioni effetuate con il modello ARIMA, sono caratterizzate da unerrore quadratico medio pari a circa 5 e 25, rispettivamente per i valoriaggiornati e non aggiornati. E palese che, senza nuove informazioni, ilmodello econometrico stimato fallisce nel cogliere l’andamento periodicodella funzione e converge alla media campionaria.

CAPITOLO 3. RETI NEURALI 64

0 5 10 15 20 25x

0

2

4

6

8

10

12y

Valori previsti aggiornati (ARIMA)

0 5 10 15 20 25x

0

2

4

6

8

10

12

y

Valori previsti non aggiornati (ARIMA)

0 5 10 15 20 25x

0

2

4

6

8

10

y

Valori medi aggiornati (RN)

0 5 10 15 20 25x

0

2

4

6

8

10

y

Valori medi non aggiornati (RN)

Figura 3.8: In alto sono mostrate le previsioni effettuate con il modello ARIMA(1,0,0),in basso i risultati utilizzando la rete neurale. In etrambi i casi sono presentile previsioni medie aggiornate e non aggiornate, con le relative deviazionistandard della media. I punti rappresentano i valori della funzione y =5+ 5 sin(x).

Nella stessa figura, si vede in basso il risultato delle previsioni effettuatecon la rete neurale. In questo caso gli errori quadratici medi sono (sia perle previsioni aggiornate che per quelle non aggiornate) nell’ordine di 10−2.La rete cosı costruita coglie perfettamente l’andamento della funzione. Estato effettuato anche un test dove i punti previsti sono 10 al posto di 4, el’errore resta comunque contenuto (≈ 10−1).

Quanto visto potrebbe portare all’erronea conclusione che le reti neuralisiano molto piu efficienti dei modelli ARIMA nel riconoscere, e riprodurre,questa tipologia di relazioni. In verita, l’esempio appena mostrato eviden-zia l’importanza della scelta dei parametri caratteristici sia per la rete, cheper i modelli econometrici. Infatti, consideranto un modello ARIMA diordine maggiore (quindi con piu parametri liberi) i risultati ottenuti sonoanaloghi alle stime effettuate con la rete neurale. Viceversa, riducendoparametri come nF oMxIt, anche la rete neurale ha difficolta a riprodurrel’andamento periodico della serie, e converge alla media campionaria.

Capitolo 4

Presentazione dei Codici

In questo capitolo vengono descritti sinteticamente i programmi elabora-ti durante lo svolgimento della tesi. Solo alcune parti dei codici sono estra-polate e commentate, non per forza seguendo l’ordine originale. Tuttavia, epossibile trovare la versione integrale nell’appendice E a pagina 1201.

Sono stati realizzati dei file sorgente appoggiandosi sulle librerie avan-zate dei linguaggi di programmazione utilizzati: R e Python2. Il primoe sicuramente piu adeguato per trattare la parte statistica ma, sopratutto,presenta dei pacchetti in grado di stimare i processi trattati nell’econometriae di simulare una rete neurale feed forward. Il secondo probabilmente sipresta meglio per la parte di programmazione, utilizzo di cicli, scrittura egestione dei dati. Inoltre una versione preliminare del programma e statarealizzata da Pietro Terna, ed e reperibile su internet [24].

Questi due linguaggi sono in grado anche di lavorare in sinergia, ede stata sfruttata questa possibilita in modo da rendere i programmi piuflessibili.

Il lavoro di programmazione svolto puo essere riassunto in queste fasi:

1. Lettura dei dati da file esterni csv.

2. Organizzazione dei dati in modo da poter utilizzare le funzionipresenti nelle librerie.

3. Analisi statistica, scrittura su file esterni e rappresentazione graficadei dati.

1Si faccia attenzione che in Python l’indentazione e obbligatoria. Talvolta per restarenei margini della pagina e stato necessario andare a capo, rendendo in questo modo ilcodice non corretto.

2Si rimanda all’appendice C a pagina 118, e all’appendice D a pagina 119, per ladocumentazione rispettivamente di R e Python.

65

CAPITOLO 4. PRESENTAZIONE DEI CODICI 66

4. Automatizzazione. Ovvero, rendere pratiche analisi che valutano piuconfigurazioni differenti dei parametri caratteristici.

Di seguito viene presentata la casistica studiata. Questa comprendemodelli econometrici e reti neurali, adattati allo studio di serie temporaliunivariate e multivariate.

4.1 Modelli Univariati

I primi modelli trattati sono quelli univariati. La struttura dei program-mi per gestire la simulazione della rete neurale e la stima del modelloARIMA presenta dei punti in comune ma anche delle differenze sostanzialiche verranno messe in luce.

4.1.1 Rete Neurale

Il cuore del programma e rappresentato dal paccheto nnet di R, chepermette di stimare i pesi di una rete neurale feed forward dato un trainingset, e di effettuare delle previsioni. L’algoritmo utilizzato per minimizzarela funzione energia e di tipo BFGS.

La funzione che stima i parametri della rete si chiama anch’essa nnet.Questa, oltre a svariati argomenti opzionali, richiede in ingresso: il numerodi neurono nascosti (hN), il massimo numero di iterazioni (MxIt), unamatrice di input e un vettore di output che formano il training set.

Per prima cosa nel main vengono caricate le librerie e si assegnano ivalori ai parametri che caratterizzano la rete. I dati presenti nel file csvesterno sono disposti in colonne separate da una virgola. Viene apertoil file da analizzare, e letto il contenuto riga per riga per creare una listacontenente la serie temporale:

1 import m a t p l o t l i b . pyplot as p l t2 from RnFunctions import∗3 import pyRserve4 import numpy as np5 import csv6 from pylab import∗7 import math as m89 # ############################## Input e l e t t u r a

10 ws = input ( ”Dimensione f i n e s t r a input + outpu : ” )

CAPITOLO 4. PRESENTAZIONE DEI CODICI 67

11 nF = input ( ”Numero punti p r e v i s t i : ” )12 simul = input ( ”Numero s imulaz ioni : ” )1314 hN = 515 MxIt=10016 wc=11718 f =open ( ”C:/ Percorso/ F i l e . csv ” , ” r ” )1920 s e r i e = [ ]2122 for l i n e in f :23 l i n e = l i n e . r e p l a c e ( ” , ” , ” ” ) . s p l i t ( )24 s e r i e . append ( f l o a t ( l i n e [ 0 ] ) )2526 f . c l o s e

Si noti la presenza della libreria RnFunctions. Questa e stata creataper contenere diverse funzioni utili che altrimenti avrebbero appesantitola lettura del programma. La libreria pyRserve serve per gestire R daPython:

1 cn=pyRserve . connect ( host=” l o c a l h o s t ” )2 cn . r ( ’ l i b r a r y ( nnet ) ’ )

La connessione avviene, per comodita, attraverso la dicitura cn, e con ilcomando nella seconda riga viene caricato il pacchetto nnet di R.

Successivamente la serie viene scomposta in modo da poter esseretrasformata nella matrice di input:

1 dataIn = [ ]2 dataOu = [ ]3 makeWindow(ws , s e r i e , dataIn , dataOu )

Dove si ha:

1 # p r e p a r a l a s e r i e in b a s e a ws2 def makeWindow(ws , ts , dIn , dOut ) :3 for i in range (ws−1 , len ( t s ) ) :4 for j in range (ws−1 ,0 , −1) :5 dIn . append ( t s [ i− j ] )6 dOut . append ( t s [ i ] )

CAPITOLO 4. PRESENTAZIONE DEI CODICI 68

Cosı, una serie r1, r2, r3, r4, r5, r6 con ws=4, diventerebbe:

dIn = r1, r2, r3, r2, r3, r4, r3, r4, r5, r4, r5, r6.

La serie originaria e composta da due sottoinsiemi, quello degli ri (i ≤ h)supposti noti, e quello degli altri rt (t > h) che la rete dovra prevedere.Ponendo l’origine della previsione ad h = 5, si deve costruire il seguentetraining set:

InM =

r1 r2r2 r3r3 r4

; Ou =

[r4r5

].

Il vettore Ou viene generato eliminando i primi ws − 1, e gli ultimi nFelementi della serie (dOu). La matrice InM e costruita tenendo solo i primi[(ws − 1) × len(Ou)] elementi del vettore dIn, che poi viene convertitocon la funzione matrix in una matrice. Questa procedura e gestita nellafunzione StimaRn (nella libreria RnFunctions):

1 def StimaRn ( cn , s e r i e , ws , MxIt , wc ,hN, nF , dIn ,dOu ) :23 cn . r . s e r i e = s e r i e4 cn . r . In=dIn5 cn . r .Ou=dOu6 cn . r . ws=ws7 cn . r .hN=hN8 cn . r . nF=nF9 cn . r . MxIt=MxIt

10 cn . r . wc=wc1112 cn . r . useRows=len (dOu)−nF13 cn . r ( ’ useRowsCols=useRows∗ (ws−1) ’ )1415 # i c a r a t t e r i vengono t r a s f o r m a t i in numeri16 cn . r ( ’ In = as . numeric ( In ) ’ )17 cn . r ( ’Ou = as . numeric (Ou) ’ )18 cn . r ( ’ s e r i e = as . numeric ( s e r i e ) ’ )1920 # c r e a z i o n e d e l l a m a t r i c e21 cn . r ( ’InM=matrix ( In [ 1 : useRowsCols ] , ncol=ws−1 ,22 byrow=TRUE) ’ )

CAPITOLO 4. PRESENTAZIONE DEI CODICI 69

La funzione nnet richiede che gli input siano compresi tra 0 e 1, quindi InMe Ou vengono compressi in questo intervallo grazie alla funzione adjust.Anche gli output sono compresi nello stesso intervallo, e cosı, solo alla fine,verranno decompressi dalla funzione unadjust (l’inversa di adjust).

Quando viene stimata la rete neurale, oltre al parametro MxIT , checontrolla il massimo numero di aggiornamenti dei pesi, e stato introdottoil parametro wc. Questo definisce quante volte l’intero processo di stimaviene ripetuto, per poi selezionare la configurazione che minimizza l’errore:

1 cn . r . e r r =1002 e r r s = [ ]3 for i in range (wc ) :4 cn . r ( ’myNet=nnet ( x=InMA, y=OuA, s i z e =hN,5 maxit=MxIt ) ’ )67 # s a l v a l a c o n f i g u r a z i o n e m i g l i o r e8 cn . r ( ’ er=sum( myNet$residuals ∗∗2) ’ )9 cn . r ( ’ i f ( er<e r r ) bestNet=myNet ’ )

10 cn . r ( ’ i f ( er<e r r ) e r r =er ’ )11 e r r s . append ( cn . r . er )

A questo punto e possibile effettuare le previsioni. Il pacchetto nnetdispone della funzione predict, che richiede come argomento una ma-trice con le stesse caratteristiche di InM. In questo caso pero, la matriceInMLastPart viene creata selezionando solo gli elementi di dIn nonpresenti in InM.

Sono state effettuate due tipologie di previsioni. Le prime (definite”aggiornate”) hanno come dati in ingresso gli ultimi valori aggiornati ecorretti della serie. Possono quindi essere considerate delle previsioni abreve termine:

1 # p r e v i s i o n i a g g i o r n a t e2 cn . r ( ’ useRowsCols1=useRowsCols+1 ’ )3 cn . r . endRowsCols=len (dOu) ∗ ( ws−1)4 cn . r ( ’ InMLastPart=matrix ( In [ useRowsCols1 :5 endRowsCols ] , ncol=ws−1 ,byrow=TRUE) ’ )6 cn . r ( ’ InMALastPart = a d j u s t ( InMLastPart ,7 min ( s e r i e ) , max( s e r i e ) ) ’ )89 cn . r ( ’ pred= p r e d i c t ( bestNet , InMALastPart ) ’ )

1011 cn . r ( ’ predAdj1 = unadjust ( pred , min ( s e r i e ) ,

CAPITOLO 4. PRESENTAZIONE DEI CODICI 70

12 max( s e r i e ) ) ’ )13 PreA=cn . r . predAdj1

L’altra tipologia di previsioni (”non aggiornate”) utilizza gli stessi valoriprevisti per effettuare nuove previsioni. Queste possono essere considerateprevisioni a lungo termine:

1 # p r e v i s i o n i su p r e v i s i o n i2 cn . r ( ’v=InMALastPart [ 1 , ] ’ )3 for i in range ( 1 , nF + 1 ) :4 cn . r . i = i56 cn . r ( ’ pred [ i ]= p r e d i c t ( bestNet , v ) ’ )7 for j in range ( 1 , cn . r ( ’ length ( v ) ’ ) ) :8 cn . r . j = j9 cn . r ( ’v [ j ]=v [ j +1] ’ )

10 cn . r ( ’v [ length ( v ) ] = pred [ i ] ’ )1112 cn . r ( ’ predAdj2 = unadjust ( pred , min ( s e r i e ) ,13 max( s e r i e ) ) ’ )14 PreNA=cn . r . predAdj2

Si noti che la matrice v, svolge lo stesso ruolo di InMLastPart nel casodelle previsioni aggiornate, pero adesso viene aggiornata ad ogni iterazionecon gli ultimi valori stimati.

La funzione StimaRn passa al main entrambe le previsioni (preA,preNA) e i valori fittati (fittati) del training set. I risultati forniti dallarete sono diversi ad ogni simulazione, perche la scelta iniziale dei pesi e ca-suale. Per questo motivo la funzione StimaRn viene chiamata un numerodi volte pari al parametro simul fornito dall’utente. Vengono poi raccolti irisultati di ciascuna simulazione in forma matriciale (MaPreA, MapreNA,MaFit):

1 # ############################## P r e v i s i o n i e f i t2 MaPreA=np . zeros ( [ nF , simul ] , f l o a t )3 MaPreNA=np . zeros ( [ nF , simul ] , f l o a t )4 MaFit=np . zeros ( [ len ( s e r i e )−nF−ws+1 , simul ] , f l o a t )5 for j in range ( 0 , simul ) :6 ( PreA , PreNA , f i t t a t i )=7 StimaRn ( cn , s e r i e , ws , MxIt , wc ,hN, nF , dataIn , dataOu )8 for i in range ( 0 , nF ) :9 MaPreA[ i ] [ j ]=PreA [ i ] [ 0 ]

CAPITOLO 4. PRESENTAZIONE DEI CODICI 71

10 MaPreNA[ i ] [ j ]=PreNA[ i ] [ 0 ]1112 for i in range ( 0 , len ( s e r i e )−nF−ws+ 1 ) :13 MaFit [ i ] [ j ]= f i t t a t i [ i ] [ 0 ]

Risulta ora possibile calcolare media e deviazione standard delle simula-zioni:

1 # ############################## Media e DevStd2 MaMeStdA=np . zeros ( [ 2 , nF ] , f l o a t )3 for i in range ( 0 , nF ) :4 MaMeStdA [ 0 ] [ i ]=np . mean(MaPreA[ i ] )5 MaMeStdA [ 1 ] [ i ]=np . std (MaPreA[ i ] )67 MaMeStdNA=np . zeros ( [ 2 , nF ] , f l o a t )8 for i in range ( 0 , nF ) :9 MaMeStdNA [ 0 ] [ i ]=np . mean(MaPreNA[ i ] )

10 MaMeStdNA [ 1 ] [ i ]=np . std (MaPreNA[ i ] )1112 Lf=len ( s e r i e )−(ws−1)−nF13 MaMeStdFit=np . zeros ( [ 2 , Lf ] , f l o a t )14 for i in range ( 0 , Lf ) :15 MaMeStdFit [ 0 ] [ i ]=np . mean( MaFit [ i ] )16 MaMeStdFit [ 1 ] [ i ]=np . std ( MaFit [ i ] )

Tutta l’analisi dei dati fatta successivamente si basa su questi valori riassun-tivi. In sostanza si considera il valore medio di tutte le simulazioni comela risposta fornita dalla rete. Per avere un’indicazione quantitativa delladispersione della risposta, si valuta la deviazione standard della media.

4.1.2 Modello ARIMA

La trattazione dei processi ARIMA segue la stessa logica delle reti neu-rali, chiaramente con strumenti differenti. La lettura dei dati in ingresso eidentica, questa volta pero, i parametri immessi dall’utente sono quelli ca-ratteristici del processo ARIMA: l’ordine della componente AR (p), l’ordinedella componente MA (q) e l’ordine di differenziazione (d).

Viene caricata la libreria forecast che contiene la funzione auto.arima.Questa funzione, data una serie in ingresso, fornisce le stime di p,q e dmigliori secondo i criteri di informazione. Il pacchetto stats ha inveceal suo interno le funzioni arima e predict, che servono rispettivamente

CAPITOLO 4. PRESENTAZIONE DEI CODICI 72

per stimare i coefficienti del modello ARIMA selezionato, ed effettuaredelle previsioni. Viene inoltre caricata la libreria ARIMAfunctions (ana-loga a RnFunctions) che contiene la funzione ARIMA (il corrispettivo diStimaRn).

In questo caso, la gestione della serie in ingresso risulta piu facile. Lafunzione arima, richiede direttamente i valori della serie sui quali effet-tuare la regressione (si escludono quindi gli ultimi nF valori della serieoriginaria). Per quanto riguarda le previsioni non aggiornate, basteraspecificare nella funzione predict il valore di nF:

1 # V a l o r i non a g g i o r n a t i2 cn . r ( ’ f i t <−arima ( s e r i e [ 1 : ( l−nF ) ] , order=c ( p , d , q ) ) ’ )3 cn . r ( ’ previs ione<−p r e d i c t ( f i t , n . ahead=nF ) ’ )4 cn . r ( ’ re s= f i t $ r e s i d u a l s ’ )5 re s=cn . r . re s67 cn . r ( ’ previstiNA=previs ione$pred ’ )8 cn . r ( ’ erroreNA=prev is ione$se ’ )9 cn . r ( ’ p r i n t ( erroreNA ) ’ )

1011 previstiNA=cn . r . previstiNA12 erroreNA=cn . r . erroreNA

Effettuare le previsioni aggiornate risulta leggermente piu complicato. Enecessario, infatti, stimare il modello ARIMA ad ogni intervallo temporaleper includere la nuova informazione:

1 # V a l o r i a g g i o r n a t i2 prev i s t iA=np . zeros ( [ nF , 1 ] , f l o a t )3 erroreA=np . zeros ( [ nF , 1 ] , f l o a t )4 c = [ ]5 d = [ ]6 for i in range ( 0 , nF ) :78 cn . r . i = i9 cn . r ( ’ f i t <−arima ( s e r i e [ 1 : ( l−nF+ i ) ] ,

10 order=c ( p , q , d ) ) ’ )11 cn . r ( ’ previs ione<−p r e d i c t ( f i t , n . ahead =1) ’ )1213 cn . r ( ’ prev i s t iA=previs ione$pred ’ )14 cn . r ( ’ erroreA=prev i s ione$se ’ )15

CAPITOLO 4. PRESENTAZIONE DEI CODICI 73

16 a=cn . r . prev i s t iA17 b=cn . r . erroreA1819 c . append ( a )20 d . append ( b )2122 prev i s t iA [ i , 0 ] = c [ i ]23 erroreA [ i , 0 ] = d [ i ]2425 prev i s t iA=prev i s t iA [ : , 0 ]26 erroreA=erroreA [ : , 0 ]

Fortunatamente la determinazione dei coefficienti del modello ARIMA eun processo che richiede poco tempo computazionale. Inoltre, una voltascelto il modello, i valori ottenuti per i coefficienti e le previsioni effettuate,non hanno componente aleatoria. Quindi non e necessario effettuare piusimulazioni per avere dei valori stabili come nel caso della rete neurale.

La funzione ARIMA restituisce direttamente al main: i valori previsti nonaggiornati (previstiNA) con relativo errore (erroreNA), i valori previstiaggiornati (previstiA) con relativo errore (erroreA) e i residui (res)del fit.

4.1.3 Indicatori Studiati

Di seguito vengono discusse le principali grandezze studiate per sonda-re l’efficienza della rete neurale, e dei modelli ARIMA.

Per quanto riguarda la rete neurale, il programma visto sinora ha comeoutput:

• MaMeStdA. Una matrice con nF colonne e due righe. Nella prima rigae contenuta la media (sulle simulazioni effettuate) dei valori aggior-nati previsti della serie. Nelle seconda riga si trovano le deviazionistandard delle singole misure3.

• MaMeStdNA. Una matrice identica a MaMeStdA, ma ha come elementii valori e le deviazioni standard delle previsioni non aggiornate.

• MaMeStdFit. Strutturata come le altre due matrici, contenente peroi valori fittati con le deviazioni standard.

Per il programma che gestisce il modello ARIMA si hanno i seguenti output:

3La deviazione standard della media e data da: σ/√simul

CAPITOLO 4. PRESENTAZIONE DEI CODICI 74

• previstiNA e erroreNA. Rispettivamente un vettore contenen-te i valori previsti della serie (non aggiornata), e il vettore con ledeviazioni standard.

• previstiA e erroreA. Rispettivamente un vettore contenente ivalori previsti della serie (aggiornata) e il vettore con le deviazionistandard.

• res. Un vettore contendete la differenza tra i punti fittati e quellidella serie.

Le grandezze derivate (GD) sono le seguenti:

1. Errore quadratico medio dei punti fittati. Viene sommato lo scartoquadratico tra ogni punto fittato e il valore effettivo della serie inesame. Tale somma viene poi divisa per il numero totale dei punti.Si noti che nel caso dei modelli ARIMA i punti appartenenti al fitsaranno pari alla lunghezza della serie meno nF. Nel caso della reteneurale vengono sottratti anche i primi (ws − 1) elementi. Si facciariferimento alla funzione ErDvFit per la rete neurale, e a ErFit peril modello ARIMA.

2. Errore quadratico medio dei punti previsti. Viene sommato lo scartoquadratico tra ogni punto previsto e il valore effettivo della serie inesame. Tale somma viene poi divisa per il numero totale dei puntiprevisti (nF). Si faccia riferimento alla funzione ErDvPre, che vieneapplicata sia alle previsioni aggiornate che a quelle non aggiornate.

3. Percentuale delle previsioni corrette. Partendo dal presupposto cheviene studiata una serie di return, si conta il numero di segni correttiprevisti e lo si divide per il numero totale di punti previsti. In questomodo si ottiene la percentuale degli ”andamenti” previsti corretta-mente. Nel caso in cui un return della serie storica e pari a zero, nonesiste una direzione corretta, e quindi tale rilevazione non viene con-teggiata. Anche questa grandezza viene stimata sia per le previsioniaggionate che per quelle non aggiornate. Si faccia riferimento allafunzione SegnoR.

4. Numero di previsioni significative. Come si e visto, sia le stime dellarete che quelle del modello ARIMA, hanno delle incertezze. Chiara-mente se queste incertezze sono dell’ordine di grandezza dei valoriprevisti, tale previsione perde di significato. Questo indicatore calcola

CAPITOLO 4. PRESENTAZIONE DEI CODICI 75

quante volte gli nF valori previsti non cambiano segno aggiungendo-gli o sottraendogli la relativa deviazione standard. Il risultato vienepoi diviso per nF. Viene applicata sia ai punti previsti aggiornati chea quelli non aggiornati. Si faccia riferimento alla funzione SegnoR2.

5. Percentuale delle previsioni corrette tra quelle significative. Vienevalutata la percentuale di segni previsti corretti, conteggiando questavolta solo le previsioni significative. Viene applicata sia ai puntiprevisti aggiornati che a quelli non aggiornati. Si faccia riferimentoalla funzione SegnoR2.

Viene dunque portata avanti un’analisi sia a livello ”continuo” (grandezze1 e 2), che ”discreto” (grandezze 3,4 e 5). E importante dividere la sommadegli scarti quadratici per il numero di punti considerati, cosı da renderepossibile il confronto con previsioni su orizzonti temporali differenti. Allostesso modo, ad essere significativa sara la percentuale dei segni correttiprevisti, e non il loro numero.

4.1.4 Automatizzare la ricerca dei parametri

Si e visto che sia i modelli ARIMA che le reti neurali possono generarerisultati molto differenti variando, rispettivamente, la scelta dell’ordine delmodello e la struttura della rete. E stato quindi realizzato un programma ingrado di sondare piu configurazioni dei parametri contemporaneamente.

Con qualche lieve differenza, la trattazione dei modelli ARIMA e dellereti e sostanzialmente analoga. Vengono modificati i file sorgenti visti pre-cedentemente, in modo da renderli delle funzioni. Queste ultime, hannocome argomento i parametri caratteristici della rete o del modello ARI-MA, e come output forniscono le GD sopra menzionate. Queste funzionifaranno parte di due nuove librerie (ARIMAsimFun e RnSimulFun) checonterranno anche dei metodi per ricavare i parametri ottimali.

Per prima cosa, vengono dati in ingresso dei vettori contendenti i valoriche possono assumere i parametri, generando in questo modo uno ”spaziodei parametri”. Per la rete neurale si ha:

1 # v e t t o r i p a r a m e t r i2 simul =1003 nF=1245 VhN= [ 2 , 5 , 1 0 ]6 VMxIt =[10 , 100 , 1000 ]

CAPITOLO 4. PRESENTAZIONE DEI CODICI 76

7 Vwc= [ 1 , 2 , 1 0 ]8 Vws= [ 6 , 1 2 , 2 4 ]

dove e stata aggiunta la lettera ”V” per indicare che sono dei vettori. Sinoti che il numero di simulazioni e il numero di punti previsti assumonoun solo valore4. Anche per i modelli ARIMA si ha:

1 nF=122 d=034 Vp= [ 0 , 1 , 2 , 3 ]5 Vq= [ 0 , 1 , 2 , 3 ]

Nel caso delle reti neurali le combinazioni possibili sono 34 = 81, contro le42 = 16 del modelli ARIMA. Vengono cosı inizializzate delle matrici, cheandranno a contenere i valori di ciascuna delle GD per ogni configurazionedei parametri. Considerando i modelli ARIMA, queste matrici sarannobidimensionali con 4 righe e 4 colonne:

1 # i n i z i a l i z z a m a t r i c i2 MErFit=np . zeros ( [ len (Vp) , len (Vq ) ] , f l o a t )3 MErStimaA=np . zeros ( [ len (Vp) , len (Vq ) ] , f l o a t )4 MErStimaNA=np . zeros ( [ len (Vp) , len (Vq ) ] , f l o a t )5 MErPreA=np . zeros ( [ len (Vp) , len (Vq ) ] , f l o a t )6 MErPreNA=np . zeros ( [ len (Vp) , len (Vq ) ] , f l o a t )7 MgiustiA=np . zeros ( [ len (Vp) , len (Vq ) ] , f l o a t )8 MgiustiNA=np . zeros ( [ len (Vp) , len (Vq ) ] , f l o a t )9 M s i g n i f i c a t i v i 2 A=np . zeros ( [ len (Vp) , len (Vq ) ] , f l o a t )

10 Mgiusti2A=np . zeros ( [ len (Vp) , len (Vq ) ] , f l o a t )11 Msignif icat ivi2NA=np . zeros ( [ len (Vp) , len (Vq ) ] , f l o a t )12 Mgiusti2NA=np . zeros ( [ len (Vp) , len (Vq ) ] , f l o a t )

Per le reti neurali sono state considerate delle matrici analoghe, ma quadri-dimensionali (3× 3× 3× 3).

Portando avanti l’esempio del modello econometrico (la procedura eidentica per le reti neurali), viene chiamata la funzione ARIMAfun chestima i modelli e riempe le matrici:

1 # s t i m a m o d e l l o e r i em pe m a t r i c i2 for i in range ( 0 , len (Vp ) ) :3 for j in range ( 0 , len (Vq ) ) :

4Le ragioni di tutte le scelte effettuate verranno chiarite nel capitolo 6.

CAPITOLO 4. PRESENTAZIONE DEI CODICI 77

45 ( ErFi t , ErStima , ErPre , g i u s t i , g i u s t i 2 )=6 ARIMAfun( s e r i e , nF , Vp[ i ] , d , Vq[ j ] )78 MErFit [ i ] [ j ]= E r F i t9 MErStimaA [ i ] [ j ]= ErStima [ 0 ]

10 MErStimaNA [ i ] [ j ]= ErStima [ 1 ]11 MErPreA [ i ] [ j ]= ErPre [ 0 ]12 MErPreNA[ i ] [ j ]= ErPre [ 1 ]13 MgiustiA [ i ] [ j ]= g i u s t i [ 0 ]14 MgiustiNA [ i ] [ j ]= g i u s t i [ 1 ]15 M s i g n i f i c a t i v i 2 A [ i ] [ j ]= g i u s t i 2 [ 0 ] [ 0 ]16 Mgiusti2A [ i ] [ j ]= g i u s t i 2 [ 0 ] [ 1 ]17 Msignif icat ivi2NA [ i ] [ j ]= g i u s t i 2 [ 1 ] [ 0 ]18 Mgiusti2NA [ i ] [ j ]= g i u s t i 2 [ 1 ] [ 1 ]

La fase successiva, consiste nel selezionare le combinazioni dei parametriche ottimizzano le grandezze studiate, e nel registrarne i valori. Sono statecreate due funzioni per questo scopo: MAX e MIN. Entrambe hanno perargomento le matrici costruite in precedenza, e forniscono come output ilvalore, rispettivamente di minimo (quando le grandezze sono gli erroriquadratici), e di massimo (quando le grandezze sono le percentuali diprevisioni corrette) con le relative coordinate. Ad esempio, la funzione MAXe scritta come segue:

1 # s e l e z i o n a v a l o r e massimo e c o o r d i n a t e2 def MAX( Matrice ) :3 import numpy as np45 Max=06 par i =07 for i in range ( 0 , 3 ) :8 for j in range ( 0 , 3 ) :9 for k in range ( 0 , 3 ) :

10 for h in range ( 0 , 3 ) :11 if Matrice [ i ] [ j ] [ k ] [ h]>=Max :12 Max=Matrice [ i ] [ j ] [ k ] [ h ]1314 for i in range ( 0 , 3 ) :15 for j in range ( 0 , 3 ) :16 for k in range ( 0 , 3 ) :

CAPITOLO 4. PRESENTAZIONE DEI CODICI 78

17 for h in range ( 0 , 3 ) :18 if Matrice [ i ] [ j ] [ k ] [ h]==Max :19 par i=par i +120 z=021 Parametri=np . zeros ( [ 4 , par i ] , f l o a t )22 for i in range ( 0 , 3 ) :23 for j in range ( 0 , 3 ) :24 for k in range ( 0 , 3 ) :25 for h in range ( 0 , 3 ) :26 if Matrice [ i ] [ j ] [ k ] [ h]==Max :27 Parametri [ 0 ] [ z ]= i28 Parametri [ 1 ] [ z ]= j29 Parametri [ 2 ] [ z ]=k30 Parametri [ 3 ] [ z ]=h31 z=z+13233 return (Max, Parametri )

Tiene conto anche dell’eventuale presenza di piu massimi, riportando inquesto caso le coordinate di tutti i punti di massimo.

Vengono selezionate in particolare le coordinate relative ai minimi deglierrori quadratici:

1 # Cerca e r r o r i minimi : F i t , PrevA , PrevNA2 ( MinErFit , ParErF i t )=MIN( MErFit )3 ( MinErPreA , ParErA )=MIN(MErA)4 ( MinErPreNA , ParErNA)=MIN(MErNA)

Si hanno cosı 3 set di coordinate. Per ciascuno di questi set, vengonoselezionati i valori di tutte le GD, che vanno cosı a formare 3 vettori:

• BestF. Vettore contenente i valori delle GD valutate nelle coordinateche minimizzano l’errore del fit.

• BestPA. Vettore contenente i valori delle GD valutate nelle coordinateche minimizzano l’errore delle previsioni aggiornate.

• BestPNA. Vettore contenente i valori delle GD valutate nelle coordi-nate che minimizzano l’errore delle previsioni non aggiornate.

Questi vettori vengono accorpati in un’unica matrice che sara poi scritta inun file csv esterno in modo da avere una descrizione sintetica dei risultatiottenuti. Inoltre, l’editor utilizzato per scrivere il codice (Spyder), permette

CAPITOLO 4. PRESENTAZIONE DEI CODICI 79

di scrivere su di un file esterno le variabili globali. In questo modo e semprepossibile recuperare tutte le informazioni delle simulazioni qualora fossenecessario.

4.2 Modelli Bivariati

Per i modelli bivariati, e stato possibile sfruttare quanto gia fatto perquelli univariati, con qualche piccolo adattamento.

Modello VAR

Questa volta vengono lette da un file csv le due serie sulle quali costruireil modello VAR. Le funzioni utili per questi modelli sono presenti nelpacchetto VARS. In particolare, la ricerca dell’ordine puo essere effettuatacon la funzione VARselect, che utilizza i criteri di informazione. Lastima del modello viene svolta dalla funzione VAR. L’argomento di questefunzioni e una matrice con 2 colonne, e il numero di righe pari ai punti delleserie storiche. L’output e dato dai coefficienti che descrivono il sistema.

Infine, per le previsioni, si fa uso della funzione predict, che fornisceanche l’intervallo di confidenza desiderato. Di seguito alcuni dei comandiappena menzionati:

1 cn . r ( ’ ordine<−VARselect ( InM , lag . max=5) ’ )2 cn . r ( ’ stima<−VAR(InM , p=3 , type=” const ” , season=NULL) ’ )3 cn . r ( ’ p r e v i s t i <−p r e d i c t ( stima , n . ahead =12 , c i = 0 . 6 8 2 ) ’ )

Rete Neurale

Nel caso delle reti neurali, non essendoci una trattazione standard, si eoptato per l’approccio che segue. Vengono caricate le due serie in esame(s1 e s2), per poi ”fonderle” in un’unica serie (s3) di lunghezza doppia. Sifa in modo che s3 alterni i singoli elementi delle altre due serie:

1 merge=np . zeros ( [ 2∗ len ( s1 ) , 1 ] , f l o a t )2 for i in range ( 0 , len ( s1 ) ) :3 merge [2∗ i ]= s1 [ i ]4 merge [2∗ i +1]= s2 [ i ]

Successivamente viene applicato il codice per lo studio univariato a s3.I punti cosı previsti, vengono nuovamente suddivisi in due serie, cherappresentano le previsioni delle due serie originarie.

CAPITOLO 4. PRESENTAZIONE DEI CODICI 80

1 ES=np . zeros ( [ nF , 1 ] , f l o a t )2 IFS=np . zeros ( [ nF , 1 ] , f l o a t )3 for i in range ( 0 , nF ) :4 ES [ i ]= s3 [2∗ i ]5 IFS [ i ]= s3 [2∗ i +1]

Capitolo 5

Scelta dei Dati

In questo capitolo viene fatto dapprima un excursus sulle principalicaratteristiche dei dati campionati ad alta frequenza. Infatti, gia i datiesaminati su scala giornaliera e mensile avevano messo in luce (si veda lasezione 2.1 a pagina 19) alcuni aspetti rilevanti, come la skewness e la kurtosi.Si vedra che le transazioni su scale temporali piu piccole mostrano altrepeculiarita non trascurabili.

Viene inoltre presentato il processo di raccolta e selezione dei dati dautilizzare per le simulazioni.

5.1 Dati ad Alta Frequenza

Di seguito sono considerati, per convenzione, dati ad ”alta frequenza”tutte quelle rilevazioni eseguite durante una giornata (intraday), viceversaper ”bassa frequenza” si intendono campionamenti con intervalli temporaligiornalieri o su scale ancora maggiori. I risultati presentati in questa sezionefanno riferimento a Tsay (2010; Capitolo: 5) [8].

5.1.1 Considerazioni Teoriche

Lo studio teorico dei dati ad alta frequenza si e sviluppato negli ultimianni grazie all’introduzione di sistemi elettoronici in grado di facilitarnel’acquisizione. La loro analisi permette di comprendere e approfondirealcuni aspetti relativi ai processi di trading e alla microstruttura del mercato.

In particolare, di seguito vengono considerati gli effetti derivati daltrading ”non sincrono” e dal ”bid-ask spread”.

81

CAPITOLO 5. SCELTA DEI DATI 82

00:00 02:50 06:55 09:45 12:35 15:25 18:15 21:05 23:55

IFSH3

Orario

Vol

ume

020

040

060

080

0

00:00 02:35 08:35 11:10 13:45 16:20 18:55 21:30

STXEH3

Orario

Vol

ume

050

0015

000

2500

0

00:00 03:00 06:00 09:00 12:00 15:00 18:00 21:00

ESH3

Orario

Vol

ume

020

000

4000

060

000

8000

0

00:00 03:00 06:00 09:00 12:00 15:00 18:00 21:00

SSIH3

Orario

Vol

ume

010

0020

0030

0040

0050

0060

00

Figura 5.1: Volumi scambiati dai quattro futures (H3) nell’arco di 24 ore nella data20/02/2013). E stato effettuato un campionamento ogni 5 minuti, e il fusoorario e quello di Greenwich.

Trading non sincrono

Titoli differenti vengono generalmente scambiati in modo non sincrono,ovvero con frequenze diverse o in fasce orarie differenti. Non solo, si pensianche a come nell’arco della stessa giornata l’intensita degli scambi di unasset possono variare. Nella figura 5.1 sono mostrati i volumi scambiati dai4 futures esaminati nell’arco di 24 ore. I picchi che si osservano coincidonocon l’apertura e la chiusura delle corrispettive borse.

Nel caso dei return giornalieri le conseguenze sono evidenti se si con-siderano, ad esempio, due furures come l’IFS e l’ES. Il primo scambia percirca 8 ore al giorno, contro le 23 del secondo. Chiaramente il prezzo dichiusura dell’IFS non puo incorporare le informazioni che influenzano il

CAPITOLO 5. SCELTA DEI DATI 83

mercato nelle ore successive, mentre per l’ES e possibile. Questa asimmetriaintroduce una correlazione incrociata con ` = 1.

E possibile dimostrare che il trading non sincrono introduce delle corre-lazioni seriali negative anche per un singolo titolo [25]. Definendo con πla probabilita che in un intervallo temporale elementare l’asset non vengascambiato, e con µ il valore medio dei log return, si ottiene:

Cov(rt, rt−j) = −µ2πj, j ≥ 1. (5.1)

Quindi, se π e µ sono diversi da zero, si introduce un’autocorrelazionenegativa il cui modulo diminuisce al crescere del lag temporale.

Bid-ask spread

I ”market maker” hanno il ruolo di fornire liquidita al mercato ponen-dosi sia in bid che in ask per uno o piu titoli. In questo modo, chiunquepuo comprare, o vendere un asset velocemente con un piccolo impatto sulprezzo. Il market maker ha cosı la possibilita di speculare sulla differenza trail prezzo di bid (Pb), e il prezzo di ask (Pa). Questa differenza (Pa − Pb > 0)e chiamata bid-ask spread, e diminuisce tanto piu il titolo e liquido.

L’esistenza del bid-ask spread ha alcune importanti conseguenze nelleproprieta dei return delle serie storiche. Si consideri il seguente modellosemplificato proposto da Roll (1984) [26]:

Pt = P∗t + It

S

2, (5.2)

dove Pt e il valore osservato del titolo esaminato, P∗t e il suo valore reale inun mercato perfettamente liquido, S e il bid-ask spread, e It e una sequenza divariabili casuali binarie (It = 1 con probabilita 0.5 e It = −1 con probabilita0.5). La variabile It puo essere considerata come l’indicatore dell’ultimoordine esguito: It = 1 rappresenta un acquisto, It = −1 rappresenta unavendita. Assumendo che P∗t sia costante,e che Var(It) = 1, si ottiene:

ρj(∆Pt) =

−0.5 se j = 1,0 se j > 1.

(5.3)

Anche in questo caso viene a creare un’autocorrelazione negativa al lagtemporale ` = 1.

Una trattazione piu realistica assume che P∗t segue un processo di randomwalk. Il risultato e analogo al precedente, cambia solo il modulo dell’auto-correlazione che dipende dalla varianza del processo. Si veda al propositoCampbell et al. (1997) [27].

CAPITOLO 5. SCELTA DEI DATI 84

Tabella 5.1: Frequenze delle variazioni del prezzo in multipli di un tick. TitoloIBM dal 01/11/1990 al 31/01/1991.

N Tick ≤ 3 −2 −2 0 1 2 ≥ 3Percentuale 0, 66 1, 33 14, 53 67, 06 14, 53 1, 27 0, 65

5.1.2 Evidenze Empiriche

I dati empirici relativi alle transazioni intrady mostrano le seguenticaratteristiche:

• Intervalli temporali non omogenei. Il tempo tra una transazione eun’altra varia di volta in volta.

• Esistenza di pattern periodici. Come si e visto per i futures, durantele fasi di apertura e chiusura l’attivita di trading e particolarmenteintensa, mentre tende a toccare un livello minimo durante le ore dipranzo.

• Piu transazioni nell’arco di un secondo. E possibile, e frequente(dipende dall’asset considerato) che piu transazioni avvengano inquesto breve intervallo di tempo, anche a prezzi differenti.

Sempre in Tsay (2010) [8] vengono analizzate le transazioni del titoloIBM avvenute tra l’01/11/1990 e il 31/01/1991. Nella tabella 5.1 sonoriportate le percentuali con cui avvengono determinate variazioni di prezzoin multipli di un tick size. Si nota che nel 66% delle transazioni non c’ealcuna variazione di prezzo, e variazioni sopra i 2 tick sono poco frequenti(≈ 4%). La distribuzione e approssimativamente simmetrica.

Nella tabella 5.2 nella pagina seguente sono classificate le variazionidi prezzo del titolo IBM (sempre nello stesso periodo) in base al segnodella variazione. Viene riportata la frequenza con cui si verificano duedeterminati eventi consecutivi: le righe rappresentano il trade (i-1)-esimo,mentre le colonne rappresentano il trade i-esimo. Si deduce che:

1. Incrementi o decrementi consecutivi del prezzo sono piuttosto rari(≈ 0, 7%).

2. Anche in questo caso il prezzo tende a rimanere costante (≈ 67%).

La prima osservazione e una conferma degli effetti legati al bid-ask spreaddedotti precedentemente. Si consideri la serie direzionale Di che puo assu-mere valori +1, 0 e -1 (rialzo, prezzo costante, ribasso) per ogni transazione

CAPITOLO 5. SCELTA DEI DATI 85

Tabella 5.2: Segno delle variazioni di prezzo consecutive (IBM).

+ 0 - Somma

+ 441 5498 3948 98870 4867 29779 5473 40119- 4580 4841 410 9831Somma 9888 40118 9831 59837

dell’esempio appena esaminato. Risulta che l’ACF con lag ` = 1 ha unvalore pari a −0, 389 altamente significativo per il campione considerato.

Un altro aspetto da tenere in considerazione quando si ha a che fare conrilevazioni ad altra frequenza, e la possibile presenza di valori outliers, omancanti. La trattazione di questi dati richiede una profonda conoscenzadi come il mercato opera, ed e sempre importante specificare chiaramenteil metodo utilizzato per ”filtrarli”.

5.1.3 Trading ad Alta Frequenza

L’High Frequency Trading (HFT) ha fatto la sua comparsa nei mercatifinanziari negli ultimi 10 anni. Ha destato un crescente interesse poiche per-mette di inviare, eseguire e cancellare, ordini in brevi intervalli temporali.Per fare cio, si avvale di tecniche di contrattazione che impiegano algoritmie tecnologie avanzate, le quali sfruttano movimenti di prezzo, anche transi-tori e di modesta entita. Tale metodo di contrattazione rappresenta ormaioltre il 70% del volume di scambi sul mercato statunitense, ma e utilizzatosoltanto da alcuni partecipanti al mercato (coloro che possono permettersidi affrontare l’elevato costo di una tecnologia cosı avanzata) [28].

In particolare, le strategie dell’HFT, aggiornano gli ordini in pochi mil-lesimi di secondo. Questo permette la realizzazione di piccoli profitti su ungrande numero di scambi concentrandosi percio su strumenti altamenteliquidi. Gli high frequency trader tendono a liquidare rapidamente le loroposizioni, e solitamente terminano la giornata di contrattazione senza averacquisito una posizione rilevante.

Le caratteristiche principali del trading ad alta frequenza possono esserecosı sintetizzate:

• Tecnologia utilizzata estremamente costosa, accessibile solo a profes-sionisti.

• Invio e gestione automatica degli ordini, con accesso diretto al merca-to.

CAPITOLO 5. SCELTA DEI DATI 86

• Il numero degli ordini e molto elevato, quindi vengono scelti stru-menti altamente liquidi.

• I margini di profitto sulla singola transazione sono bassi.

• Non vengono tenute posizioni significative a fine giornata.

Uno studio degli effetti dell’HFT sull’andamento dei prezzi, e sulla vola-tilita dei mercati, meriterebbe una trattazione a parte. Tuttavia, avendoa che fare con strumenti liquidi come i futures su indici, non si esclude lapossibilita di trovare dei ”segni” del trading ad alta frequenza confrontandodati su diverse scale temporali.

5.2 Dati Esaminati

La scelta del campione di dati da analizzare e piu stringente di quantosi possa immaginare, almeno tenendo conto della tipologia di simulazioniche dovranno essere effettuate.

Lo studio di modelli multivariati richiede delle finestre temporali incui tutti e 4 i futures siano scambiati contemporaneamente. Inoltre, e au-spicabile che i dati mancanti o fuori scala siano il minor numero possibile.Vengono di seguito esposte le conseguenze di queste richieste considerandoseparatamente rilevazioni ad alta e bassa frequenza.

5.2.1 Alta frequenza

Si e stabilito in precedenza che possono essere considerate misure ad altafrequenza quelle campionate nell’arco della stessa giornata. Per selezionarel’intervallo temporale in cui sono scambiti tutti e quattro i futures, si puo fareriferimento alla figura 5.2 nella pagina successiva. Sono riportati gli orari incui e possibile scambiare i singoli futures nella convenzione GMT, sia per ilperiodo autunno/inverno, che per quello di primavera/estate1. Gli estremiin cui sono possibili le contrattazioni di tutti i futures, sostanzialmente,coincidono con l’orario di apertura della borsa italiana, con l’eccezione delperiodo primavera/estate dove si deve tener conto che l’SSI scambia solo apartire dalle 7:15 GMT.

Per le rilevazioni intraday vengono quindi selezionate le seguenti finestretemporali:

1La differenza e dovuta al passaggio da ora solare ad ora legale, e viceversa. Bisognafare attenzione al fatto che questa transizione non avviene sempre nello stesso giornodell’anno; inoltre la data puo non essere la stessa per tutti i futures.

CAPITOLO 5. SCELTA DEI DATI 87

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

ESIFS

STXESSI

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

ESIFS

STXESSI

Figura 5.2: Sono rappresentati con delle linee continue intervalli temporali in cuivengono scambiati i 4 futures studiati nell’arco di 24 ore. In altro la faseautunno/inverno, in basso la fase primavera/estate. E stato adottato ilfuso orario di Greenwich (GMT). Si noti che per l’SSI gli orari in cuiavvengono gli scambi sono sempre gli stessi.

• Autunno/inverno: 8:00-16:00 GMT. Per un totale di 8 ore.

• Primavera/estate: 7:30-15:30 GMT. Per un totale di 8 ore.

Si noti che durante questa fascia oraria (in particolare quella pomeridiana)sono massimi i volumi scambiati in occidente, mentre in oriente, essendonotte, sono ai livelli minimi (si veda la figura 5.1 a pagina 82). Per questomotivo, nello scegliere l’intervallo elementare di tempo su cui effettuareil campionamento, bisogna evitare che vi siano troppi ”buchi”2 nelle serieconsiderate, in particolare quella dell’SSI. Allo stesso tempo, pero, unintervallo troppo grande ridurrebbe il numero di dati a disposizione, fino arendere impossibile alcuna analisi.

E stato quindi scelto un tempo di campionamento pari a 5 minuti. Inquesto modo, nell’arco di 8 ore e possibile effettuare 97 rilevazioni dellast value3 (valore dell’ultima transazione eseguita) e calcolare 96 simplereturn. Si faccia riferimento alla tabella 5.3 nella pagina successiva, perogni trimestre del 2012 e stato selezionato un giorno nel quale sono statiraccolti i dati per ciascuno dei 4 futures. Come atteso, l’SSI presenta dei datimancanti: sono in totale 8, di cui 6 concentrati durante il 19/07/12 (nelperiodo estivo l’attivita di trading e meno intensa).

L’intervallo di 5 minuti colloca le osservazioni definite ad altra fre-quenza in una scala temporale intermedia tra i millisecondi caratteristicidell’HFT, e le rilevazioni a bassa frequenza.

2Ci si riferisce ad intervalli in cui non avviene alcun trade.3Oltre ai last sono stati registrati anche i valori di bid-ask, e il volume degli scambi.

CAPITOLO 5. SCELTA DEI DATI 88

Tabella 5.3: Rilevazioni intraday ogni 5 minuti.

Futures Data Orario N Record

ES-IFS-STXE-SSI (H2) 01/03/12 08:00-16:00 96-96-96-95ES-IFS-STXE-SSI (M2) 15/05/12 07:30-15:30 96-96-96-95ES-IFS-STXE-SSI (U2) 19/07/12 07:30-15:30 96-96-96-90ES-IFS-STXE-SSI (Z2) 22/11/12 08:00-16:00 96-96-96-96

Tabella 5.4: Periodi di campionamento delle rilevazioni giornaliere (70 giornilavorativi).

H2 M2

ES 06/12/11 – 16/03/12 09/03/12 – 15/06/12IFS 09/12/11 – 15/03/12 06/03/12 – 14/06/12STXE 09/12/11 – 16/03/12 07/03/12 – 15/06/12SSI 01/12/11 – 08/03/12 02/03/12 – 07/06/12

U2 Z2

ES 14/06/12 – 21/09/12 13/09/12 – 20/12/12IFS 18/06/12 – 24/09/12 14/09/12 – 20/12/12STXE 18/06/12 – 21/09/12 17/09/12 – 21/12/12SSI 08/06/12 – 13/09/12 07/09/12 – 13/12/12

5.2.2 Bassa frequenza

Per quanto riguarda i dati a bassa frequenza (intervallo di tempo ≥ 1giorno), bisogna considerare il fatto che i futures sono scambiati con volumiconsiderevoli solo negli ultimi tre mesi del relativo trimestre (si veda ilparagrafo 1.3.1 a pagina 12). Si ricordi anche che, mentre la data di expirydell’SSI coincide col secondo venerdı del mese, per gli altri futures l’expirysi verifica nel terzo venerdı del mese.

In questo arco di tempo, che comprende circa 90-100 giorni, vannoesclusi ovviamente i fine settimana, ma anche le altre festivita. Questeultime sono spesso diverse a seconda del paese, e possono variare di annoin anno. Inoltre, i loro effetti possono ”propagarsi” negli altri mercatiriducendo il volume degli scambi. Nella figura 5.3 nella pagina successivasono mostrati i volumi infrasettimanali dei 4 futures. Durante il giorno18/02/2013, che coincide con il Washington’s Birthday (festivita legale negliStati Uniti), i volumi dell’ES sono circa 20 volte minori rispetto agli altrigiorni della settimana. Questa riduzione degli scambi si manifesta in parteanche in Europa, mentre in Asia gli effetti sono minimi.

Da quanto appena visto, segue che le serie temporali dei futures esa-minati sono caratterizzate da alcuni dati mancanti distribuiti in modo

CAPITOLO 5. SCELTA DEI DATI 89

18/02/2013 19/02/2013 20/02/2013 21/02/2013 22/02/2013

IFSH3

Giorni

Vol

ume

050

010

0015

0020

0025

0030

00

18/02/2013 19/02/2013 20/02/2013 21/02/2013 22/02/2013

STXEH3

Giorni

Vol

ume

020

000

6000

010

0000

18/02/2013 19/02/2013 20/02/2013 21/02/2013 22/02/2013

ESH3

Giorni

Vol

ume

050

000

1000

0015

0000

18/02/2013 19/02/2013 20/02/2013 21/02/2013 22/02/2013

SSIH3

Giorni

Vol

ume

020

0040

0060

0080

0010

000

Figura 5.3: Volumi scambiati dai 4 futures nell’arco di una settimana (dal 18/02/2013 al22/02/2013). E stata effettuata una rilevazione ogni 15 minuti, e il fuso orarioe quello di Greenwich.

asincrono tra una serie e l’altra. Questo, di fatto, esclude la possibilita diuna trattazione dei dati a bassa frequenza in chiave di modelli multivariati.

Considerando invece i modelli univariati, il numero esiguo dei dati adisposizione impone la scelta dell’intervallo di tempo piu breve tra unarilevazione e l’altra: verranno quindi campionate le chiusure giornaliere.I dati racolti coprono ogni timestre del 2012, e la tabella 5.4 nella paginaprecedente riporta i periodi di campionamento per ciascun futures. Sonostati scelti in modo che il volume degli scambi fosse significativo, e checontenessero 70 rilevazioni.

CAPITOLO 5. SCELTA DEI DATI 90

Tabella 5.5: Rilevazioni giornaliere nel primo trimestre del 2013 (70 giornilavorativi).

ESH3 IFSH3Periodo 03/12/2012 – 14/03/2013 03/12/2012 – 14/03/2013

STXEH3 SSIH3Periodo 03/12/2012 – 15/03/2013 28/11/2012 – 07/03/2013

Dati addizionali

I dati appena menzionati appartengono al 2012. Per effettuare dellesimulazioni aggiuntive out of sample (verra chiarito il significato nel pros-simo capitolo), sono state selezionate anche delle rilevazioni relative aiprimi mesi del 2013. In particolare, e stato considerato il primo trimestredell’anno (H3) campionando le chiusure giornaliere (si veda la tabella 5.5).Per le rilevazioni ad alta frequenza, e stato selezionato il valore del last ogni5 minuti nella giornata del 13/02/2013 dalle 8 alle 16. In questo caso non cisono stati problemi con dati mancanti.

Capitolo 6

Simulazioni e Risultati

Effettuata la scelta dei dati su cui lavorare, e possibile procedere con lesimulazioni. Viene dapprima considerato un insieme di analisi, in sample,volte a determinare delle configurazioni efficienti per effettuare le previsio-ni. In seguito, l’insieme out of sample verra utilizzato per verificare la bontadelle scelte compiute. Principalmente lo studio e portato avanti a livellounivariato, ma verra introdotto anche l’approccio multivariato.

Domande a cui rispondere

Viene di seguito proposto un elenco di domande, che fara da linea guidaper l’analisi portata avanti in questo capitolo:

1. Esistono delle configurazioni della rete neurale, o una scelta parti-colare dell’ordine del modello ARIMA, in grado di effettuare delleprevisioni affidabili? Se si, in quali termini?

2. Quali sono le differenze tra i modelli ARIMA e le reti neurali?

3. Esistono delle differenze sensibili tra lo studio dei dati ad alta fre-quenza e quelli a bassa frequenza?

4. Le previsioni a lungo termine (previsioni non aggiornate), risentonodelle minori informazioni disponibili, rispetto a quelle in cui i dati delmercato vengono incorporati di volta in volta (previsioni aggiornate)?

5. Le previsioni definite significative sono piu accurate?

Chiaramente il primo punto e quello piu rilevante, e il termine ”affidabili”indica che le previsioni corrette devono essere statisticamente significativeanche nel campione out of sample.

91

CAPITOLO 6. SIMULAZIONI E RISULTATI 92

Tabella 6.1: Tipologie delle simulazioni eseguite.

5 minuti Day CloseARIMA 16 16Rete neurale 16 16

6.1 Simulazioni In Sample

Nel precedente capitolo sono state riportate dettagliatamente le caratte-ristiche delle serie temporali raccolte. Complessivamente si hanno 32 seriestoriche: 16 date dalle combinazioni possibili considerando 4 futures e 4trimestri; altre 16 date dalle combinazioni possibili, sempre tra i 4 futures e i4 giorni considerati. Le prime sono rilevazioni a bassa frequenza (chiusuregiornaliere), le seconde sono rilevazioni ad alta frequenza (ultimo valoreeseguito ogni 5 minuti).

Per ognuna di queste serie viene eseguito un insieme di simulazioni siacon le reti neurali, sia con i modelli ARIMA. Nella tabella 6.1 sono riportateschematicamente le 64 tipologie di simulazioni possibili.

6.1.1 Scelta dei Parametri

Scopo delle simulazioni e definire (se esistono) i parametri dei modelliARIMA, o la struttura della rete, che meglio descrivono le serie storichein esame. Per fare questo viene considerato uno spazio dei parametri,all’interno del quale cercare i punti di massimo o di minimo, a seconda checi si riferisca alle previsioni corrette o agli errori quadratici medi.

ARIMA

Volutamente e stata trascurata un’analisi dei modelli ARIMA in termi-ni di ACF, PACF, o criteri di informazione per determinare l’ordine deiprocessi. Questa scelta ha due motivazioni:

1. Lo studio delle ACF e PACF e interessante a livello descrittivo, manon e generamente funzionale nella determinazione dell’ordine deiparametri dei modelli ARIMA.

2. I criteri di informazione hanno il vantaggio di fornire un responsounivoco senza dover interpretare grafici. Tuttavia si basano pur sem-pre su delle convenzioni (come la legge che penalizza gli ordini piu

CAPITOLO 6. SIMULAZIONI E RISULTATI 93

elevati). L’esempio visto nel paragrafo 3.5.2 a pagina 63 mostra chiara-mente che il modello ARIMA selezionato dai criteri di informazionee troppo basso per descrivere la funzione esaminata.

Infine, va detto che i calcolatori moderni possono determinare velocementei coefficienti del modello selezionato. Si e preferito quindi studiare unacasistica maggiore, per poi selezionare i risultati migliori. In questo modo eanche piu facile portare avanti un confronto con le reti neurali.

Generalmente i criteri di informazione selezionano processi ARIMAcon componenti AR/MA di ordine basso, difficilmente superiore al ter-zo. Sono stati considerati i seguenti insiemi dei valori possibili per p eq: p ∈ 0, 1, 2, 3, e q ∈ 0, 1, 2, 3. L’ordine di differenziazione e statoposto uguale a zero poiche l’analisi viene effettuata sulle serie dei simplereturn, considerate quindi stazionarie. Complessivamente sono possibili 16combinazioni.

Rete neurale

La scelta dei possibili parametri che caratterizzano la rete neurale, estata fatta tenendo conto delle singole simulazioni effettuate nel processodi taratura e delle regole generali viste nel capitolo 3. Sono stati selezionatii seguenti valori: hN ∈ 2, 5, 10, MxIt ∈ 10, 100, 1000, wc ∈ 1, 2, 10 ews ∈ 6, 12, 24. Le combinazioni possibili sono 81.

Si tenga conto che alcune scelte sono limitate a causa del tempo richiestoper le simulazioni. Infatti, nei programmi utilizzati, la parte che richiedeun rilevante tempo computazionale e quella adibita alla determinazionedei pesi della rete. Quindi, il tempo necessario per ogni simulazione crescequasi linearmente aumentando il valore dei parametri wc e MxIt. Per lostesso motivo ogni simulazione, con una determinata configurazione, vieneeffettuata 100 volte1 (simul = 100). Gia con questi valori, i risultati ottenutisono piuttosto stabili (si ricordi infatti che l’output della rete e aleatorio).

Infine, le serie dei retutn sono composte da 96 e 69 elementi (rispettiva-mente per le misure intraday e le chiusure giornaliere), quindi si e ritenutoopportuno fissare il numero dei punti previsti a 12 (nF = 12), sia per la reteneurale che per i modelli ARIMA.

1Questo processo, ha richiesto al computer utilizzato 75 minuti. Tenedo conto che leserie studiate sono 32, si arriva ad un totale di circa 40 ore.

CAPITOLO 6. SIMULAZIONI E RISULTATI 94

6.2 Analisi dei Dati

Ricapitolando, ognuna delle 32 serie considerate viene studiata con i mo-delli ARIMA e le reti neurali. Nel primo caso, vengono valutati i coefficientidel modello per le 16 possibili scelte dei parametri p e q, per poi effettuarele previsioni. Nel caso delle reti neurali, le previsioni sono date dalla mediadelle 100 simulazioni per ciascuna delle 81 possibili configurazioni deiparametri.

6.2.1 Gestione degli Output

L’output relativo ad una serie e sintetizzato in un file csv che riporta2:

1. Numero di punti previsti e numero di zeri della serie.

2. Coordinate ”best”. Sono i parametri che minimizzano l’errore qua-dratico medio. Sono riportati 3 set di coordinate a seconda dell’erro-re che viene minimizzato (fit, previsoni aggiornate, previsioni nonaggiornate).

3. Errori quadratici medi (fit, previsioni aggiornate, previsioni nonaggiornate) per ognuna delle coordinate best.

4. Percentuale di previsioni (aggiornate/non aggiornate) del segnocorrette per ognuna delle coordinate best.

5. Numero di previsioni (aggiornate/non aggiornate) significative perognuna delle coordinate best.

6. Percentuale di previsioni (aggiornate/non aggiornate) significative, ecorrette per ognuna delle coordinate best.

Nell’immagine 6.1 nella pagina successiva e raffigurato il file di outputrelativo ad una simulazione effettuata con le reti neurali. I valori deiparametri vanno letti come degli indici, dove ad esempio, per window size(ws) si ha:

Indici ws:

012

−→ Valori ws:

61224

.2Per una descrizione delle grandezze elencate si faccia riferimento al paragrafo 4.1.3 a

pagina 73.

CAPITOLO 6. SIMULAZIONI E RISULTATI 95

nF zeri 012 2

BestFit (hN MxIt wc ws) BestPA BestPNA2.0 0.0 0.02.0 0.0 0.02.0 0.0 0.02.0 0.0 0.0Valori (Fit PA PNA GA GNA G2A S2A G2NA S2NA) Valori Valori2.1706674495947534e-10 3.3632868337110169e-07 3.3632868337110169e-072.9735494157589396e-06 5.4549028678743881e-07 5.4549028678743881e-074.6146718399088783e-06 5.4211820659288054e-07 5.4211820659288054e-070.40000000000000002 0.5 0.50.90000000000000002 0.5 0.50.5 0.5 0.58.0 10.0 10.00.88888888888888884 0.5 0.59.0 10.0 10.0

Figura 6.1: Valori di output relativi alle simulazioni effettuate con le reti neurali sul futuresESH2, con dati intraday registrati nel giorno 01/03/12. Si tenga conto dellaseguente notazione 5.45e− 07 = 5, 45 · 10−7.

Inoltre, in alto a destra, e stato aggiunto il numero ”0” che identifica lasimulazione. E stata utilizzata una nomenclatura che associa ad ognunadelle 64 simulazioni, un numero da 0 a 63 in modo da mantenere ordinati ifile.

Successivamente, ognuno di questi output e stato raggruppato comenella tabella 6.1 a pagina 92. Vengono cosı creati 4 file csv, ognuno contente16 output disposti in sequenza, che costituiscono i dati da analizzare.

6.2.2 Analisi Statistica dei Dati

Studiando le serie dei return e importante in primo luogo prevedereil segno corretto dei punti futuri della serie. Se un investitore conoscessein anticipo l’andamento di un titolo, potrebbe facilmente sfruttare questainformazione per arricchirsi. Sarebbe allo stesso modo vantaggioso sapereche un determinato titolo aumentera, o diminuira, il proprio valore conun probabilita p 6= 0, 5 . L’ipotesi nulla e dunque H0 : p = 0, 5, dove p e laprobabilita associata alla rete neurale, o al modello ARIMA, di prevedere isegni corretti della serie rh+`.

Assumendo corretta l’ipotesi nulla, dato un numero N di punti previsti,la distribuzione di probabilita dei segni previsti correttamente e la seguente:

P(x) =N!

x!(N− x)!pN, (6.1)

CAPITOLO 6. SIMULAZIONI E RISULTATI 96

che e una distribuzione binomiale con i due eventi equiprobabili (p = q =0, 5).

Una proprieta notevole della distribuzione binomiale, e la possibilita diapprossimarla con una distribuzione normale per valori di N abbastanzagrandi. Generalmente e richiesto che pN > 5 (si veda al proposito [29]).Quando questa condizione e soddisfatta, la distribuzione normale associataha media paria a pN e deviazione standard σ = p

√N.

Questo risultato e particolarmente utile quando si ha a disposizioneun numero grande di previsioni effettuate. Si puo valutare quante sonocorrette, e poi stimare la probabilita di ottenere un risultato piu estremo inaccordo con una distribuzione normale dalle caratteristiche sopra citate.

Ad esempio, si consideri il caso in cui su 100 previsioni, 60 sono corrette.Il valore atteso e 50, la deviazione standard e σ = 5: quindi la probabilitadi ottenere un valore maggiore di 60, o minore di 40, e pari a circa 0, 054.Cio equivale a discostarsi dalla media di 2 o piu deviazioni standard, ed ela soglia (α = 0, 054) che verra utilizzata per effettuare una prima selezionetra i risultati ottenuti.

Di seguito vengono riportati i risultati per ognuno dei 4 gruppi studiati.Queste statistiche riassuntive sono state elaborate con un codice (si vedal’appendice E a pagina 120) composto da routine di questo tipo:

1 # A n a l i s i f r e q u e n z a p a r a m e t r i2 # Parametro : p−>1 q−>23 # B e s t : F i t −>0 PA−>1 PNA−>24 Parametro=25 Best =267 F0=08 F1=09 F2=0

10 F3=011 for i in range ( 0 , 1 6 ) :12 if M[ Parametro ] [ Best +( i ∗3 ) ] = = 0 :13 F0=F0+114 elif M[ Parametro ] [ Best +( i ∗3 ) ] = = 1 :15 F1=F1+116 elif M[ Parametro ] [ Best +( i ∗3 ) ] = = 2 :17 F2=F2+118 else :19 F3=F3+120

CAPITOLO 6. SIMULAZIONI E RISULTATI 97

21 Freq =[F0 , F1 , F2 , F3 ]22 print ’ Freq ’ , Freq , ’ \n ’

Si ricordi che gli output relativi a ciascun gruppo sono stati organizzatinello stesso file csv. Il codice appena mostrato calcola la frequenza deivalori di q, quando viene minimizzato l’errore relativo al fit nei modelloARIMA. Modificando gli input Parametro e Best si possono ottenere lealtre frequenze significative. Il tutto risultera piu chiaro analizzando i casistudiati.

Modelli ARIMA: campionamento ad alta frequenza

Fanno parte del campione considerato 16 serie storiche dei simple return,a ciascuna di esse sono state applicate le 16 combinazioni dei coefficientip,q. Nella figura 6.2 nella pagina seguente sono riportati sinteticamente irisultati ottenuti.

Ogni serie e composta da 96 return, di questi 84 sono noti a priori, men-tre 12 vengono previsti. Complessivamente si hanno quindi 16× 12 = 192punti previsti, e di questi 38 sono degli zeri. Gli zeri, non presentano alcunproblema procedurale, riducono solamente il valore ”N” che caratterizza ladistribuzione binomiale. In buona parte derivano dal futures SSI nella gior-nata estiva del 19/07/2012. Si e visto inoltre che le 8 rilevazioni mancanti(su 1536 totali intraday) riguardano sempre dall’SSI, e sono state sostituitedall’ultimo last registrato.

Facendo ancora riferimento alla figura 6.2, nel secondo riquadro dall’al-to, sono riportate le frequenze con cui vengono scelti i valori dei parametrip ∈ 0, 1, 2, 3 e q ∈ 0, 1, 2, 3, nelle configurazioni che hanno minimizzatogli errori quadratici medi di: fit, punti previsti aggiornati e punti previstinon aggiornati. Ad esempio, sulle 16 serie, il parametro q nella configura-zione di miglior fit (verra utilizzata la notazione q-BestFit indicando riga ecolonna nella tabella) ha presentato la distribuzione:

Valori:

q = 0q = 1q = 2q = 3

−→ Frequenze:

0

0

4

12

.Questo risultato mostra chiaramente che aumentando l’ordine della com-ponente MA, il fit migliora. L’osservazione e analoga considerando lacomponente AR dei modelli ARIMA. Non deve stupire che aumentandoil numero dei coefficienti da determinare, quindi il numero di parametriliberi, e possibile descrivere meglio i punti della serie gia noti.

CAPITOLO 6. SIMULAZIONI E RISULTATI 98

Sheet1

Page 1

ARIMA 5 minZERI 38 NON ZERI 154

FREQUENZA BestFit BestPA BestPNAp 0,0,3,13 5,6,2,3 4,5,3,4q 0,0,4,12 16,0,0,0 6,2,4,4

NUMERO BestFit BestPA BestPNAGiustiA 76 89 74GiustiNA 72 81 84GiustiSA 12 2 12GiustiSNA 7 2 2SA 34 2 29SNA 12 2 2

MEDIA BestFit BestPA BestPNAErFit 8,44e-07 9,87e-07 9,24e-07ErPA 4,81e-06 8,47e-07 1,06e-05ErPNA 1,08e-06 8,43e-07 8,02e-07

Figura 6.2: Sono riportati i principali risultati ottenuti studiando le 16 serie intraday con imodelli ARIMA.

CAPITOLO 6. SIMULAZIONI E RISULTATI 99

Ma cosa succede quando si considerano le configurazioni che minimiz-zano gli errori dei punti previsti? In questo caso le distribuzioni sembranoessere abbastanza uniformi, con una leggera preferenza per valori deiparametri piccoli; nel caso di q-BestPA addirittura viene scelto sempreq = 0.

Venendo alle previsioni corrette (GiustiA, GiustiNA)3 il numero attesosu 1544 previsioni e pari a 77. L’intervallo che comprende 2 deviazionistandard e dato da 77± 12, 4, approssimando per eccesso si ha che possonoessere considerati valori significativi quelli superiori a 89 e quelli minoridi 64. In questo caso, la soglia non viene mai superata (ci si avvicinaGiustiA-BestPA).

Sono stati valutati anche i risultati composti: sulle 6 combinazioni sihanno 476 previsioni corrette che rientra nell’intervallo di due deviazionistandard µ ± 2σ = 462 ± 31. Lo stesso controllo e stato effettuato sullasomma delle previsioni corrette relative ai soli parametri BestPA e BestPNA,le previsioni giuste sono 328 che rientrano nell’intervallo 308± 25.

Interessante e il dato relativo al numero di punti significativi (SA, SNA).La percentuale media di previsioni significative nelle 6 combinazioni, ecirca l’8, 8%, molto bassa dunque. Nel caso dei parametri BestPA, le previ-sioni significative sono solo 2, e non risulta piu possibilie approssimare labinomiale a gaussiana.

Confrontando il numero di previsioni corrette tra quelle significative,risulta che non sono presenti valori che si discostano di piu di due deviazio-ni standard. Per GiustiSA/NA-BestPA, e stata considerata la distribuzionebinomiale, e la probabilita di ottenere 2 previsioni corrette su 2 con p = 0, 5e pari a 0, 25, ben sopra la soglia α = 0, 054 stabilita precedentemente.

Infine, nell’ultimo riquadro, sono riportati i valori medi degli scartiquadratici valutati sulle 16 serie. Come atteso, i parametri che minimizzanol’errore del fit non sono altrettanto funzionali nell’effettuare delle previ-sioni. Invece, i parametri che minimizzano PA e PNA, danno risultati piuomogenei, dell’ordine di 1 · 10−6; escluso ErPA-BestPNA che e circa 10 voltepiu grande.

In conclusione, i risultati ottenuti utilizzando dei modelli ARIMA sudati ad alta frequenza, non possono portare a rifiutare l’ipotesi nulla.

3La notazione e gia stata introdotta in precedenza, ma si ricorda che le sigle ”A” ed”NA” indicano rispettivamente i valori aggiornati, e quelli non aggiornati.

4In questo caso si ha che pN = 0, 5 × 154 = 77 5, ne segue che l’approsimazionedella distribuzione binomiale a gaussiana e adeguata.

CAPITOLO 6. SIMULAZIONI E RISULTATI 100

Reti neurali: campionamento ad alta frequenza

I dati considerati sono gli stessi visti precedentemente. In questo casolo studio e stato effettuato con le reti neurali, testando le 81 configurazionipossibili dei parametri per ognuna delle 16 serie storiche.

I risultati sono riassunti nella figura 6.3 nella pagina successiva. Chiara-mente il numero di zeri nelle serie e sempre 38. L’analisi della frequenza deiparametri mostra sempre i valori, in ordine dal piu piccolo al piu grande;quindi si ha per wc-BestPNA:

Valori:

wc = 1wc = 2wc = 10

−→ Frequenze:

547

,e allo stesso modo per le altre combinazioni. E palese (come per i modelliARIMA) che i parametri in grado di approssimare meglio il training set sonoquelli che aggiungono gradi di liberta al sistema (hN), o che aumentano ilprocesso di ottimizzazione dei pesi (MxIt e wc). Il fatto che anche la dimen-sione della finestra dei dati in ingresso (ws) fosse altrettanto importante,era plausibile, ma non ovvio.

Raggruppando le frequenze dei parametri BstPAe BestPNA si ottiene:

Parametri:

hN

MxIt

wc

ws

−→ Frequenze:

(17, 10, 5)(18, 11, 3)(11, 7, 14)(20, 9, 3)

,dove, questa volta, i vettori delle frequenze sono stati disposti orizzontal-mente. Risulta una tendenza inversa rispetto ai parametri BestFit, vengonoinfatti scelti i valori piu piccoli (escluso wc).

Osservando il numero di punti previsti corretti (GiustiA/NA), si puonotare che ben 3 di questi valori (evidenziati in rosso) si discostano dallamedia in modo significativo (la soglia e sempre 90), mentre il quarto eal limite. Il numero di previsioni corrette relative alle coordinate BestFit,rientra, invece, in una deviazione standard dalla media. Si ricordi che leprevisioni giuste dei modelli ARIMA complessivamente su BestPA/PNA,erano 328; in questo caso sono 374, un valore altamente significativo, a cuie associato un p-valore prossimo allo zero.

Un altro aspetto importante e il numero di valori significativi (SA,SNA)che, in questo caso, e circa il 94% di quelli totali. Si vede anche che i pa-rametri migliori per il fit, sono quelli che generano piu incertezza nelleprevisioni. I valori GiustiSA/SNA sono in linea con le previsioni Giu-stiA/NA, la percentuale di valori corretti e la stessa, e quindi non viene

CAPITOLO 6. SIMULAZIONI E RISULTATI 101

Sheet1

Page 1

RN 5 minZERI 38 NON ZERI 154

FREQUENZA BestFit BestPA BestPNAhN 0,0,16 9,4,3 8,6,2MxIt 0,0,16 9,4,3 9,7,0wc 0,0,16 6,3,7 5,4,7ws 0,1,15 10,5,1 10,4,2

NUMERO BestFit BestPA BestPNAGiustiA 83 102 91GiustiNA 84 88 93GiustiSA 75 100 90GiustiSNA 66 85 89SA 142 151 151SNA 126 149 148

MEDIA BestFit BestPA BestPNAErFit 3,51e-10 8,17e-07 8,42e-07ErPA 3,90e-06 7,63e-07 8,24e-07ErPNA 5,89e-06 1,14e-06 8,30e-07

Figura 6.3: Sono riportati i principali risultati ottenuti studiando le 16 serie intraday conle reti neurali. In rosso sono stati evidenziati i valori caratterizzati da unp-valore inferiore alla soglia α = 0, 54.

CAPITOLO 6. SIMULAZIONI E RISULTATI 102

evidenziato un miglioramento delle previsioni quando la loro dispersionee minore.

Per quanto riguarda gli errori quadratici medi, i risultati sono similia quelli dei modelli ARIMA. L’unica differenza sostanziale riguarda ilvalore di ErFit-BestFit che e 3 ordini di grandezza inferiore rispetto a quellovisto per i modelli ARIMA. Questo miglioramente (che comunque e finea se stesso) probabilmente dipende dal fatto che la rete neurale, nellaconfigurazione che ottimizza il fit, ha molti parametri liberi, e quindi riescea descrivere meglio qualunque curva.

Lo studio delle serie ad alta frequenza con le reti neurali ha fornitodegli elementi da approfondire. Un numero cosı rilevante di previsionicorrette non deve pero trarre in inganno. Bisogna ricordare, infatti, che leconfigurazioni della rete scelte sono quelle che hanno minimizzato gli erroriquadratici, quindi non un campione casuale. Tuttavia va anche sottolineatoche anche con i modelli ARIMA e stata fatta la stessa scelta (con erroriquadratici medi simili), ma i risultati non sono stati altrettanto buoni.

Modelli ARIMA: campionamento a bassa frequenza

Viene ora svolta l’analisi dei dati a bassa frequenza con i modelliARIMA, procedendo sulla falsariga di quelli ad alta frequenza.

Si faccia riferimento alla figura 6.4 nella pagina seguente dove sonoriportati i risultati ottenuti. Il numero totale dei punti previsti e sempre192, ma in questo caso gli zeri sono solo 2. Chiaramente, la probabilita cheun titolo chiuda sullo stesso livello del giorno precedente e molto minorerispetto alla probabilita che resti invariato dopo 5 minuti.

L’analisi delle frequenze dei parametri non fornisce ulteriori spuntirispetto allo studio dei return intraday. Il fit e ottimizzato sempre da ordinidelle componenti AR e MA alte, la distibuzione Best-PA tende a selezionareordini bassi, mentre BestPNA e sostanzialmente uniforme.

Per valutare la rilevanza delle previsioni corrette, questa volta bisognatener conto del fatto che N = 192 − 2 = 190, quindi i valori limite sonodati da: µ± 2σ = 95± 14. Nessuno dei valori GiustiA/NA supera questiestremi.

Risulta invece rilevante il valore associato a GiustiSA-BestPNA. Infattile previsioni significative in questo caso sono 36, gli estremi sono dati da18± 6, mentre le previsioni corrette sono solo 10. Va sottolineato che, comenello studio dei return intradaty, la percentuale di valori significativi e circal’8, 6%.

Una differenza notevole tra l’analisi ad alta e bassa frequenza, emergeosservando i valori degli errori quadratici medi. L’ordine di grandezza

CAPITOLO 6. SIMULAZIONI E RISULTATI 103

Sheet1

Page 1

ARIMA Day CloseZERI 2 NON ZERI 190

FREQUENZA BestFit BestPA BestPNAp 0,0,3,13 11,3,0,2 6,4,2,4q 0,0,2,14 16,0,0,0 2,6,3,5

NUMERO BestFit BestPA BestPNAGiustiA 94 104 102GiustiNA 95 101 106GiustiSA 29 0 10GiustiSNA 3 0 0SA 58 0 36SNA 4 0 0

MEDIA BestFit BestPA BestPNAErFit 0,00013 0,00016 0,00015ErPA 0,00073 0,00014 0,00071ErPNA 0,00016 0,00014 0,00014

Figura 6.4: Sono riportati i principali risultati ottenuti studiando le 16 serie delle chiusuregiornaliere con i modelli ARIMA. In rosso sono stati evidenziati i valoricaratterizzati da un p-valore inferiore alla soglia α = 0, 54.

CAPITOLO 6. SIMULAZIONI E RISULTATI 104

degli errori in questo caso e 10−4, 100 volte piu grande rispetto a quelloevidenziato nell’analisi intraday. Questa differenza probabilmente e dovutaal fatto che i simple return relativi alle chiusure giornaliere sono general-mente maggiori in valore assoluto rispetto a quelli intraday. Oscillazionipiu grandi sono quindi piu difficili da approssimare.

Reti neurali: campionamento a bassa frequenza

L’analisi a bassa frequenza svolta con le reti neurali conferma sostanzial-mente quanto visto precedentemente. Si faccia riferimento alla figura 6.5nella pagina successiva. I parametri che minimizzano l’errore del fit sonoquelli con dei valori piu alti, escluso in questo caso ws che e intermedio.Le altre distribuzioni non presentano delle evidenze nette, tranne forseil caso sempre di ws, dove complessivamente per BestPA/PNA sia ha ladistribuzione (17,10,5).

I valori previsti GiustiA/NA-Best-PA/PNA sono tutti rilevanti. In parti-colar modo, considerando la somma di questi valori si hanno 451 previsionicorrette su 760, un numero che si discosta di circa 5 deviazioni standarddalla media. Questa evidenza emerge anche considerando le sole previsionisignificative, che questa volta sono l ′87% (percentuale leggermente minorerispetto a quella intraday).

Come per i modelli ARIMA, anche le reti neurali diminuiscono la pro-pria capacita di approssimare i punti del training set, e di descrivere i puntipresvisti. Il valore medio dell’errore quadratico del fit passa dall’ordinedi grandezza 10−10, a 10−8. L’errore quadratico dei punti previsti passadall’ordine di grandezza 10−6, a 10−4.

Considerazioni globali

E possibile, a questo punto, rispondere ad alcune delle domande posteall’inizio del capitolo.

Quali sono le differenze tra i modelli ARIMA e le reti neurali? Inprimo luogo esiste una differenza di precisione. Nel senso che aumentandoil numero di simulazioni, la risposta della rete, intesa come media deisingoli output, puo diventare arbitrariamente precisa. Per i modelli ARIMAl’incertezza delle previsioni e fissata una volta scelto l’ordine.

Per quanto riguarda l’accuratezza, e stato considerato il numero totale(sia ad alta che a bassa frequenza) di previsioni corrette nelle tre configu-razioni (BestFit, BestPA, BestPNA). I modelli ARIMA prevedono corret-tamente 1078/2064 ≈ 0, 522 segni, contro i 1181/2064 ≈ 0, 572 delle reti

CAPITOLO 6. SIMULAZIONI E RISULTATI 105

Sheet1

Page 1

RN Day CloseZERI 2 NON ZERI 190

FREQUENZA BestFit BestPA BestPNAhN 0,1,15 11,2,3 5,2,9MxIt 0,0,16 7,4,5 3,5,8wc 0,0,16 9,3,4 5,3,8ws 0,14,2 8,5,3 9,5,2

NUMERO BestFit BestPA BestPNAGiustiA 94 112 110GiustiNA 95 111 118GiustiSA 86 103 96GiustiSNA 77 99 102SA 175 175 166SNA 155 167 156

MEDIA BestFit BestPA BestPNAErFit 3,94e-08 9,23e-05 7,13e-05ErPA 0,000390 0,000120 0,000180ErPNA 0,000281 0,000120 0,000110

Figura 6.5: Sono riportati i principali risultati ottenuti studiando le 16 serie delle chiu-sure giornaliere con le reti neurali. In rosso sono stati evidenziati i valoricaratterizzati da un p-valore inferiore alla soglia α = 0, 54.

CAPITOLO 6. SIMULAZIONI E RISULTATI 106

neurali5. Va tuttavia sottolineato che le possibili configurazioni dei modelliARIMA sono 16, contro le 81 configurazioni delle reti neurali; questo hasicuramente contribuito ad aumentare la capacita di minimizzare gli erroriquadratici delle reti neurali.

Esistono delle differenze tra le previsioni effettuate su campionamentiad alta e bassa frequenza? La bonta delle previsioni e sostanzialmenteidentica. Infatti, considerando assieme modelli ARIMA e reti neurali, siha che per le serie intraday le previsioni corrette sono 1017/1848 ≈ 0, 550;mentre per le serie dei return giornalieri si ottengono 1242/2280 ≈ 0, 545

segni corretti. Una discrepanza, dunque, trascurabile. Gli errori quadraticimedi invece differiscono di circa 2 ordini di grandezza, e questo puo esserespiegato tenendo conto delle maggiori oscillazioni della serie dei return abassa frequenza.

Esistono differenze tra le previsioni a breve e a lungo termine (A/NA)?Anche in questo caso sono stati considerati i valori previsti corretti metten-do assieme reti neurali e modelli ARIMA, senza fare distinzione tra alta ebassa frequenza. Le previsioni corrette aggiornate sono 1131/2064 ≈ 0, 548,mentre quelle non aggiornate risultano essere 1123/2064 ≈ 0, 544; quindinon sembrano esserci differenze apprezzabili.

Le previsioni considerate significative sono piu accurate? Comples-sivamente le previsioni corrette, e significative, dei modelli ARIMA so-no 79/179 ≈ 0, 441. Questo dato e comunque compatibile con l’ipotesinulla, tuttavia mostra che probabilmente la precisione della previsionenon migliora la sua accuratezza, almeno per i modelli ARIMA. Conside-rando le reti neurali si ottiene che le previsioni significative corrette sono1068/1861 ≈ 0, 574. Non sembrano esserci, dunque, differenze apprezzabilirispetto alle previsioni non significative.

6.3 Simulazioni Out of Sample

Si e visto che alcune configurazioni delle reti neurali (quelle che mi-nimizzano gli errori quadratici medi del fit e delle previsioni) generanoun numero di previsioni corrette statisticamente rilevante. Per verificarequesta proprieta, e necessario effettuare delle simulazioni su dei dati out ofsample.

5Si ribadisce che questi risultati sono ”viziati” dall’aver scelto le configurazioni cheminimizzano gli errori quadratici medi.

CAPITOLO 6. SIMULAZIONI E RISULTATI 107

Tabella 6.2: Risultati per i dati out of sample: alta frequenza.

Previsioni GiustiA GiustiNA42 18 18

ErFit ErPA ErPNA3, 66 · 10−7 6, 16 · 10−7 6, 18 · 10−7

6.3.1 Configurazione Scelta e Risultati

La scelta dei parametri che caratterizzano la rete, viene effettuata fa-cendo riferimento ai dati mostrati nelle figure 6.3 a pagina 101 e 6.5 apagina 105. Considerando le configurazioni che minimizzano gli erroridelle previsioni aggiornate e non aggiornate, l’unico parametro che appareunivocamente determinato e ws. Risulta infatti che viene sempre sceltala finestra temporale minore (ws = 6). Per gli altri parametri e stata valu-tata la somma delle frequenze su tutte le configurazioni, selezionando laseguente:

Parametri:

hN

MxIt

wc

ws

−→ Valori:

2

10

10

6

,che sono i valori piu bassi, fatta eccezione per wc. Inoltre, si e mantenutonF = 12, e sono state effettuate sempre 100 simulazioni.

I dati esaminati si riferiscono al primo trimestre del 2013, campionatiad alta e bassa frequenza per tutti e 4 i futures. Si hanno quindi 8 serietemporali, e complessivamente (12× 8) = 96 previsioni (senza tener contodi eventuali zeri).

Dati ad alta frequenza

La tabella 6.2 mostra i risultati riassuntivi per tutti e 4 i futures concampionamenti ad alta frequenza. I valori degli errori quadratici medi sonoin linea con quanto visto precedentemente, ad eccezion fatta per ErFit chee 3 ordini di grandezza maggiore rispetto a quello ottenuto coi parametriBestFit. Chiaramente questo e dovuto alla scelta di utilizzare dei valori deiparametri minori, riducendo il numero di parametri liberi della rete.

Il numero di previsioni corrette, sia aggiornate che non aggiornate, einferiore al valore atteso (21), ma rientra nell’intervallo 21 ± σ, con (σ =√42/2 ≈ 3, 24).

CAPITOLO 6. SIMULAZIONI E RISULTATI 108

Tabella 6.3: Risultati per i dati out of sample: bassa frequenza.

Previsioni GiustiA GiustiNA47 24 28

ErFit ErPA ErPNA1, 26 · 10−4 1, 09 · 10−4 1, 16 · 10−4

La figura 6.6 nella pagina successiva mostra le 100 simulazioni relativealla serie temporale dell’IFSH3. Si noti come le previsioni non aggiorna-te, dopo circa 5 intervalli temporali (25 minuti), convergono alla mediacampionaria.

Dati a bassa frequenza

Nella tabella 6.3 sono mostrati i risultati riassuntivi per tutti e 4 i futurescon campionamenti a bassa frequenza. Anche in questo caso, gli erroriquadratici medi mostrano un sostanziale aumento rispetto a quelli ad altafrequenza. Inoltre, il valore di ErFit e circa 1000 volte maggiore rispetto aquello ottimizzato con i parametri BestFit.

In questo caso, le previsioni corrette sono superiori al valore atteso(23, 5). In particolare, GiustiNA, si discosta dalla media di 1, 3 deviazionistandard.

Valutando i risultati ottenuti nel complesso, si hanno 88 previsionicorrette su 178. Considerando l’intervallo µ ± σ = 89 ± 6, 7, non ci sonodeviazioni sostanziali rispetto a dei valori estratti da una distribuzionebinomiale con p = q = 0, 5. L’ipotesi nulla non puo essere rigettata.

Nella figura 6.7 a pagina 110, sono mostrate le 100 simulazioni relativealla serie temporale dell’ESH3. In questo caso, le previsioni non aggior-nate sembrano replicare meglio l’andamento della serie rispetto alla serieintraday ma l’effetto in parte e dovuto alla diversa scala dell’asse y.

6.4 Analisi Bivariata

L’analisi dei modelli univariati ha offerto degli spunti interessanti alivello descrittivo ma sembra non essere in grado di fornire delle previsioniabbastanza accurate. Un ulteriore campo di indagine e rappresentato dallostudio delle serie storiche bivariate e multivariate.

Come si e visto, i futures presi in esame sono strettamente correlati l’unocon l’altro e non si puo escludere la presenza di correlazioni incrociate chepotrebbero estendere il set informativo. Queste relazioni di interdipendenza

CAPITOLO 6. SIMULAZIONI E RISULTATI 109

0 20 40 60 80x

0.003

0.002

0.001

0.000

0.001

0.002

0.003

y

Training set

82 84 86 88 90 92 94 96x

0.003

0.002

0.001

0.000

0.001

0.002

0.003

y

Valori previsti non aggiornati

Figura 6.6: Sono rappresentate le 100 simulazioni effettuate sulla serie temporale intradaydell’IFSH3 nel giorno 13/02/2013, dalle 8 alle 16 (GMT). In alto e mostrato iltraining set, in basso le previsioni non aggiornate.

CAPITOLO 6. SIMULAZIONI E RISULTATI 110

0 10 20 30 40 50 60 70x

0.02

0.01

0.00

0.01

0.02

0.03

y

Training set

56 58 60 62 64 66 68 70x

0.02

0.01

0.00

0.01

0.02

0.03

y

Valori previsti non aggiornati

Figura 6.7: Sono rappresentate le 100 simulazioni effettuate sulla serie temporale del-l’ESH3 che va dal giorno 03/12/2012 al 14/03/2013. In alto e mostrato iltraining set, in basso le previsioni non aggiornate.

CAPITOLO 6. SIMULAZIONI E RISULTATI 111

Tabella 6.4: Confronto modelli univariati-bivariati. Previsioni non aggiornateESH3 intraday.

Modello ErPNA GiustiNA

ARIMA(2,0,3) 3, 34 · 10−7 4/9VAR(3) 3, 03 · 10−7 4/9Rete Univariata 2, 41 · 10−7 4/9Rete Bivariata 1, 66 · 10−7 5/9

possono essere incorporate nei modelli VAR e nelle reti neurali. Di seguitovengono presentate alcune applicazioni, lasciando aperti degli spunti perpossibili lavori futuri.

Serie intraday ES-IFS

Sono state considerate le due serie temporali intraday (dalle 08:00 alle16:00) dei futures ESH3 e IFSH3 nella giornata del 13/02/2013. I criteri diinformazione selezionano un modello VAR(3). Stimando i coefficienti, siottiene:

xt = −0, 21xt−1 − 0, 61xt−2 + 0, 07yt−2 − 0, 51xt−3 + 0, 05yt−3 + a1t

yt = 0, 6xt−1 − 0, 12yt−1 − 0, 27xt−2 − 0, 08yt−2 + 0, 26xt−3 + a2t,

(6.2)dove xt e la serie dei simple return dell’ESH3 e yt quella dell’IFSH3; i termininon significativi sono stati omessi.

I valori previsti (non aggiornati) dell’ESH3 con questo modello sonorappresentati nella figura 6.8 nella pagina seguente. Inoltre, nella tabel-la 6.4, sono riportati gli errori quadratici medi e il numero di punti previsticorrettamente, sia per i modelli bivariati (VAR e reti neurali bivariate) cheper quelli univariati (ARIMA e reti neurali univariate). Si puo notare chegli ordini di grandezza di ErPNA sono gli stessi, e i modelli bivariati sem-brano migliorare leggermente le previsioni ottenute con i rispettivi modelliunivariati.

Il numero di punti previsti e cosı esiguo da non rendere possibile al-cuna conclusione generale. Tuttavia, uno studio per verificare se esistonodelle correlazioni incrociate significative, e l’implementazione di modelli ingrado di descriverle, potrebbe fornire ulteriori elementi nello studio delleserie storiche finanziarie.

CAPITOLO 6. SIMULAZIONI E RISULTATI 112

0 2 4 6 8 10 12x

0.0015

0.0010

0.0005

0.0000

0.0005

0.0010

y

Valori previsti non aggiornati (VAR)

Figura 6.8: Sono mostrati i 12 punti previsti non aggiornati, con relative incertezze, dellaserie ESH3 intraday. Le previsioni sono state effettuate considerando unmodello VAR(3) relativo alle serie ESH3 e IFSH3.

Capitolo 7

Conclusioni

Sono stati campionati i dati relativi ai 4 futures nell’arco del 2012 e nelprimo trimestre del 2013, suddividendoli rispettivamente in due campioni:in sample e out of sample. Il primo campione e composto da 32 serie storiche(16 ad alta frequenza e 16 a bassa frequenza), per un totale di 2640 return.Il secondo e costituito da 4 serie intraday e altrettante serie relative allechiusure giornaliere.

Il progetto di simulazioni comprende, per ognuna delle serie in sample,l’utilizzo dei modelli ARIMA e delle reti neurali per effettuare le previsionisu di un orizzonte temporale pari a ` = 12. Per ciascuna serie vengonoconsiderati 16 possibili modelli ARIMA (in base all’ordine dei parametri p eq), e 81 configurazioni della rete neurale1. Lo scopo e quello di determinarese esistono dei valori ottimali nello spazio dei parametri, in grado di forniredelle previsioni accurate e significative.

La ricerca di queste configurazioni e stata effettuata selezionando lecombinazioni che hanno minimizzato gli errori quadratici medi del fit (Best-Fit), e dei punti previsti aggiornati/non aggiornati (BestPA/NA). Si valutain particolare se i risultati cosı ottenuti riescono a prevedere correttamentei segni dei simple return, con una frequenza tale da falsificare l’ipotesi nulla(valori casuali generati da una distribuzione binomiale con p = q = 0, 5).

L’analisi statistica ha evidenziato i seguenti punti:

• I parametri BestFit sono quelli che associano ai modelli un maggiornumero di gradi di liberta. Le configurazioni BestPA/PNA sembranoavere una una distribuzione dei valori piu uniforme, con una leggerapreferenza per quelle con meno gradi di liberta.

1Viene considerato come output della rete la media delle risposte su 100 simulazioni.

113

CAPITOLO 7. CONCLUSIONI 114

• Il numero dei segni previsti correttamente associato ai BestPA/NAdelle reti neurali, devia significativamente dal valore atteso per unadistribuzione binomiale con p = 0. Complessiviamente si hannoinfatti 1181 segni corretti su 2061, una percentuale ≈ 57%, altamentesignificativa.

• Gli errori quadratici delle previsioni effettuate sulle serie a bassafrequenza, sono di due ordini di grandezza superiori rispetto a quelleintraday. Cio e dovuto al fatto che le oscillazioni dei return su scalagiornaliera sono piu grandi in valore assoluto. Tuttavia, a livello disegni previsti correttamente, non ci sono differenze sostanziali.

• Le previsioni aggiornate, pur incorporando le nuove informazionidel mercato, non sembrano essere piu accurate rispetto a quelle nonaggiornate.

In una fase successiva, e stata selezionata la configurazione delle reteneurale trovata con maggior frequenza in BestPA/NA. I modelli ARIMAvengono invece messi da parte, poiche si sono rivelati meno efficienti. L’a-nalisi, questa volta, e stata svolta sul campione out of sample. I segni previsticorrettamente sono 88 su 178 totali, e rientrano ampiamente nell’intervallodi confidenza µ±σ ≈ 89± 7 relativo alla distribuzione binomiale associata.

Si puo affermare, dunque, che lo studio effettuato non ha mostratoevidenze sufficienti per affermare che i modelli ARIMA, e le reti neurali,siano in grado di anticipare correttamente l’andamento di una serie tempo-rale finanziaria. Per sviluppare ulteriormente l’analisi, in futuro potrannoessere considerati i seguenti aspetti:

• Aumentare la profondita dei dati storici campionati, considerandoanche frequenze di campionamento piu alte e differenti asset.

• Approfondire le relazioni di causalita tra diverse serie storiche, svol-gendo un ricerca a livello multivariato, che in questa sede e stata solointrodotta.

• Oltre alla previsione dei valori futuri di uno strumento finanziario,puo essere interessante testare direttamente degli algoritmi di tradingche suggeriscono quando vendere, comprare o non eseguire alcunaoperazione [30].

Appendice A

Thomson Reuters

Thomson Reuters (TR), e societa nata il 17 aprile 2008 dalla fusionedel colosso dell’informazione finanziaria canadese Thomson e l’agenziadi stampa Reuters. L’accordo ha dato vita ad una delle piu importanti so-cieta nel campo dell’informazione economico-finanziaria: il nuovo gruppocontrolla infatti il 34% del mercato, con il 33% detenuto da Bloomberg.

Tutti i dati relativi alle serie storiche finanziarie riportati in questo lavoro,sono stati scaricati da TR. Si ringrazia Banca Aletti, e in particolare ClaudioPagliuca, per aver messo a disposizione la licenza, e reso facile l’accesso adinformazioni altrimenti costose.

Per identificare in modo univoco ogni prodotto finanziario, TR adottaun’apposita nomenclatura. Viene utilizzato un RIC (Reuters instrument code),che nel caso dei titoli, prevede una sigla che li identiffica seguita dal codicerelativo al mercato dove viene scambiato. Ad esempio, nel caso dell’IBM,si puo avere IBM.N (indica che viene scambiato nella borsa di New York),oppure IBM.L (indica che viene scambiato nella borsa di Londra).

Considerando invece i futures su indice, il RIC e composto da una siglache identifica il corrispettivo indice, seguita poi dal codice che stabilisce iltrimestre e l’anno. Quindi STXEH3 sara il futures sull’indice EURO STOXX50, con scadenza nel primo trimestre del 2013.

115

Appendice B

Richiami di Statistica

Vengono introdotte alcune definizioni e notazioni ricorrenti all’internodi questo lavoro.

Momenti di una variabile casuale

Il momento i-esimo di una variabile casuale X e definito come:

m′

i = E(Xi) =

∫∞−∞ x

if(x)dx, (B.1)

dove f(x) e la densita di probabilita di X. Il primo momento e chiamatomedia di X (µx).

L’i-esimo momento centrale e definito da:

mi = E[(X− µx)i] =

∫∞−∞(x− µx)

if(x)dx. (B.2)

Il secondo momento centrale (σ2x) misura la dispersione di X, ed e chiamatovarianza. I primi due momenti di una variabile casuale, determinanounivocamente la distribuzione normale associata. Per altre distribuzioni,sono importanti anche i momenti di ordine superiore.

Il terzo momento centrale misura la simmetri di X rispetto alla me-dia, mentre il quarto momento centrale valuta il comportamento delladistribuzione nelle ”code”. In statistica queste grandezze normalizzate(rispettivamente col terzo e quarto momento) prendono il nome di skewnesse kurtosi. Sono definite come segue:

S(x) = E

[(X− µx)

3

σ3x

], K(x) = E

[(X− µx)

4

σ4x

]. (B.3)

116

APPENDICE B. RICHIAMI DI STATISTICA 117

La quantita K(x) − 3 e definita eccesso di kurtosi perche K(x) = 3 per unadistribuzione normale. Una distribuzione con un eccesso di kurtosi posi-tivo, presenta una densita di probabilita maggiore nelle code rispetto aduna distribuzione normale. Nel caso opposto, gli eventi rari saranno pocoprobabili.

Nelle applicazioni, queste grandezze vengono stimate dalle realizzazio-ni delle distribuzione esaminata. In particolare, per skewness e kurtosi siha:

S(x) =1

(T − 1)σ3x

T∑t=1

(xt− µx)3, K(x) =

1

(T − 1)σ4x

T∑t=1

(xt− µx)4; (B.4)

dove x1,...,xT e un campione di X con T osservazioni.

Verifica delle ipotesi

Spesso e necessario verificare se dei risultati sono compatibili con unacerta distribuzione, o con una certa ipotesi. Tale ipotesi prende il nome diipotesi nulla (H0).

Una convenzione consiste nello stabilire una soglia (ad esempio α =0, 05), e rigettare H0 se i dati ottenuti, o valori ancora piu estremi, hannoa priori una probabilita (p-valore) di verificarsi minore di α. Ad esempio,si puo supporre che nel lancio di una moneta la probabilita di ottenere”testa” sia pari a p = 0, 5: questa e l’ipotesi nulla H0. Se viene stabilita unasoglia α = 0, 05, e dopo 5 lanci e stata ottenuta sempre testa, si calcolala probabilita di tale evento considerando una distribuzione binomialecon p = q = 0, 5. In questo specifico caso si ha che P(5 volte testa su5)= 0, 03125 < α = 0, 05. Quindi l’ipotesi nulla puo essere rifiutata.

In genere le distribuzioni considerate, saranno riconducibili a quellanormale o alla distribuzione del chi-quadrato1.

1In teoria delle probabilita, la distribuzione del chi-quadrato (χ2), descrive la sommadei quadrati di variabili aleatorie indipendenti, aventi distribuzione normale.

Appendice C

R

R, e un linguaggio e un ambiente, creato per gestire l’analisi statistica ela rappresentazione grafica dei risultati. E la versione ”libera” di S e, anchese esistono alcune importanti differenze, buona parte dei codici scritti per Spossono essere utilizzati con R. Si faccia riferimento al sito internet [31] perla documentazione e il download.

In questo lavoro, R, e stato utilizzato per stimare i parametri dei modellieconometrici e delle reti neurali. In particolare sono stati installati i seguentipacchetti:

• forecast. Contiene la funzione auto.arima in grado di stimarel’ordine del modello ARIMA.

• stats. Contiene tutte le principali funzioni per l’analisi statistica deidati, incluse quelle per valutare i modelli econometrici univariati (AR,MA, ARIMA).

• vars. Contiene tutte le funzioni adibite ai modelli ecnometrici multi-variati VAR.

• nnet. Libreria che permette di stimare i pesi di una rete neurale, e dieffettare le previsioni. Una descrizione del pacchetto si trova nel libro(Venables, Ripley; Capitolo: 10) [32].

Per la parte econometrica, molti esempi utili da cui si e attinto, sono fornitidalla seguente guida [33].

118

Appendice D

Python

Per la gestione del flusso dei dati e stato utilizzato principalmente Py-thon. Python e un linguaggio di programmazione ad alto livello, orientatoad oggetti che ha nella chiarezza, e nella facilita di utilizzo i suoi punti diforza. E possibile trovare la documentazione ed effettuare il download sulsito ufficiale [34].

Sono state utilizzate le seguenti librerie:

• numpy. Permette, tra le altre cose, di gestire vettori e matrici n-dimensionali

• csv. Consente di leggere e scrivere su file csv.

• matplotlib. Libreria adibita alla parte grafica.

• pyRserve. Permette di far dialogare R e Python. Si faccia riferimentoal sito internet [35].

Si e rilevato particolarmente utilie l’uso dell’editore Spyder in grado difornire un’interfaccia simile a Matlab, attraverso la quale e possibile visua-lizzare le variabili, importarle ed esportarle.

Inoltre, per una gestione avanzata delle serie temporali (in particolarequando si ha a che fare con un grande numero di dati), si raccomandal’utilizzo del modulo Pandas, ed il seguente manuale [36].

119

Appendice E

Codici Integrali

Rete neurale

1 import m a t p l o t l i b . pyplot as p l t2 from RnFunctions import∗3 import pyRserve4 import numpy as np5 import csv6 from pylab import∗789 # ############################## Input

10 #ws = i n p u t (” Dimensione f i n e s t r a i n p u t + outpu : ” )11 #nF = i n p u t (” Numero p u n t i p r e v i s t i : ” )12 # s imul = i n p u t (” Numero s i m u l a z i o n i : ” )131415 ws= 1216 nF= 2417 simul= 10018 hN= 219 MxIt= 1020 wc= 102122 f =open ( ”C:/ percorso/Sovrapposte . csv ” , ” r ” )2324 s e r i e = [ ]2526 for l i n e in f :

120

APPENDICE E. CODICI INTEGRALI 121

27 l i n e = l i n e . r e p l a c e ( ” , ” , ” ” ) . s p l i t ( )28 s e r i e . append ( f l o a t ( l i n e [ 0 ] ) )2930 f . c l o s e313233 dataIn = [ ]34 dataOu = [ ]35 makeWindow(ws , s e r i e , dataIn , dataOu )3637 # ############################## R se r ve38 cn=pyRserve . connect ( host=” l o c a l h o s t ” )39 cn . r ( ’ l i b r a r y ( nnet ) ’ )4041 # ############################## P r e v i s i o n i e f i t42 MaPreA=np . zeros ( [ nF , simul ] , f l o a t )43 MaPreNA=np . zeros ( [ nF , simul ] , f l o a t )44 MaFit=np . zeros ( [ len ( s e r i e )−nF−ws+1 , simul ] , f l o a t )45 for j in range ( 0 , simul ) :46 ( PreA , PreNA , f i t t a t i )= StimaRn47 ( cn , s e r i e , ws , MxIt , wc ,hN, nF , dataIn , dataOu )48 for i in range ( 0 , nF ) :49 MaPreA[ i ] [ j ]=PreA [ i ] [ 0 ]50 MaPreNA[ i ] [ j ]=PreNA[ i ] [ 0 ]5152 for i in range ( 0 , len ( s e r i e )−nF−ws+ 1 ) :53 MaFit [ i ] [ j ]= f i t t a t i [ i ] [ 0 ]545556 # ############################## Media e DevStd57 MaMeStdA=np . zeros ( [ 2 , nF ] , f l o a t )58 for i in range ( 0 , nF ) :59 MaMeStdA [ 0 ] [ i ]=np . mean(MaPreA[ i ] )60 MaMeStdA [ 1 ] [ i ]=np . std (MaPreA[ i ] )6162 MaMeStdNA=np . zeros ( [ 2 , nF ] , f l o a t )63 for i in range ( 0 , nF ) :64 MaMeStdNA [ 0 ] [ i ]=np . mean(MaPreNA[ i ] )65 MaMeStdNA [ 1 ] [ i ]=np . std (MaPreNA[ i ] )6667 Lf=len ( s e r i e )−(ws−1)−nF

APPENDICE E. CODICI INTEGRALI 122

68 MaMeStdFit=np . zeros ( [ 2 , Lf ] , f l o a t )69 for i in range ( 0 , Lf ) :70 MaMeStdFit [ 0 ] [ i ]=np . mean( MaFit [ i ] )71 MaMeStdFit [ 1 ] [ i ]=np . std ( MaFit [ i ] )727374 # ######################### Valuto e r r o r e f i t7576 ErDvFit=ErDvFit ( MaFit , s e r i e , Lf , nF , simul )7778 print ’ Funzione e r r o r e medio F i t : ’ , ErDvFit [ 0 ] , ’ \n ’7980 # ########################## Valuto e r r o r e Prev8182 ErMed=ErMed (MaMeStdA, MaMeStdNA, nF , simul )8384 (ErDvA ,ErDvNA)= ErDvPre (MaMeStdA,MaMeStdNA,85 s e r i e , nF , simul )8687 print ’ Funzione e r r o r e d e l l a media dei punti88 a g g i o r n a t i : ’ , ErDvA [ 0 ]89 print ’ Funzione e r r o r e d e l l a media dei punti90 non a g g i o r n a t i : ’ , ErDvNA[ 0 ] , ’ \n ’9192 # ############################## Segno9394 ( g i u s t i 1 , g i u s t i 2 )=SegnoR (MaMeStdA [ 0 ] ,MaMeStdNA[ 0 ]95 , s e r i e , nF )9697 print ’ Va lor i Gius t i1 : ’ , g i u s t i 198 print ’ Va lor i Gius t i2 : ’ , g i u s t i 299

100101 ( g i u s t i 1 , g i u s t i 2 )= SegnoR2 (MaMeStdA, MaMeStdNA,102 s e r i e , nF , simul )103104 print g i u s t i 1105 print g i u s t i 2106107108 # ############################## G r a f i c i

APPENDICE E. CODICI INTEGRALI 123

109 p l t . r c ( ’ x t i c k ’ , l a b e l s i z e =14)110 p l t . r c ( ’ y t i c k ’ , l a b e l s i z e =14)111112 x = np . arange ( len ( s e r i e )−nF−1 , len ( s e r i e ) , 1 )113 x2= np . arange (ws−1 , len ( s e r i e )−nF , 1 )114 primo =[ s e r i e [ len ( s e r i e )−nF−1]]115 zero = [0 ]116117118 for i in range ( 0 , simul ) :119 p l t . p l o t ( x2 , MaFit [ : , i ] )120121 p l t . p l o t ( s e r i e , ’ ko ’ )122123 g r a f i c o ( pl t , ” Training s e t ” , ”x” ,124 ”y” , ” l a b e l 1 ” , ” l a b e l 2 ” )125126 p l t . show ( )127128129 for i in range ( 0 , simul ) :130 y=np . concatenate ( ( primo , MaPreA [ : , i ] ) )131 p l t . p l o t ( x , y )132133 p l t . p l o t ( s e r i e , ’ ko ’ )134135 g r a f i c o ( pl t , ” Valor i p r e v i s t i a g g i o r n a t i ” , ”x” ,136 ”y” , ” l a b e l 1 ” , ” l a b e l 2 ” )137138 p l t . show ( )139140141142 for i in range ( 0 , simul ) :143 y=np . concatenate ( ( primo , MaPreNA [ : , i ] ) )144 p l t . p l o t ( x , y )145146 p l t . p l o t ( s e r i e , ’ ko ’ )147148 g r a f i c o ( pl t , ” Valor i p r e v i s t i non a g g i o r n a t i ” , ”x” ,149 ”y” , ” l a b e l 1 ” , ” l a b e l 2 ” )

APPENDICE E. CODICI INTEGRALI 124

150151 p l t . show ( )152153154 y=np . concatenate ( ( primo , MaMeStdA [ 0 ] [ : ] ) )155 yerr=np . concatenate ( ( zero , MaMeStdA [ 1 ] [ : ] / simul ∗ ∗ 0 . 5 ) )156 p l t . p l o t ( x , y )157 p l t . p l o t ( s e r i e , ’ ko ’ )158 e r r o r b a r ( x , y , yerr , fmt= ’ ro ’ )159160 g r a f i c o ( pl t , ” Valor i medi a g g i o r n a t i (RN) ” , ”x” ,161 ”y” , ” l a b e l 1 ” , ” l a b e l 2 ” )162163 p l t . show ( )164165 y=np . concatenate ( ( primo ,MaMeStdNA [ 0 ] [ : ] ) )166 yerr=np . concatenate ( ( zero ,MaMeStdNA [ 1 ] [ : ] / simul ∗ ∗ 0 . 5 ) )167 p l t . p l o t ( x , y )168 p l t . p l o t ( s e r i e , ’ ko ’ )169 e r r o r b a r ( x , y , yerr , fmt= ’ ro ’ )170171 g r a f i c o ( pl t , ” Valor i medi non a g g i o r n a t i (RN) ” , ”x” ,172 ”y” , ” l a b e l 1 ” , ” l a b e l 2 ” )173174 p l t . show ( )

Funzioni rete neurale

1 # p r e p a r a l a s e r i e in b a s e a ws2 def makeWindow(ws , ts , dIn , dOut ) :3 for i in range (ws−1 , len ( t s ) ) :4 for j in range (ws−1 ,0 , −1) :5 dIn . append ( t s [ i− j ] )6 dOut . append ( t s [ i ] )78 def g r a f i c o ( pl t , t i t o l o , x labe l , y label , legend1 , legend2 ) :9 p l t . x l a b e l ( x labe l , f o n t s i z e =20 , fontweight= ’ bold ’ )

10 p l t . y l a b e l ( y label , f o n t s i z e =20 , fontweight= ’ bold ’ )11 p l t . t i t l e ( t i t o l o , f o n t s i z e =25 , p o s i t i o n = ( 0 . 5 , 1 . 0 5 )

APPENDICE E. CODICI INTEGRALI 125

12 , fontweight= ’ bold ’ )13 # p l t . l e g e n d ( ( l egend1 , l e g e n d 2 ) ,14 # ’ upper c e n t e r ’ , shadow=True )15 # p l t . g r i d ( F a l s e )16 # p l t . x l im ( [ 5 5 , 7 0 ] )17 # p l t . x t i c k s ( [ 0 , 60 , 1 1 0 ] , [ ’ mon ’ , ’ t u e ’ , ’ wed ’ ] )181920 def TradingL ( prev1 , prev2 , s e r i e , nF ) :2122 u t i l e 1 =023 for i in range ( 0 , nF , 1 ) :24 if prev1 [ i ] > s e r i e [−nF−1+ i ] :25 u t i l e 1 = u t i l e 1 + s e r i e [−nF+ i ]− s e r i e [−nF−1+ i ]26 else :27 u t i l e 1 = u t i l e 1 + s e r i e [−nF−1+ i ]− s e r i e [−nF+ i ]2829 u t i l e 2 =030 if prev2 [−1] > s e r i e [−nF−1] :31 u t i l e 2 = s e r i e [−1]− s e r i e [−nF−1]32 else :33 u t i l e 2 = s e r i e [−nF−1]− s e r i e [−1]3435 return ( u t i l e 1 , u t i l e 2 )363738 def ErMed ( MediaA , MediaNA, nF , simul ) :3940 import math as m414243 k=simul ∗∗0 .54445 erA=046 for i in range ( 0 , nF ) :47 erA=erA+m. fabs ( MediaA [ 1 ] [ i ] / ( k∗MediaA [ 0 ] [ i ] ) )4849 erNA=050 for i in range ( 0 , nF ) :51 erNA=erNA+m. fabs (MediaNA [ 1 ] [ i ] / ( k∗MediaNA [ 0 ] [ i ] ) )52

APPENDICE E. CODICI INTEGRALI 126

53 ErPerMed=[erA/nF , erNA/nF ]5455 return ( ErPerMed )565758 def SegnoR ( prevA , prevNA , s e r i e , nF ) :5960 z e r i =061 for i in range ( 0 , nF ) :62 if s e r i e [−nF+ i ]==0 :63 z e r i = z e r i +16465 giust iA =066 for i in range ( 0 , nF ) :67 if ( prevA [ i ]>0 and s e r i e [−nF+ i ]>0) or68 ( prevA [ i ]<0 and s e r i e [−nF+ i ] <0) :69 giust iA=giust iA +1707172 giustiNA=073 for i in range ( 0 , nF ) :74 if ( prevNA [ i ]>0 and s e r i e [−nF+ i ]>0) or75 ( prevNA [ i ]<0 and s e r i e [−nF+ i ] <0) :76 giustiNA=giustiNA+17778 g i u s t i =[ g iust iA/ f l o a t ( nF−z e r i ) , giustiNA/79 f l o a t ( nF−z e r i ) ]8081 return ( g i u s t i )8283848586 def SegnoR2 ( prevA , prevNA , s e r i e , nF , simul ) :8788 k=simul ∗∗0 .589 s i g n i f i c a t i v i A =090 z e r i 1 =091 giust iA =092 for i in range ( 0 , nF ) :93 if ( prevA [ 0 ] [ i ] ∗ ( prevA [ 0 ] [ i ]+prevA [ 1 ] [ i ]/k)>0)

APPENDICE E. CODICI INTEGRALI 127

94 and ( prevA [ 0 ] [ i ] ∗ ( prevA [ 0 ] [ i ]−prevA [ 1 ] [ i ]/k ) ) >0 :95 s i g n i f i c a t i v i A = s i g n i f i c a t i v i A +19697 if s e r i e [−nF+ i ]==0 :98 z e r i 1 = z e r i 1 +199

100 if ( prevA [ 0 ] [ i ]>0 and s e r i e [−nF+ i ]>0)101 or ( prevA [ 0 ] [ i ]<0 and s e r i e [−nF+ i ] <0) :102 giust iA=giust iA +1103104 s i g n i f i c a t i v i N A =0105 z e r i 2 =0106 giustiNA=0107 for i in range ( 0 , nF ) :108 if ( prevNA [ 0 ] [ i ] ∗ ( prevNA [ 0 ] [ i ]+prevNA [ 1 ] [ i ]/k)>0)109 and ( prevNA [ 0 ] [ i ] ∗ ( prevNA [ 0 ] [ i ]−prevNA [ 1 ] [ i ]/k ) >0) :110 s i g n i f i c a t i v i N A = s i g n i f i c a t i v i N A +1111112 if s e r i e [−nF+ i ]==0 :113 z e r i 2 = z e r i 2 +1114115 if ( prevNA [ 0 ] [ i ]>0 and s e r i e [−nF+ i ]>0)116 or ( prevNA [ 0 ] [ i ]<0 and s e r i e [−nF+ i ] <0) :117 giustiNA=giustiNA+1118119120 if s i g n i f i c a t i v i A ==0 or s i g n i f i c a t i v i A == z e r i 1 :121 GiustiA = [ 0 , 0 ]122 else :123 GiustiA =[ s i g n i f i c a t i v i A −zer i1 , g iust iA/124 f l o a t ( s i g n i f i c a t i v i A −z e r i 1 ) ]125126 if s i g n i f i c a t i v i N A ==0 or s i g n i f i c a t i v i N A == z e r i 2 :127 GiustiNA = [ 0 , 0 ]128 else :129 GiustiNA =[ s i g n i f i c a t i v i N A−zer i2 , giustiNA/130 f l o a t ( s i g n i f i c a t i v i N A−z e r i 2 ) ]131132133 return ( GiustiA , GiustiNA )134

APPENDICE E. CODICI INTEGRALI 128

135136137138 ## E r r o r e medio f i t e Sigma media139 def ErDvFit ( MaFit , s e r i e , Lf , nF , simul ) :140141 import numpy as np142143 errF=np . zeros ( [ 1 , simul ] , f l o a t )144 for i in range ( 0 , simul ) :145 for j in range ( 0 , Lf ) :146 errF [ 0 ] [ i ]= errF [ 0 ] [ i ] + ( MaFit [ j ] [ i ]−147 s e r i e [ len ( s e r i e )−Lf−nF+ j ] )∗∗2148149 ErDvFit =[np . mean( errF [ 0 ] ) / Lf , np . std ( errF [ 0 ] ) /150 ( ( simul ∗∗0 . 5 )∗ Lf ) ]151152 return ( ErDvFit )153154155 # E r r o r e medio p r e v i s i o n i su nF e SigmaErr156 def ErDvPre ( prevA , prevNA , s e r i e , nF , simul ) :157158 errA=0159 for i in range ( 0 , nF ) :160 errA=errA +(prevA [ 0 ] [ i ]− s e r i e161 [ len ( s e r i e )−nF+ i ] )∗∗2162163 SerrA=0164 for i in range ( 0 , nF ) :165 SerrA=SerrA +(2∗ ( prevA [ 0 ] [ i ]− s e r i e166 [ len ( s e r i e )−nF+ i ] )167 ∗prevA [ 1 ] [ i ]/ simul ∗∗0 . 5 )∗∗2168169 ErDvA=[ errA/nF , ( SerrA ∗∗0 . 5 ) / nF ]170171 errNA=0172 for i in range ( 0 , nF ) :173 errNA=errNA+(prevNA [ 0 ] [ i ]− s e r i e174 [ len ( s e r i e )−nF+ i ] )∗∗2175

APPENDICE E. CODICI INTEGRALI 129

176 SerrNA=0177 for i in range ( 0 , nF ) :178 SerrNA=SerrNA +(2∗ (prevNA [ 0 ] [ i ]− s e r i e179 [ len ( s e r i e )−nF+ i ] )180 ∗prevNA [ 1 ] [ i ]/ simul ∗∗0 . 5 )∗∗2181182 ErDvNA=[errNA/nF , ( SerrNA ∗∗0 . 5 ) / nF ]183184 return (ErDvA ,ErDvNA)185186187188 def StimaRn ( cn , s e r i e , ws , MxIt , wc ,hN, nF , dIn ,dOu ) :189190 cn . r . s e r i e = s e r i e191 cn . r . In=dIn192 cn . r .Ou=dOu193 cn . r . ws=ws194 cn . r .hN=hN195 cn . r . nF=nF196 cn . r . MxIt=MxIt197 cn . r . wc=wc198199 # p r e p a r i n g d a t a200 cn . r . useRows=len (dOu)−nF201 cn . r ( ’ useRowsCols=useRows∗ (ws−1) ’ )202203 cn . r ( ’ In = as . numeric ( In ) ’ )204 cn . r ( ’Ou = as . numeric (Ou) ’ )205 cn . r ( ’ s e r i e = as . numeric ( s e r i e ) ’ )206207 cn . r ( ’InM=matrix ( In [ 1 : useRowsCols ] ,208 ncol=ws−1 ,byrow=TRUE) ’ )209210 cn . r ( ’ k=1∗max( abs (max( s e r i e ) ) , abs ( min ( s e r i e ) ) ) ’ )211212 # n o r m a l i z z a z i o n e213 cn . r ( ’ a d j u s t = funct ion ( x , xmin , xmax )214 ( x+k−xmin ) / ( xmax+2∗k−xmin ) ’ )215 cn . r ( ’ unadjust = funct ion ( x , xmin , xmax )216 x ∗ (xmax−xmin+2∗k)−k+xmin ’ )

APPENDICE E. CODICI INTEGRALI 130

217218 # cn . r ( ’ InMA = a d j u s t ( InM , max ( s e r i e ) ) ’ )219 cn . r ( ’InMA = a d j u s t ( InM , min ( s e r i e ) , max( s e r i e ) ) ’ )220221222 # cn . r ( ’OuA = a d j u s t (Ou [ 1 : useRows ] , max ( s e r i e ) ) ’ )223 cn . r ( ’OuA = a d j u s t (Ou[ 1 : useRows ] ,224 min ( s e r i e ) , max( s e r i e ) ) ’ )225226227 cn . r . e r r =100228 e r r s = [ ]229 for i in range (wc ) :230 cn . r ( ’myNet=nnet ( x=InMA, y=OuA,231 s i z e =hN, maxit=MxIt ) ’ )232233 # s a v i n g t h e b e s t NN234 cn . r ( ’ er=sum( myNet$residuals ∗∗2) ’ )235 cn . r ( ’ i f ( er<e r r ) bestNet=myNet ’ )236 cn . r ( ’ i f ( er<e r r ) e r r =er ’ )237 e r r s . append ( cn . r . er )238239240 # v a l o r i f i t a t t i241 f i t =cn . r ( ’ b e s t N e t $ f i t t e d . values ’ )242 max=cn . r ( ’max( s e r i e ) ’ )243 min=cn . r ( ’min ( s e r i e ) ’ )244 k=cn . r . k245 f i t t a t i = f i t ∗ (max−min+2∗k)−k+min246247248 # p r e v i s i o n i a g g i o r n a t e249 cn . r ( ’ useRowsCols1=useRowsCols+1 ’ )250 cn . r . endRowsCols=len (dOu) ∗ ( ws−1)251 cn . r ( ’ InMLastPart=matrix ( In [ useRowsCols1 :252 endRowsCols ] , ncol=ws−1 ,byrow=TRUE) ’ )253254255256 cn . r ( ’ InMALastPart = a d j u s t257 ( InMLastPart , min ( s e r i e ) , max( s e r i e ) ) ’ )

APPENDICE E. CODICI INTEGRALI 131

258 cn . r ( ’ pred= p r e d i c t ( bestNet , InMALastPart ) ’ )259 # cn . r ( ’ p r i n t ( InMALastPart ) ’ )260 # cn . r ( ’ predAdj1 = u n a d j u s t ( pred , max ( s e r i e ) ) ’ )261 cn . r ( ’ predAdj1 = unadjust262 ( pred , min ( s e r i e ) , max( s e r i e ) ) ’ )263 PreA=cn . r . predAdj1264265266 # p r e v i s i o n i su p r e v i s i o n i267 cn . r ( ’v=InMALastPart [ 1 , ] ’ )268 for i in range ( 1 , nF + 1 ) :269 cn . r . i = i270271 cn . r ( ’ pred [ i ]= p r e d i c t ( bestNet , v ) ’ )272 for j in range ( 1 , cn . r ( ’ length ( v ) ’ ) ) :273 cn . r . j = j274 cn . r ( ’v [ j ]=v [ j +1] ’ )275 cn . r ( ’v [ length ( v ) ] = pred [ i ] ’ )276277 cn . r ( ’ predAdj2 = unadjust278 ( pred , min ( s e r i e ) , max( s e r i e ) ) ’ )279 PreNA=cn . r . predAdj2280281 return ( PreA , PreNA , f i t t a t i )

ARIMA

1 import m a t p l o t l i b . pyplot as p l t2 from ARIMAfunctions import ∗3 import pyRserve4 import numpy as np5 import csv6 from pylab import∗789

1011 # ############################## Input12 nF = input ( ”Numero punti p r e v i s t i : ” )

APPENDICE E. CODICI INTEGRALI 132

131415 f =open ( ”C:/ Percorso/5−ES . csv ” , ” r ” )1617 s e r i e = [ ]1819 for l i n e in f :20 l i n e = l i n e . r e p l a c e ( ” ; ” , ” ” ) . s p l i t ( )21 s e r i e . append ( f l o a t ( l i n e [ 0 ] ) )2223 f . c l o s e2425 cn=pyRserve . connect ( host=” l o c a l h o s t ” )26 cn . r ( ’ l i b r a r y ( f o r e c a s t ) ’ )272829 parameters ( cn , s e r i e , nF )303132 p = input ( ”Ordine AR ( p ) : ” )33 d = input ( ”Ordine d i f f e r e n z i a z i o n e ( d ) : ” )34 q = input ( ”Ordine MA ( q ) : ” )3536 ( previstiNA , erroreNA , previs t iA , erroreA , r es )=37 ARIMA( cn , s e r i e , nF , p , d , q )38394041 # ########################### Valuto e r r o r e p r e v i s i o n i42 e r r =043 for i in range ( 0 , nF ) :44 e r r = e r r +m. fabs ( ( ( prev i s t iA [ i ]− s e r i e45 [ len ( s e r i e )−nF+ i ] ) / s e r i e [ len ( s e r i e )−nF+ i ] ) )46 print ’ \nErrore percentuale medio punti a g g i o r n a t i : ’47 , e r r /nF∗100 , ’%’4849 e r r =050 for i in range ( 0 , nF ) :51 e r r = e r r +m. fabs ( ( ( previstiNA [ i ]− s e r i e52 [ len ( s e r i e )−nF+ i ] ) / s e r i e [ len ( s e r i e )−nF+ i ] ) )53 print ’ Errore percentuale medio punti non a g g i o r n a t i : ’ ,

APPENDICE E. CODICI INTEGRALI 133

54 e r r /nF∗100 , ’%\n ’555657 e r r =058 for i in range ( 0 , nF ) :59 e r r = e r r +m. fabs ( prev i s t iA [ i ]− s e r i e [ len ( s e r i e )−nF+ i ] )60 print ’ Errore a s s o l u t o medio punti a g g i o r n a t i : ’ , e r r /nF6162 e r r =063 for i in range ( 0 , nF ) :64 e r r = e r r +m. fabs ( previstiNA [ i ]− s e r i e [ len ( s e r i e )−nF+ i ] )65 print ’ Errore a s s o l u t o medio punti non a g g i o r n a t i : ’ ,66 e r r /nF , ’ \n ’676869 # ##############################70 g i u s t i =SegnoR ( previs t iA , previstiNA [ : ] , s e r i e , nF )71727374 # ############################## G r a f i c i75 p l t . r c ( ’ x t i c k ’ , l a b e l s i z e =14)76 p l t . r c ( ’ y t i c k ’ , l a b e l s i z e =14)7778 x = np . arange ( len ( s e r i e )−nF−1 , len ( s e r i e ) , 1 )79 primo =[ s e r i e [ len ( s e r i e )−nF−1]]80 zero = [0 ]818283 yA=np . concatenate ( ( primo , prev i s t iA ) )84 yerrA=np . concatenate ( ( zero , erroreA ) )85 p l t . p l o t ( x , yA)86 p l t . p l o t ( s e r i e , ’ ko ’ )87 e r r o r b a r ( x , yA, yerrA , fmt= ’ ro ’ )8889 g r a f i c o ( pl t , ” Valor i p r e v i s t i a g g i o r n a t i (ARIMA) ”90 , ”x” , ”y” , ” l a b e l 1 ” , ” l a b e l 2 ” )91 p l t . show ( )929394 yNA=np . concatenate ( ( primo , previstiNA ) )

APPENDICE E. CODICI INTEGRALI 134

95 yerrNA=np . concatenate ( ( zero , erroreNA ) )96 p l t . p l o t ( x ,yNA)97 p l t . p l o t ( s e r i e , ’ ko ’ )98 e r r o r b a r ( x , yNA, yerrNA , fmt= ’ ro ’ )99

100 g r a f i c o ( pl t , ” Valor i p r e v i s t i non a g g i o r n a t i (ARIMA) ” , ”x” ,101 ”y” , ” l a b e l 1 ” , ” l a b e l 2 ” )102103 p l t . show ( )104105106 PNA=np . zeros ( [ 1 2 , 1 ] , f l o a t )107 for i in range ( 0 , 1 2 ) :108 PNA[ i ]=yerrNA [ i ]

Funzioni ARIMA

1 def g r a f i c o ( pl t , t i t o l o , x labe l , y label , legend1 , legend2 ) :2 p l t . x l a b e l ( x labe l , f o n t s i z e =20 , fontweight= ’ bold ’ )3 p l t . y l a b e l ( y label , f o n t s i z e =20 , fontweight= ’ bold ’ )4 p l t . t i t l e ( t i t o l o , f o n t s i z e =25 , p o s i t i o n = ( 0 . 5 , 1 . 0 5 )5 , fontweight= ’ bold ’ )6 # , f o n t w e i g h t = ’ b o l d ’7 # p l t . l e g e n d ( ( l egend1 , l e g e n d 2 ) ,8 # ’ upper c e n t e r ’ , shadow=True )9 # p l t . g r i d ( F a l s e )

10 # p l t . x l im ( [ 9 5 , 1 0 5 ] )11 # p l t . x t i c k s ( [ 0 , 60 , 1 1 0 ] , [ ’ mon ’ , ’ t u e ’ , ’ wed ’ ] )12131415 def parameters ( cn , s e r i e , nf ) :16 cn . r . s e r i e = s e r i e17 cn . r . nf=nf18 cn . r . L=len ( s e r i e )1920 cn . r ( ’ s e r i e = as . numeric ( s e r i e ) ’ )21 cn . r ( ’ order<−auto . arima ( s e r i e [ 1 : ( L−nf ) ] , t r a c e =TRUE) ’ )22 cn . r ( ’ p r i n t ( order ) ’ )

APPENDICE E. CODICI INTEGRALI 135

23 # cn . r ( ’ p r i n t ( s e r i e [ 1 : ( L−nf ) ] ) ’ )2425262728 def TradingL ( prev1 , prev2 , Ser ie , nF ) :2930 u t i l e 1 =031 for i in range ( 0 , nF , 1 ) :32 if prev1 [ i ] > S e r i e [−nF−1+ i ] :33 u t i l e 1 = u t i l e 1 + S e r i e [−nF+ i ]− S e r i e [−nF−1+ i ]34 else :35 u t i l e 1 = u t i l e 1 + S e r i e [−nF−1+ i ]− S e r i e [−nF+ i ]3637 u t i l e 2 =038 if prev2 [−1] > S e r i e [−nF−1] :39 u t i l e 2 = S e r i e [−1]− S e r i e [−nF−1]40 else :41 u t i l e 2 = S e r i e [−nF−1]−S e r i e [−1]4243 return ( u t i l e 1 , u t i l e 2 )44454647 def SegnoR2 ( prevA , prevNA , s e r i e , nF ) :4849 s i g n i f i c a t i v i A =050 z e r i 1 =051 giust iA =052 for i in range ( 0 , nF ) :53 if prevA [ 0 ] [ i ] ∗ ( prevA [ 0 ] [ i ]+prevA [ 1 ] [ i ])>054 and prevA [ 0 ] [ i ] ∗ ( prevA [ 0 ] [ i ]−prevA [ 1 ] [ i ] ) >0 :55 s i g n i f i c a t i v i A = s i g n i f i c a t i v i A +15657 if s e r i e [−nF+ i ]==0 :58 z e r i 1 = z e r i 1 +15960 if ( prevA [ 0 ] [ i ]>0 and s e r i e [−nF+ i ]>0)61 or ( prevA [ 0 ] [ i ]<0 and s e r i e [−nF+ i ] <0) :62 giust iA=giust iA +163

APPENDICE E. CODICI INTEGRALI 136

6465 s i g n i f i c a t i v i N A =066 z e r i 2 =067 giustiNA=068 for i in range ( 0 , nF ) :69 if prevNA [ 0 ] [ i ] ∗ ( prevNA [ 0 ] [ i ]+70 prevNA [ 1 ] [ i ])>071 and prevNA [ 0 ] [ i ] ∗ ( prevNA [ 0 ] [ i ]72 −prevNA [ 1 ] [ i ] ) >0 :73 s i g n i f i c a t i v i N A = s i g n i f i c a t i v i N A +17475 if s e r i e [−nF+ i ]==0 :76 z e r i 2 = z e r i 2 +17778 if ( prevNA [ 0 ] [ i ]>0 and s e r i e [−nF+ i ]>0)79 or ( prevNA [ 0 ] [ i ]<0 and s e r i e [−nF+ i ] <0) :80 giustiNA=giustiNA+18182 if s i g n i f i c a t i v i A ==0 or s i g n i f i c a t i v i A == z e r i 1 :83 GiustiA = [ 0 , 0 ]84 else :85 GiustiA =[ s i g n i f i c a t i v i A −zer i1 , g iust iA/86 f l o a t ( s i g n i f i c a t i v i A −z e r i 1 ) ]8788 if s i g n i f i c a t i v i N A ==0 or s i g n i f i c a t i v i N A == z e r i 2 :89 GiustiNA = [ 0 , 0 ]90 else :91 GiustiNA =[ s i g n i f i c a t i v i N A−zer i2 , giustiNA/92 f l o a t ( s i g n i f i c a t i v i N A−z e r i 2 ) ]9394 return ( GiustiA , GiustiNA )95969798 def SegnoR ( prevA , prevNA , s e r i e , nF ) :99

100101 z e r i =0102 for i in range ( 0 , nF ) :103 if s e r i e [−nF+ i ]==0 :104 z e r i = z e r i +1

APPENDICE E. CODICI INTEGRALI 137

105106 giust iA =0107 for i in range ( 0 , nF ) :108 if ( prevA [ i ]>0 and s e r i e [−nF+ i ]>0)109 or ( prevA [ i ]<0 and s e r i e [−nF+ i ] <0) :110 giust iA=giust iA +1111112113 giustiNA=0114 for i in range ( 0 , nF ) :115 if ( prevNA [ i ]>0 and s e r i e [−nF+ i ]>0)116 or ( prevNA [ i ]<0 and s e r i e [−nF+ i ] <0) :117 giustiNA=giustiNA+1118119120 g i u s t i =[ g iust iA/ f l o a t ( nF−z e r i ) ,121 giustiNA/ f l o a t ( nF−z e r i ) ]122123 return ( g i u s t i )124125126127 ## E r r o r e medio p r e v i s i o n i su nF ( i n v a r i a n z a su nF )128 def ErDvPre ( prevA , prevNA , s e r i e , nF ) :129130 errA=0131 for i in range ( 0 , nF ) :132 errA=errA +(prevA [ 0 ] [ i ]− s e r i e133 [ len ( s e r i e )−nF+ i ] )∗∗2134135136 errNA=0137 for i in range ( 0 , nF ) :138 errNA=errNA+(prevNA [ 0 ] [ i ]− s e r i e139 [ len ( s e r i e )−nF+ i ] )∗∗2140141142 ErPre =[ errA/nF , errNA/nF ]143144 return ( ErPre )145

APPENDICE E. CODICI INTEGRALI 138

146147 # sigma / p r e v i s i o n e148 def ErStima ( PrevA , PrevNA , nF ) :149150 import math as m151152153 erA=0154 for i in range ( 0 , nF ) :155 erA=erA+m. fabs ( PrevA [ 1 ] [ i ]/PrevA [ 0 ] [ i ] )156157 erNA=0158 for i in range ( 0 , nF ) :159 erNA=erNA+m. fabs ( PrevNA [ 1 ] [ i ]/PrevNA [ 0 ] [ i ] )160161 ErStima =[erA/nF , erNA/nF ]162163 return ( ErStima )164165166 ## E r r o r e f i t167 def E r F i t ( res , Ls , nF ) :168169 Lf=Ls−nF170171 E r F i t =0172 for i in range ( 0 , Lf ) :173 E r F i t = E r F i t +re s [ i ]∗∗2174175176 return ( E r F i t /Lf )177178179180 def ARIMA( cn , s e r i e , nF , p , d , q ) :181 import numpy as np182183184 cn . r . s e r i e = s e r i e185 cn . r . nF=nF186 cn . r . p=p

APPENDICE E. CODICI INTEGRALI 139

187 cn . r . d=d188 cn . r . q=q189190 cn . r . l =len ( s e r i e )191192 cn . r ( ’ s e r i e = as . numeric ( s e r i e ) ’ )193194 # V a l o r i non a g g i o r n a t i195 cn . r ( ’ f i t <−arima ( s e r i e [ 1 : ( l−nF ) ] , order=c ( p , d , q ) ) ’ )196 cn . r ( ’ previs ione<−p r e d i c t ( f i t , n . ahead=nF ) ’ )197 cn . r ( ’ re s= f i t $ r e s i d u a l s ’ )198 re s=cn . r . re s199200 cn . r ( ’ previstiNA=previs ione$pred ’ )201 cn . r ( ’ erroreNA=prev is ione$se ’ )202 cn . r ( ’ p r i n t ( erroreNA ) ’ )203204 previstiNA=cn . r . previstiNA205 erroreNA=cn . r . erroreNA206207208 # V a l o r i a g g i o r n a t i209 prev i s t iA=np . zeros ( [ nF , 1 ] , f l o a t )210 erroreA=np . zeros ( [ nF , 1 ] , f l o a t )211 c = [ ]212 d = [ ]213 for i in range ( 0 , nF ) :214215 cn . r . i = i216 cn . r ( ’ f i t <−arima ( s e r i e [ 1 : ( l−nF+ i ) ] ,217 order=c ( p , q , d ) ) ’ )218 cn . r ( ’ previs ione<−p r e d i c t ( f i t , n . ahead =1) ’ )219220 cn . r ( ’ prev i s t iA=previs ione$pred ’ )221 cn . r ( ’ erroreA=prev i s ione$se ’ )222223 a=cn . r . prev i s t iA224 b=cn . r . erroreA225226 c . append ( a )227 d . append ( b )

APPENDICE E. CODICI INTEGRALI 140

228229 prev i s t iA [ i , 0 ] = c [ i ]230 erroreA [ i , 0 ] = d [ i ]231232233 prev i s t iA=prev i s t iA [ : , 0 ]234 erroreA=erroreA [ : , 0 ]235236 cn . c l o s e ( )237238239 return ( previstiNA , erroreNA , previs t iA , erroreA , r es )

Simulazioni reti neurali

1 import numpy as np2 import csv3 from RnSimulFun import∗456 simul =1007 nF=1289 #hN=5

10 #MxIt=10011 #wc=1012 #ws=12131415 VhN= [ 2 , 5 , 1 0 ]16 VMxIt =[10 , 100 , 1000 ]17 Vwc= [ 1 , 2 , 1 0 ]18 Vws= [ 6 , 1 2 , 2 4 ]192021 f =open ( ”C:/ Percorso/RZ−70. csv ” , ” r ” )2223 s e r i e = [ ]24

APPENDICE E. CODICI INTEGRALI 141

25 for l i n e in f :26 l i n e = l i n e . r e p l a c e ( ” ; ” , ” ” ) . s p l i t ( )27 s e r i e . append ( f l o a t ( l i n e [ 0 ] ) )2829 f . c l o s e3031 Nzeri= z e r i ( s e r i e , nF )3233 MErFit=np . zeros ( [ len (VhN) , len ( VMxIt ) ,34 len (Vwc) , len (Vws ) ] , f l o a t )35 MDvFit=np . zeros ( [ len (VhN) , len ( VMxIt ) ,36 len (Vwc) , len (Vws ) ] , f l o a t )37 MErStimaA=np . zeros ( [ len (VhN) , len ( VMxIt ) ,38 len (Vwc) , len (Vws ) ] , f l o a t )39 MErStimaNA=np . zeros ( [ len (VhN) , len ( VMxIt ) ,40 len (Vwc) , len (Vws ) ] , f l o a t )41 MErA=np . zeros ( [ len (VhN) , len ( VMxIt ) , len (Vwc) ,42 len (Vws ) ] , f l o a t )43 MDvErA=np . zeros ( [ len (VhN) , len ( VMxIt ) , len (Vwc) ,44 len (Vws ) ] , f l o a t )45 MErNA=np . zeros ( [ len (VhN) , len ( VMxIt ) , len (Vwc) ,46 len (Vws ) ] , f l o a t )47 MDvErNA=np . zeros ( [ len (VhN) , len ( VMxIt ) , len (Vwc) ,48 len (Vws ) ] , f l o a t )49 MgiustiA=np . zeros ( [ len (VhN) , len ( VMxIt ) , len (Vwc) ,50 len (Vws ) ] , f l o a t )51 MgiustiNA=np . zeros ( [ len (VhN) , len ( VMxIt ) , len (Vwc) ,52 len (Vws ) ] , f l o a t )53 M s i g n i f i c a t i v i 2 A=np . zeros ( [ len (VhN) , len ( VMxIt ) ,54 len (Vwc) , len (Vws ) ] , f l o a t )55 Mgiusti2A=np . zeros ( [ len (VhN) , len ( VMxIt ) , len (Vwc) ,56 len (Vws ) ] , f l o a t )57 Msignif icat ivi2NA=np . zeros ( [ len (VhN) , len ( VMxIt ) ,58 len (Vwc) , len (Vws ) ] , f l o a t )59 Mgiusti2NA=np . zeros ( [ len (VhN) , len ( VMxIt ) , len (Vwc) ,60 len (Vws ) ] , f l o a t )616263 tempo=064 for i in range ( 0 , len (VhN ) ) :65 for j in range ( 0 , len ( VMxIt ) ) :

APPENDICE E. CODICI INTEGRALI 142

66 for k in range ( 0 , len (Vwc ) ) :67 for h in range ( 0 , len (Vws ) ) :68 ( ErDvFit , ErMed , ErDvA , ErDvNA,69 g i u s t i , g i u s t i 2 )70 =RnSimulFun ( s e r i e , simul ,VhN[ i ] , VMxIt [ j ] ,71 Vwc[ k ] ,Vws[ h ] , nF )7273 MErFit [ i ] [ j ] [ k ] [ h]= ErDvFit [ 0 ]74 MDvFit [ i ] [ j ] [ k ] [ h]= ErDvFit [ 1 ]75 MErStimaA [ i ] [ j ] [ k ] [ h]=ErMed [ 0 ]76 MErStimaNA [ i ] [ j ] [ k ] [ h]=ErMed [ 1 ]77 MErA[ i ] [ j ] [ k ] [ h]=ErDvA [ 0 ]78 MDvErA[ i ] [ j ] [ k ] [ h]=ErDvA [ 1 ]79 MErNA[ i ] [ j ] [ k ] [ h]=ErDvNA[ 0 ]80 MDvErNA[ i ] [ j ] [ k ] [ h]=ErDvNA[ 1 ]81 MgiustiA [ i ] [ j ] [ k ] [ h]= g i u s t i [ 0 ]82 MgiustiNA [ i ] [ j ] [ k ] [ h]= g i u s t i [ 1 ]83 M s i g n i f i c a t i v i 2 A [ i ] [ j ] [ k ] [ h]=84 g i u s t i 2 [ 0 ] [ 0 ]85 Mgiusti2A [ i ] [ j ] [ k ] [ h]= g i u s t i 2 [ 0 ] [ 1 ]86 Msignif icat ivi2NA [ i ] [ j ] [ k ] [ h]=87 g i u s t i 2 [ 1 ] [ 0 ]88 Mgiusti2NA [ i ] [ j ] [ k ] [ h]= g i u s t i 2 [ 1 ] [ 1 ]8990 tempo=tempo+191 print ’ tempo : ’ , tempo9293 # Cerco e r r o r i minimi : F i t , PrevA , PrevNA94 ( MinErFit , ParErF i t )=MIN( MErFit )95 ( MinErPreA , ParErA )=MIN(MErA)96 ( MinErPreNA , ParErNA)=MIN(MErNA)979899 # Cerco G i u s t i max : t u t t e P A/NA, PS A/NA

100 ( MaxGiustiA , ParGiustiA )=MAX( MgiustiA )101 ( MaxGiustiNA , ParGiustiNA )=MAX( MgiustiNA )102 ( MaxGiusti2A , ParGiusti2A )=MAX( Mgiusti2A )103 ( MaxGiusti2NA , ParGiusti2NA )=MAX( Mgiusti2NA )104105106 # Riempo v e t t o r i c o i v a l o r i d e g l i i n d i c a t o r i

APPENDICE E. CODICI INTEGRALI 143

107 # r e l a t i v i a l l e c o o r d i n a t e s e l e z i o n a t e108 BestF=np . zeros ( [ 9 , 1 ] )109 BestF [ 0 ] [ 0 ] = MErFit [ ParErF i t [ 0 ] [ 0 ] ] [ ParErF i t [ 1 ] [ 0 ] ]110 [ ParErF i t [ 2 ] [ 0 ] ] [ ParErF i t [ 3 ] [ 0 ] ]111 BestF [ 1 ] [ 0 ] =MErA[ ParErF i t [ 0 ] [ 0 ] ] [ ParErF i t [ 1 ] [ 0 ] ]112 [ ParErF i t [ 2 ] [ 0 ] ] [ ParErF i t [ 3 ] [ 0 ] ]113 BestF [ 2 ] [ 0 ] =MErNA[ ParErF i t [ 0 ] [ 0 ] ] [ ParErF i t [ 1 ] [ 0 ] ]114 [ ParErF i t [ 2 ] [ 0 ] ] [ ParErF i t [ 3 ] [ 0 ] ]115 BestF [ 3 ] [ 0 ] = MgiustiA [ ParErF i t [ 0 ] [ 0 ] ] [ ParErF i t [ 1 ] [ 0 ] ]116 [ ParErF i t [ 2 ] [ 0 ] ] [ ParErF i t [ 3 ] [ 0 ] ]117 BestF [ 4 ] [ 0 ] = MgiustiNA [ ParErF i t [ 0 ] [ 0 ] ] [ ParErF i t [ 1 ] [ 0 ] ]118 [ ParErF i t [ 2 ] [ 0 ] ] [ ParErF i t [ 3 ] [ 0 ] ]119 BestF [ 5 ] [ 0 ] = Mgiusti2A [ ParErF i t [ 0 ] [ 0 ] ] [ ParErF i t [ 1 ] [ 0 ] ]120 [ ParErF i t [ 2 ] [ 0 ] ] [ ParErF i t [ 3 ] [ 0 ] ]121122 BestF [ 6 ] [ 0 ] = M s i g n i f i c a t i v i 2 A [ ParErF i t [ 0 ] [ 0 ] ]123 [ ParErF i t [ 1 ] [ 0 ] ] [ ParErF i t [ 2 ] [ 0 ] ] [ ParErF i t [ 3 ] [ 0 ] ]124 BestF [ 7 ] [ 0 ] = Mgiusti2NA [ ParErF i t [ 0 ] [ 0 ] ] [ ParErF i t [ 1 ] [ 0 ] ]125 [ ParErF i t [ 2 ] [ 0 ] ] [ ParErF i t [ 3 ] [ 0 ] ]126 BestF [ 8 ] [ 0 ] = Msignif icat ivi2NA [ ParErF i t [ 0 ] [ 0 ] ]127 [ ParErF i t [ 1 ] [ 0 ] ] [ ParErF i t [ 2 ] [ 0 ] ] [ ParErF i t [ 3 ] [ 0 ] ]128129130131 BestPA=np . zeros ( [ 9 , 1 ] )132 BestPA [ 0 ] [ 0 ] = MErFit [ ParErA [ 0 ] [ 0 ] ] [ ParErA [ 1 ] [ 0 ] ]133 [ ParErA [ 2 ] [ 0 ] ] [ ParErA [ 3 ] [ 0 ] ]134 BestPA [ 1 ] [ 0 ] =MErA[ ParErA [ 0 ] [ 0 ] ] [ ParErA [ 1 ] [ 0 ] ]135 [ ParErA [ 2 ] [ 0 ] ] [ ParErA [ 3 ] [ 0 ] ]136 BestPA [ 2 ] [ 0 ] =MErNA[ ParErA [ 0 ] [ 0 ] ] [ ParErA [ 1 ] [ 0 ] ]137 [ ParErA [ 2 ] [ 0 ] ] [ ParErA [ 3 ] [ 0 ] ]138 BestPA [ 3 ] [ 0 ] = MgiustiA [ ParErA [ 0 ] [ 0 ] ] [ ParErA [ 1 ] [ 0 ] ]139 [ ParErA [ 2 ] [ 0 ] ] [ ParErA [ 3 ] [ 0 ] ]140 BestPA [ 4 ] [ 0 ] = MgiustiNA [ ParErA [ 0 ] [ 0 ] ] [ ParErA [ 1 ] [ 0 ] ]141 [ ParErA [ 2 ] [ 0 ] ] [ ParErA [ 3 ] [ 0 ] ]142 BestPA [ 5 ] [ 0 ] = Mgiusti2A [ ParErA [ 0 ] [ 0 ] ] [ ParErA [ 1 ] [ 0 ] ]143 [ ParErA [ 2 ] [ 0 ] ] [ ParErA [ 3 ] [ 0 ] ]144145 BestPA [ 6 ] [ 0 ] = M s i g n i f i c a t i v i 2 A [ ParErA [ 0 ] [ 0 ] ]146 [ ParErA [ 1 ] [ 0 ] ] [ ParErA [ 2 ] [ 0 ] ] [ ParErA [ 3 ] [ 0 ] ]147 BestPA [ 7 ] [ 0 ] = Mgiusti2NA [ ParErA [ 0 ] [ 0 ] ] [ ParErA [ 1 ] [ 0 ] ]

APPENDICE E. CODICI INTEGRALI 144

148 [ ParErA [ 2 ] [ 0 ] ] [ ParErA [ 3 ] [ 0 ] ]149 BestPA [ 8 ] [ 0 ] = Msignif icat ivi2NA [ ParErA [ 0 ] [ 0 ] ]150 [ ParErA [ 1 ] [ 0 ] ] [ ParErA [ 2 ] [ 0 ] ] [ ParErA [ 3 ] [ 0 ] ]151152153154 BestPNA=np . zeros ( [ 9 , 1 ] )155 BestPNA [ 0 ] [ 0 ] = MErFit [ ParErNA [ 0 ] [ 0 ] ] [ ParErNA [ 1 ] [ 0 ] ]156 [ ParErNA [ 2 ] [ 0 ] ] [ ParErNA [ 3 ] [ 0 ] ]157 BestPNA [ 1 ] [ 0 ] =MErA[ ParErNA [ 0 ] [ 0 ] ] [ ParErNA [ 1 ] [ 0 ] ]158 [ ParErNA [ 2 ] [ 0 ] ] [ ParErNA [ 3 ] [ 0 ] ]159 BestPNA [ 2 ] [ 0 ] =MErNA[ ParErNA [ 0 ] [ 0 ] ] [ ParErNA [ 1 ] [ 0 ] ]160 [ ParErNA [ 2 ] [ 0 ] ] [ ParErNA [ 3 ] [ 0 ] ]161 BestPNA [ 3 ] [ 0 ] = MgiustiA [ ParErNA [ 0 ] [ 0 ] ] [ ParErNA [ 1 ] [ 0 ] ]162 [ ParErNA [ 2 ] [ 0 ] ] [ ParErNA [ 3 ] [ 0 ] ]163 BestPNA [ 4 ] [ 0 ] = MgiustiNA [ ParErNA [ 0 ] [ 0 ] ] [ ParErNA [ 1 ] [ 0 ] ]164 [ ParErNA [ 2 ] [ 0 ] ] [ ParErNA [ 3 ] [ 0 ] ]165 BestPNA [ 5 ] [ 0 ] = Mgiusti2A [ ParErNA [ 0 ] [ 0 ] ] [ ParErNA [ 1 ] [ 0 ] ]166 [ ParErNA [ 2 ] [ 0 ] ] [ ParErNA [ 3 ] [ 0 ] ]167168 BestPNA [ 6 ] [ 0 ] = M s i g n i f i c a t i v i 2 A [ ParErNA [ 0 ] [ 0 ] ]169 [ ParErNA [ 1 ] [ 0 ] ] [ ParErNA [ 2 ] [ 0 ] ] [ ParErNA [ 3 ] [ 0 ] ]170 BestPNA [ 7 ] [ 0 ] = Mgiusti2NA [ ParErNA [ 0 ] [ 0 ] ] [ ParErNA [ 1 ] [ 0 ] ]171 [ ParErNA [ 2 ] [ 0 ] ] [ ParErNA [ 3 ] [ 0 ] ]172 BestPNA [ 8 ] [ 0 ] = Msignif icat ivi2NA [ ParErNA [ 0 ] [ 0 ] ]173 [ ParErNA [ 1 ] [ 0 ] ] [ ParErNA [ 2 ] [ 0 ] ] [ ParErNA [ 3 ] [ 0 ] ]174175176177 MatriceBestP=np . zeros ( [ 3 , 4 ] )178 MatriceBestP [ 0 ] = ParErF i t . T [ 0 ]179 MatriceBestP [ 1 ] = ParErA . T [ 0 ]180 MatriceBestP [ 2 ] = ParErNA . T [ 0 ]181182 MatriceBestV=np . zeros ( [ 3 , 9 ] )183 MatriceBestV [ 0 ] = BestF . T184 MatriceBestV [ 1 ] = BestPA . T185 MatriceBestV [ 2 ] = BestPNA . T186187188 percorsoRN=r ”C:/ Percorso/MatriceBestRN −100. csv ”

APPENDICE E. CODICI INTEGRALI 145

189190 f =open ( percorsoRN , ”wb” )191 s c r i t t u r a = csv . w r i t e r ( f , d e l i m i t e r = ’ ; ’ )192193 s c r i t t u r a . writerow ( [ ”nF” , ” z e r i ” ] )194 s c r i t t u r a . writerow ( [ nF , Nzeri ] )195 s c r i t t u r a . writerow ( [ ” CoBestFi t (hN MxIt wc ws) ”196 , ”CoBestPA” , ”CoBestPNA” ] )197 s c r i t t u r a . writerows ( MatriceBestP . T )198 s c r i t t u r a . writerow ( [ ” Valor i199 ( F i t PA PNA GA GNA G2A S2A G2NA S2NA) ” ,200 ” Valor i ” , ” Valor i ” ] )201 s c r i t t u r a . writerows ( MatriceBestV . T )202203 f . c l o s e ( )

Funzioni simulazioni reti neurali

1 def RnSimulFun ( s e r i e , simul ,hN, MxIt , wc , ws , nF ) :23 import numpy as np4 from RnFunctions import∗5 import pyRserve67 cn=pyRserve . connect ( host=” l o c a l h o s t ” )8 cn . r ( ’ l i b r a r y ( nnet ) ’ )9

1011 dataIn = [ ]12 dataOu = [ ]13 makeWindow(ws , s e r i e , dataIn , dataOu )141516 # ####################### P r e v i s i o n i e f i t17 MaPreA=np . zeros ( [ nF , simul ] , f l o a t )18 MaPreNA=np . zeros ( [ nF , simul ] , f l o a t )19 MaFit=np . zeros ( [ len ( s e r i e )−nF−ws+1 , simul ] , f l o a t )20 for j in range ( 0 , simul ) :21 ( PreA , PreNA , f i t t a t i )= StimaRn ( cn , s e r i e , ws ,

APPENDICE E. CODICI INTEGRALI 146

22 MxIt , wc ,hN, nF , dataIn , dataOu )23 for i in range ( 0 , nF ) :24 MaPreA[ i ] [ j ]=PreA [ i ] [ 0 ]25 MaPreNA[ i ] [ j ]=PreNA[ i ] [ 0 ]2627 for i in range ( 0 , len ( s e r i e )−nF−ws+ 1 ) :28 MaFit [ i ] [ j ]= f i t t a t i [ i ] [ 0 ]2930 # ######################## Media e DevStd31 MaMeStdA=np . zeros ( [ 2 , nF ] , f l o a t )32 for i in range ( 0 , nF ) :33 MaMeStdA [ 0 ] [ i ]=np . mean(MaPreA[ i ] )34 MaMeStdA [ 1 ] [ i ]=np . std (MaPreA[ i ] )353637 MaMeStdNA=np . zeros ( [ 2 , nF ] , f l o a t )38 for i in range ( 0 , nF ) :39 MaMeStdNA [ 0 ] [ i ]=np . mean(MaPreNA[ i ] )40 MaMeStdNA [ 1 ] [ i ]=np . std (MaPreNA[ i ] )4142 Lf=len ( s e r i e )−(ws−1)−nF43 MaMeStdFit=np . zeros ( [ 2 , Lf ] , f l o a t )44 for i in range ( 0 , Lf ) :45 MaMeStdFit [ 0 ] [ i ]=np . mean( MaFit [ i ] )46 MaMeStdFit [ 1 ] [ i ]=np . std ( MaFit [ i ] )4748 # ######################## Valuto e r r o r i e s e g n i4950 ErMed=ErMed (MaMeStdA, MaMeStdNA, nF , simul )5152 ErDvFit=ErDvFit ( MaFit , s e r i e , Lf , nF , simul )5354 (ErDvA ,ErDvNA)= ErDvPre (MaMeStdA,55 MaMeStdNA, s e r i e , nF , simul )5657 g i u s t i =SegnoR (MaMeStdA [ 0 ] ,MaMeStdNA[ 0 ] , s e r i e , nF )58 g i u s t i 2 =SegnoR2 (MaMeStdA,MaMeStdNA, s e r i e , nF , simul )596061 cn . c l o s e ( )62

APPENDICE E. CODICI INTEGRALI 147

63 return ( ErDvFit , ErMed , ErDvA , ErDvNA, g i u s t i , g i u s t i 2 )64656667 def MAX( Matrice ) :68 import numpy as np6970 Max=071 par i =072 for i in range ( 0 , 3 ) :73 for j in range ( 0 , 3 ) :74 for k in range ( 0 , 3 ) :75 for h in range ( 0 , 3 ) :76 if Matrice [ i ] [ j ] [ k ] [ h]>=Max :77 Max=Matrice [ i ] [ j ] [ k ] [ h ]7879 for i in range ( 0 , 3 ) :80 for j in range ( 0 , 3 ) :81 for k in range ( 0 , 3 ) :82 for h in range ( 0 , 3 ) :83 if Matrice [ i ] [ j ] [ k ] [ h]==Max :84 par i=par i +185 z=086 Parametri=np . zeros ( [ 4 , par i ] , f l o a t )87 for i in range ( 0 , 3 ) :88 for j in range ( 0 , 3 ) :89 for k in range ( 0 , 3 ) :90 for h in range ( 0 , 3 ) :91 if Matrice [ i ] [ j ] [ k ] [ h]==Max :92 Parametri [ 0 ] [ z ]= i93 Parametri [ 1 ] [ z ]= j94 Parametri [ 2 ] [ z ]=k95 Parametri [ 3 ] [ z ]=h96 z=z+19798 return (Max, Parametri )99

100101 # a g g i u n g e r e DevStd ?102 def MIN( Matrice ) :103 import numpy as np

APPENDICE E. CODICI INTEGRALI 148

104105 Min=1106 par i =0107 for i in range ( 0 , 3 ) :108 for j in range ( 0 , 3 ) :109 for k in range ( 0 , 3 ) :110 for h in range ( 0 , 3 ) :111 if Matrice [ i ] [ j ] [ k ] [ h]<=Min :112 Min=Matrice [ i ] [ j ] [ k ] [ h ]113114 for i in range ( 0 , 3 ) :115 for j in range ( 0 , 3 ) :116 for k in range ( 0 , 3 ) :117 for h in range ( 0 , 3 ) :118 if Matrice [ i ] [ j ] [ k ] [ h]==Min :119 par i=par i +1120121 z=0122 Parametri=np . zeros ( [ 4 , par i ] , f l o a t )123 for i in range ( 0 , 3 ) :124 for j in range ( 0 , 3 ) :125 for k in range ( 0 , 3 ) :126 for h in range ( 0 , 3 ) :127 if Matrice [ i ] [ j ] [ k ] [ h]==Min :128 Parametri [ 0 ] [ z ]= i129 Parametri [ 1 ] [ z ]= j130 Parametri [ 2 ] [ z ]=k131 Parametri [ 3 ] [ z ]=h132 z=z+1133134135 return ( Min , Parametri )136137138139 def MePeG2( Giust i , S i g n i f i c a t i v i ) :140 import numpy as np141142 M=np . zeros ( [ 3 , 3 , 3 , 3 ] , f l o a t )143 for i in range ( 0 , 3 ) :144 for j in range ( 0 , 3 ) :

APPENDICE E. CODICI INTEGRALI 149

145 for k in range ( 0 , 3 ) :146 for h in range ( 0 , 3 ) :147 M[ i ] [ j ] [ k ] [ h]= G i u s t i [ i ] [ j ] [ k ] [ h ]148 ∗ S i g n i f i c a t i v i [ i ] [ j ] [ k ] [ h ]149 sommaM=np . sum(M)150 sommaS=np . sum( S i g n i f i c a t i v i )151152 if sommaS==0:153 MePe=0154 else :155 MePe=sommaM/sommaS156 v e t t o r e =[MePe , sommaS]157158 return ( v e t t o r e )159160161 def Nsigma ( freq , campione ) :162 import math as m163164 g i u s t i = f r e q ∗campione165 media=campione/ f l o a t ( 2 )166 sigma =( campione/ f l o a t ( 4 ) ) ∗ ∗ 0 . 5167 Nsigma=( g i u s t i −media )/ sigma168169 return ( Nsigma )170171172 def z e r i ( s e r i e , nF ) :173174 z e r i =0175 for i in range ( 0 , nF ) :176 if s e r i e [−1− i ]==0 :177 z e r i = z e r i +1178179 return ( z e r i )

Simulazioni ARIMA

1 import numpy as np

APPENDICE E. CODICI INTEGRALI 150

2 import csv3 from ARIMAsimFun import∗4567 nF=128 #p=09 d=0

10 #q=31112 Vp= [ 0 , 1 , 2 , 3 ]13 Vq= [ 0 , 1 , 2 , 3 ]141516 f =open ( ”C:/ Percorso/RM−70. csv ” , ” r ” )171819 s e r i e = [ ]2021 for l i n e in f :22 l i n e = l i n e . r e p l a c e ( ” , ” , ” ” ) . s p l i t ( )23 s e r i e . append ( f l o a t ( l i n e [ 0 ] ) )2425 f . c l o s e2627 Nzeri= z e r i ( s e r i e , nF )282930 MErFit=np . zeros ( [ len (Vp) , len (Vq ) ] , f l o a t )31 MErStimaA=np . zeros ( [ len (Vp) , len (Vq ) ] , f l o a t )32 MErStimaNA=np . zeros ( [ len (Vp) , len (Vq ) ] , f l o a t )33 MErPreA=np . zeros ( [ len (Vp) , len (Vq ) ] , f l o a t )34 MErPreNA=np . zeros ( [ len (Vp) , len (Vq ) ] , f l o a t )35 MgiustiA=np . zeros ( [ len (Vp) , len (Vq ) ] , f l o a t )36 MgiustiNA=np . zeros ( [ len (Vp) , len (Vq ) ] , f l o a t )37 M s i g n i f i c a t i v i 2 A=np . zeros ( [ len (Vp) , len (Vq ) ] , f l o a t )38 Mgiusti2A=np . zeros ( [ len (Vp) , len (Vq ) ] , f l o a t )39 Msignif icat ivi2NA=np . zeros ( [ len (Vp) , len (Vq ) ] , f l o a t )40 Mgiusti2NA=np . zeros ( [ len (Vp) , len (Vq ) ] , f l o a t )4142

APPENDICE E. CODICI INTEGRALI 151

43 for i in range ( 0 , len (Vp ) ) :44 for j in range ( 0 , len (Vq ) ) :4546 ( ErFi t , ErStima , ErPre , g i u s t i , g i u s t i 2 )=47 ARIMAfun( s e r i e , nF , Vp[ i ] , d , Vq[ j ] )4849 MErFit [ i ] [ j ]= E r F i t50 MErStimaA [ i ] [ j ]= ErStima [ 0 ]51 MErStimaNA [ i ] [ j ]= ErStima [ 1 ]52 MErPreA [ i ] [ j ]= ErPre [ 0 ]53 MErPreNA[ i ] [ j ]= ErPre [ 1 ]54 MgiustiA [ i ] [ j ]= g i u s t i [ 0 ]55 MgiustiNA [ i ] [ j ]= g i u s t i [ 1 ]56 M s i g n i f i c a t i v i 2 A [ i ] [ j ]= g i u s t i 2 [ 0 ] [ 0 ]57 Mgiusti2A [ i ] [ j ]= g i u s t i 2 [ 0 ] [ 1 ]58 Msignif icat ivi2NA [ i ] [ j ]= g i u s t i 2 [ 1 ] [ 0 ]59 Mgiusti2NA [ i ] [ j ]= g i u s t i 2 [ 1 ] [ 1 ]606162 # Cerco e r r o r i minimi : F i t , PrevA , PrevNA63 ( MinErFit , PQerFit )=MIN( MErFit )64 ( MinErPreA , PQerA)=MIN( MErPreA )65 ( MinErPreNA , PQerNA)=MIN(MErPreNA)66676869 # Cerco G i u s t i max70 ( MaxGiustiA , PQgiustA )=MAX( MgiustiA )71 ( MaxGiustiNA , PQgiustiNA )=MAX( MgiustiNA )72 ( MaxGiusti2A , PQgiusti2A )=MAX( Mgiusti2A )73 ( MaxGiusti2NA , PQgiusti2NA )=MAX( Mgiusti2NA )7475 # Riempo v e t t o r i c o i v a l o r i d e g l i i n d i c a t o r i76 # r e l a t i v i a l l e c o o r d i n a t e s e l e z i o n a t e77 BestF=np . zeros ( [ 9 , 1 ] )78 BestF [ 0 ] [ 0 ] = MErFit [ PQerFit [ 0 ] [ 0 ] ] [ PQerFit [ 1 ] [ 0 ] ]79 BestF [ 1 ] [ 0 ] = MErPreA [ PQerFit [ 0 ] [ 0 ] ] [ PQerFit [ 1 ] [ 0 ] ]80 BestF [ 2 ] [ 0 ] = MErPreNA[ PQerFit [ 0 ] [ 0 ] ] [ PQerFit [ 1 ] [ 0 ] ]81 BestF [ 3 ] [ 0 ] = MgiustiA [ PQerFit [ 0 ] [ 0 ] ] [ PQerFit [ 1 ] [ 0 ] ]82 BestF [ 4 ] [ 0 ] = MgiustiNA [ PQerFit [ 0 ] [ 0 ] ] [ PQerFit [ 1 ] [ 0 ] ]83 BestF [ 5 ] [ 0 ] = Mgiusti2A [ PQerFit [ 0 ] [ 0 ] ] [ PQerFit [ 1 ] [ 0 ] ]

APPENDICE E. CODICI INTEGRALI 152

84 BestF [ 6 ] [ 0 ] = M s i g n i f i c a t i v i 2 A [ PQerFit [ 0 ] [ 0 ] ]85 [ PQerFit [ 1 ] [ 0 ] ]86 BestF [ 7 ] [ 0 ] = Mgiusti2NA [ PQerFit [ 0 ] [ 0 ] ] [ PQerFit [ 1 ] [ 0 ] ]87 BestF [ 8 ] [ 0 ] = Msignif icat ivi2NA [ PQerFit [ 0 ] [ 0 ] ]88 [ PQerFit [ 1 ] [ 0 ] ]899091 BestPA=np . zeros ( [ 9 , 1 ] )92 BestPA [ 0 ] [ 0 ] = MErFit [ PQerA [ 0 ] [ 0 ] ] [ PQerA [ 1 ] [ 0 ] ]93 BestPA [ 1 ] [ 0 ] = MErPreA [ PQerA [ 0 ] [ 0 ] ] [ PQerA [ 1 ] [ 0 ] ]94 BestPA [ 2 ] [ 0 ] = MErPreNA[ PQerA [ 0 ] [ 0 ] ] [ PQerA [ 1 ] [ 0 ] ]95 BestPA [ 3 ] [ 0 ] = MgiustiA [ PQerA [ 0 ] [ 0 ] ] [ PQerA [ 1 ] [ 0 ] ]96 BestPA [ 4 ] [ 0 ] = MgiustiNA [ PQerA [ 0 ] [ 0 ] ] [ PQerA [ 1 ] [ 0 ] ]97 BestPA [ 5 ] [ 0 ] = Mgiusti2A [ PQerA [ 0 ] [ 0 ] ] [ PQerA [ 1 ] [ 0 ] ]98 BestPA [ 6 ] [ 0 ] = M s i g n i f i c a t i v i 2 A99 [ PQerA [ 0 ] [ 0 ] ] [ PQerA [ 1 ] [ 0 ] ]

100 BestPA [ 7 ] [ 0 ] = Mgiusti2NA [ PQerA [ 0 ] [ 0 ] ] [ PQerA [ 1 ] [ 0 ] ]101 BestPA [ 8 ] [ 0 ] = Msignif icat ivi2NA102 [ PQerA [ 0 ] [ 0 ] ] [ PQerA [ 1 ] [ 0 ] ]103104105 BestPNA=np . zeros ( [ 9 , 1 ] )106 BestPNA [ 0 ] [ 0 ] = MErFit [PQerNA [ 0 ] [ 0 ] ] [ PQerNA [ 1 ] [ 0 ] ]107 BestPNA [ 1 ] [ 0 ] = MErPreA [PQerNA [ 0 ] [ 0 ] ] [ PQerNA [ 1 ] [ 0 ] ]108 BestPNA [ 2 ] [ 0 ] = MErPreNA[PQerNA [ 0 ] [ 0 ] ] [ PQerNA [ 1 ] [ 0 ] ]109 BestPNA [ 3 ] [ 0 ] = MgiustiA [PQerNA [ 0 ] [ 0 ] ] [ PQerNA [ 1 ] [ 0 ] ]110 BestPNA [ 4 ] [ 0 ] = MgiustiNA [PQerNA [ 0 ] [ 0 ] ] [ PQerNA [ 1 ] [ 0 ] ]111 BestPNA [ 5 ] [ 0 ] = Mgiusti2A [PQerNA [ 0 ] [ 0 ] ] [ PQerNA [ 1 ] [ 0 ] ]112 BestPNA [ 6 ] [ 0 ] = M s i g n i f i c a t i v i 2 A113 [PQerNA [ 0 ] [ 0 ] ] [ PQerNA [ 1 ] [ 0 ] ]114 BestPNA [ 7 ] [ 0 ] = Mgiusti2NA [PQerNA [ 0 ] [ 0 ] ] [ PQerNA [ 1 ] [ 0 ] ]115 BestPNA [ 8 ] [ 0 ] = Msignif icat ivi2NA116 [PQerNA [ 0 ] [ 0 ] ] [ PQerNA [ 1 ] [ 0 ] ]117118119 MatriceBestP=np . zeros ( [ 3 , 2 ] )120 MatriceBestP [ 0 ] = PQerFit . T [ 0 ]121 MatriceBestP [ 1 ] =PQerA . T [ 0 ]122 MatriceBestP [ 2 ] =PQerNA . T [ 0 ]123124 MatriceBestV=np . zeros ( [ 3 , 9 ] )

APPENDICE E. CODICI INTEGRALI 153

125 MatriceBestV [ 0 ] = BestF . T126 MatriceBestV [ 1 ] = BestPA . T127 MatriceBestV [ 2 ] = BestPNA . T128129130 percorsoARIMA=r ”C:/ Percorso/MatriceBestARIMA . csv ”131132 f =open ( percorsoARIMA , ”wb” )133 s c r i t t u r a = csv . w r i t e r ( f , d e l i m i t e r = ’ ; ’ )134135 s c r i t t u r a . writerow ( [ ”nF” , ” z e r i ” ] )136 s c r i t t u r a . writerow ( [ nF , Nzeri ] )137 s c r i t t u r a . writerow ( [ ” CoBestFi t ( p q ) ” ,138 ”CoBestPA” , ”CoBestPNA” ] )139 s c r i t t u r a . writerows ( MatriceBestP . T )140 s c r i t t u r a . writerow ( [ ” Valor i ( F i t PA PNA GA141 GNA G2A S2A G2NA S2NA) ” , ” Valor i ” , ” Valor i ” ] )142 s c r i t t u r a . writerows ( MatriceBestV . T )143144 f . c l o s e ( )

Funzioni simulazioni ARIMA

1 def ARIMAfun( s e r i e , nF , p , d , q ) :23 import numpy as np4 from ARIMAfunctions import∗5 import pyRserve67 cn=pyRserve . connect ( host=” l o c a l h o s t ” )8 cn . r ( ’ l i b r a r y ( f o r e c a s t ) ’ )9

1011 ( previstiNA , erroreNA , previs t iA , erroreA , r es )=12 ARIMA( cn , s e r i e , nF , p , d , q )1314 #### V e t t o r e p r e v i s t i ed e r r o r e1516 MaPreStdA=np . zeros ( [ 2 , nF ] , f l o a t )

APPENDICE E. CODICI INTEGRALI 154

17 for i in range ( 0 , nF ) :18 MaPreStdA [ 0 ] [ i ]= prev i s t iA [ i ]19 MaPreStdA [ 1 ] [ i ]= erroreA [ i ]202122 MaPreStdNA=np . zeros ( [ 2 , nF ] , f l o a t )23 for i in range ( 0 , nF ) :24 MaPreStdNA [ 0 ] [ i ]= previstiNA [ i ]25 MaPreStdNA [ 1 ] [ i ]= erroreNA [ i ]2627 # ########################################28 Ls=len ( s e r i e )2930 E r F i t = E r F i t ( res , Ls , nF )31 ErStima=ErStima ( MaPreStdA , MaPreStdNA , nF )32 g i u s t i 2 =SegnoR2 ( MaPreStdA , MaPreStdNA , s e r i e , nF )33 g i u s t i =SegnoR ( MaPreStdA [ 0 ] , MaPreStdNA [ 0 ] , s e r i e , nF )34 ErPre=ErDvPre ( MaPreStdA , MaPreStdNA , s e r i e , nF )353637 return ( ErF i t , ErStima , ErPre , g i u s t i , g i u s t i 2 )383940 def MAX( Matrice ) :41 import numpy as np4243 Max=044 par i =045 for i in range ( 0 , 4 ) :46 for j in range ( 0 , 4 ) :47 if Matrice [ i ] [ j ]>=Max :48 Max=Matrice [ i ] [ j ]4950 for i in range ( 0 , 4 ) :51 for j in range ( 0 , 4 ) :52 if Matrice [ i ] [ j ]==Max :53 par i=par i +154 k=055 Parametri=np . zeros ( [ 2 , par i ] , f l o a t )56 for i in range ( 0 , 4 ) :57 for j in range ( 0 , 4 ) :

APPENDICE E. CODICI INTEGRALI 155

58 if Matrice [ i ] [ j ]==Max :59 Parametri [ 0 ] [ k]= i60 Parametri [ 1 ] [ k]= j61 k=k+16263 return (Max, Parametri )646566 def MIN( Matrice ) :67 import numpy as np6869 Min=170 par i =071 for i in range ( 0 , 4 ) :72 for j in range ( 0 , 4 ) :73 if Matrice [ i ] [ j ]<=Min :74 Min=Matrice [ i ] [ j ]7576 for i in range ( 0 , 4 ) :77 for j in range ( 0 , 4 ) :78 if Matrice [ i ] [ j ]==Min :79 par i=par i +18081 k=082 Parametri=np . zeros ( [ 2 , par i ] , f l o a t )83 for i in range ( 0 , 4 ) :84 for j in range ( 0 , 4 ) :85 if Matrice [ i ] [ j ]==Min :86 Parametri [ 0 ] [ k]= i87 Parametri [ 1 ] [ k]= j88 k=k+18990 return ( Min , Parametri )919293 def MePeG2( Giust i , S i g n i f i c a t i v i ) :94 import numpy as np9596 M=np . zeros ( [ 4 , 4 ] , f l o a t )97 for i in range ( 0 , 4 ) :98 for j in range ( 0 , 4 ) :

APPENDICE E. CODICI INTEGRALI 156

99 M[ i ] [ j ]= G i u s t i [ i ] [ j ]∗ S i g n i f i c a t i v i [ i ] [ j ]100 sommaM=np . sum(M)101 sommaS=np . sum( S i g n i f i c a t i v i )102103 if sommaS==0:104 MePe=0105 else :106 MePe=sommaM/sommaS107 v e t t o r e =[MePe , sommaS]108109 return ( v e t t o r e )110111112 def Nsigma ( freq , campione ) :113 import math as m114115 g i u s t i = f r e q ∗campione116 media=campione/ f l o a t ( 2 )117 sigma =( campione/ f l o a t ( 4 ) ) ∗ ∗ 0 . 5118 Nsigma=( g i u s t i −media )/ sigma119120 return ( Nsigma )121122123 def z e r i ( s e r i e , nF ) :124125 z e r i =0126 for i in range ( 0 , nF ) :127 if s e r i e [−1− i ]==0 :128 z e r i = z e r i +1129130 return ( z e r i )

Bibliografia

[1] J. Hull and E. Barone, Opzioni, futures e altri derivati. Prentice Hall,Pearson, 2009.

[2] B. of International Settlements, “Statistical release: Otc derivativesstatistics at end-june 2012.” Website, 2012. [Visualizzato: 27-03-2013].http://www.bis.org/publ/otc_hy1211.pdf.

[3] J. Gregory, Counterparty Credit Risk: The new challenge for global financialmarkets. The Wiley Finance Series, John Wiley & Sons, 2010.

[4] B. Italiana, “Fib - futures su ftse mib.” Website, 2010. [Visualiz-zato: 01-04-2013]. http://www.borsaitaliana.it/derivati/specifichecontrattuali/ftsemibfutures.htm.

[5] E. Exchange, “Euro stoxx 50 R© index futures (fesx).” Website,2012. [Visualizzato: 01-04-2013]. http://www.eurexchange.com/exchange-en/products/idx/stx/blc/18954/.

[6] C. M. Exchange, “E-mini s&p 500 futures.” Website, 2013. [Vi-sualizzato: 01-04-2013]. http://www.cmegroup.com/trading/equity-index/us-index/e-mini-sandp500_contract_specifications.html.

[7] S. E. (SGX), “Nikkei futures contract specification.” Website, 2011.[Visualizzato: 02-04-2013]. http://www.sgx.com/wps/portal/sgxweb/home/products/derivatives/equity.

[8] R. S. Tsay, Analysis of financial time series. Wiley, 2010.

[9] R. Rebonato, Volatility and correlation: the perfect hedger and the fox. JohnWiley & Sons, 2005.

[10] J. Box and G. M. Jenkins, “Reinsel. time series analysis, forecastingand control,” 1994.

157

BIBLIOGRAFIA 158

[11] G. M. Ljung and G. E. Box, “On a measure of lack of fit in time seriesmodels,” Biometrika, vol. 65, no. 2, pp. 297–303, 1978.

[12] W. A. Fuller, Introduction to statistical time series, vol. 428. Wiley, 2009.

[13] J. R. Hosking, “The multivariate portmanteau statistic,” Journal of theAmerican Statistical Association, vol. 75, no. 371, pp. 602–608, 1980.

[14] H. Lutkepohl, “New introduction to multiple time series analysis,”2005.

[15] W. S. McCulloch and W. Pitts, “A logical calculus of the ideas imma-nent in nervous activity,” The Bulletin of Mathematical Biophysics, vol. 5,no. 4, pp. 115–133, 1943.

[16] H. R. Wilson, Spikes, decisions, and actions: The dynamical foundations ofneuroscience, vol. 5. Oxford University Press Oxford, 1999.

[17] S. S. Haykin, Neural networks: a comprehensive foundation. Prentice HallEnglewood Cliffs, NJ, 1999.

[18] K.-I. Funahashi, “On the approximate realization of continuous map-pings by neural networks,” Neural networks, vol. 2, no. 3, pp. 183–192,1989.

[19] C. M. Bishop, Neural networks for pattern recognition. Oxford universitypress, 1995.

[20] A. Beltratti, S. Margarita, and P. Terna, Neural networks for economic andfinancial modelling. International Thomson Computer Press London,UK, 1996.

[21] J. Nocedal, “Updating quasi-newton matrices with limited storage,”Mathematics of computation, vol. 35, no. 151, pp. 773–782, 1980.

[22] W. N. Venables, B. D. Ripley, and W. Venables, Modern applied statisticswith S-PLUS, vol. 250. Springer-verlag New York, 1994.

[23] E. Aarts and J. Korst, “Simulated annealing and boltzmann machines,”1988.

[24] P. Terna, “h1-python-r-timeseriesnns.” Website, 2013. [Visualizzato: 15-09-2013]. http://eco83.econ.unito.it/terna/simoec13/Python_examples/h1_Python_R_timeSeriesNNs.zip.

BIBLIOGRAFIA 159

[25] A. W. Lo and A. Craig MacKinlay, “An econometric analysis of nonsyn-chronous trading,” Journal of Econometrics, vol. 45, no. 1, pp. 181–211,1990.

[26] R. Roll, “A simple implicit measure of the effective bid-ask spread inan efficient market,” The Journal of Finance, vol. 39, no. 4, pp. 1127–1139,1984.

[27] A. A. W.-C. Campbell, Lo, A. CRAIG, et al., The econometrics of financialmarkets. princeton University press, 1997.

[28] A. Larosa, “Flash crash: Simulazione ad agenti degli effetti dell’hi-gh frequency trading nei mercati finanziari.” Tesi di Laurea, Fa-colta di Economia, Universita degli Studi di Torino, 2011. [Visua-lizzato: 17-09-2013]. http://web.econ.unito.it/terna/tesi/larosa.pdf.

[29] M. Loreti, “Teoria degli errori e fondamenti di statistica,” Decibel,Zanichelli, 2006.

[30] G. I. Sher, Handbook of neuroevolution through erlang. Springer, 2013.

[31] I. for Statistics and M. R. W. Page, “The r project for statistical com-puting.” Website, 2013. [Visualizzato: 26-09-2013]. http://www.r-project.org/index.html.

[32] W. N. Venables, B. D. Ripley, and W. Venables, Modern applied statisticswith S-PLUS, vol. 250. Springer-verlag New York, 1994.

[33] B. Pfaff, Analysis of integrated and cointegrated time series with R. Springer,2008.

[34] P. S. Foundation, “Python programming language, official websi-te.” Website, 2013. [Visualizzato: 26-09-2013]. http://www.python.org/.

[35] P. Terna, “Road to install pyrserve and rserve to connectpython and r.” Website, 2013. [Visualizzato: 26-09-2013].http://eco83.econ.unito.it/terna/simoec13/cmap/pyRserve_Rserve%20(difficult).pdf.

[36] W. McKinney, Python for data analysis. O’Reilly Media, 2012.


Recommended