Alcune tecniche di
BEST FIT
con approfondimento sulla Statistica vista in precedenza
UTILIZZANDO EXCEL
Pablo Genova
[email protected]
I. I. S. “Angelo Omodeo”
Indirizzo Tecnico-Economico
Mortara
A. S. 2016 – 2017
Argomenti che affronteremo
Approfondiremo alcuni aspetti che abbiamo trascurato:
Metodo Monte Carlo e Finanza
Metodo dei Minimi Quadrati nel confronto tra modello e teoria
Esempi di linee di tendenza in Excel
Regressione Lineare con Excel
Confronto tra due misure o due dati statistici gaussiani (test statistico)
Distribuzione Esponenziale Negativa
Distribuzioni in due dimensioni (uniforme bidimensionale)
That's Monte Carlo, STAT(istic)S
& Best Fit:
STAT
it enjoy ;-)
Monte Carlo Method & Finance
L'utilizzo di numeri casuali distribuiti secondo opportune leggi (da quelle semplici che
abbiamo visto ad altre ben più complicate) è detto Metodo Monte Carlo.
L'espressione deriva proprio dal famoso casinò di Monte Carlo (dove a quanto pare i
processi casuali sono ampiamente utlizzati ;-)).
Pionieri del metodo:
metodo Enrico Fermi che lo utilizzò per la diffusione dei neutroni,
Stanisław Ulam, John von Neumann e Nicholas Metropolis.
E la finanza? Ecco un semplice esempio... si prenda un'opzione (option) .
Opzione: contratto che conferisce al possessore il diritto, ma non l'obbligo (dunque una
possibilità da cui appunto il termine opzione), di acquistare o vendere il titolo (asset,
titolo sottostante l'opzione) ad un determinato prezzo prestabilito (strike price o strike)
entro una determinata data, a fronte di un premio pagato non recuperabile.
Esempio di opzione: opzione binaria (binary option) basate sulla logica VERO/FALSO
Sarà o non sarà il titolo al di sopra (al di sotto) di un certo prezzo in un dato istante?
Quale strategia razionale adottare?
Come prevedere/stimare il prezzo di un'opzione? → Utilizzare modelli matematici
ed in particolare nei casi più complessi, in cui l'opzione dipende da più titoli
sottostanti, simulazioni Monte Carlo!
Per approfondire: https://en.wikipedia.org/wiki/Monte_Carlo_methods_in_finance
https://en.wikipedia.org/wiki/Monte_Carlo_methods_for_option_pricing
Metodo dei Minimi Quadrati
E' il classico metodo utilizzato per confrontare dei dati sperimentali con un modello
teorico, in modo tale da vedere se c'è o non c'è accordo tra modello e dati e, se c'è
accordo, trovare i parametri corretti del modello teorico che riproducono i dati.
In inglese si usano i termini least squares (minimi quadrati) e data fitting (“fitting” dei dati)
o anche best fit:
fit ovvero il miglior modo di trovare accordo (se esiste) tra i dati e la teoria.
Siano
i dati del problema e
una funzione, che dipenderà da
opportuni parametri e dai dati, si deve trovare questa funzione
in modo tale che
sia MINIMA la seguente quantità:
O. L. S.
Ordinary Least Squares
Più in generale se i dati presentano degli errori, statistici o sperimentali
si minimizza la funzione:
W. L. S.
Weighted Least Squares
Minimi quadrati pesati
Ciascun termine della somma è anche noto come residuo o scarto dato che rappresenta
la differenza tra il valore misurato e il valore teorico, quindi stiamo rendendo minima la
somma dei quadrati dei residui o degli scarti tra modello e teoria
Metodo dei Minimi Quadrati
Nei casi più semplici e di uso comune la minimizzazione delle formule precedenti permette
di ottenere i parametri della funzione teorica ad esempio
CASO LINEARE
Altri casi “semplici” e di uso comune sono i fit con funzione esponenziale, polinomiale,
logaritmica, in generale è un problema complicato non risolubile in modo analitico ovvero
non esiste una formula esplicita per trovare i parametri, ma vengono trovati con calcoli
numerici approssimati.
Quando con Excel aggiungiamo una linea di tendenza ai dati Excel utilizza un metodo di
best fit semplificato (e grossolano) per trovare la funzione interpolante
https://support.office.com/en-us/article/Equations-for-calculating-trendlines-12cfdaa50652-436f-839c-0561e8620ba5?ui=en-US&rs=en-US&ad=US
Senza entrare nei dettagli del modello diciamo almeno che Excel calcola un coefficiente di
determinazione R2 che ci permette di stimare la bontà del fit: più è vicino ad 1, meglio è
somma totale dei quadrati
con
2
0≤R ≤1
somma dei residui
Linee di Tendenza Caso Lineare
Vediamo in pratica con Excel degli esempi di linea di tendenza, visualizzando il coefficiente
di determinazione sul grafico (attenzione i fit della mia presentazione sono fatti con
LibreOffice quindi i valori del fit non saranno identici rispetto ad Excel)
inserendo dati “perfettamente” lineari e
fittando con una retta → R2=1
inserendo dati “quasi” lineari e
fittando con una retta → R2 ≈ 1
f(x) = 1x - 1,12346670994454E-015
R² = 1
dati
x
1
2
3
4
5
6
7 8
9
10
x 1
y
1
2
3
4
5
6
7 8
9
10
y
1
2
3
1,9 2,9
4
5
4,1
4,9
6
6
7
6,9
8
9
10
8,2
9,5
9,9
f(x) è la funzione interpolante, la linea di tendenza, con il suo coefficiente di determinazione
in questi casi semplici è tutto “facile e chiaro” l'accordo è ottimo/molto buono
Nel caso a sinistra la retta è esattamente x = 1 (10-15 ≈ 0) come ci si deve aspettare
Linee di Tendenza in situazioni più complesse
Presto le cose si complicano e, in generale, non basta una “semplice” linea di tendenza
per capire rigorosamente se un modello è in accordo o meno con i dati
Prendiamo questi dati
y=x2
andamento quadratico ovvero
polinomiale di secondo grado
ovvero legge di potenza
x
1
2
3
4
y
1
4
9
16 25 36 49 64 81 100
fit lineare con dati quadratici:
ehm non quadra molto ;-)
5
6
7
8
9
10
fit quadratico con dati quadratici:
così va meglio ;-)
R2 = 1
R2 = 0,95
la retta trovata non ha molto senso
qui si interpola correttamente con y = x2
Come si osserva dal valore di R2, nel caso “sbagliato”, quello a sinistra, comunque il valore risulta
R2 = 0,95 ben più vicino ad 1 che a 0 → quando devo rigettare il modello?
E' un problema complesso che richiede test statistici più raffinati (ad es. test del Chi quadro
)
Linee di Tendenza Caso Esponenziale
Un'altra classica funzione di fit è l'esponenziale, per esempio prendiamo questi dati il dato y
è indicato nelle tre notazioni (ordinaria, scientifica, scientifica al calcolatore “con E”)
x
1
2
3
4
5
6
7
8
9
10
y
1
101
1E1
100
102
1E2
100
103
1E3
10000
104
1E4
Ecco il nostro fit esponenziale
troviamo f(x) = e
(2,302585903 · x)
dati e fit esponenziale
visualizzati su grafico
normale
100000
105
1E5
1000000
106
1E6
10000000
107
1E7
1...0
108
1E8
1…0 1…0
109
1010
1 E 9 1 E 10
si noti la comodità/necessità della
notazione scientifica con grandi numeri
asse con scala non lineare, bensì logaritmica
dati e fit esponenziale
visualizzati su grafico
semilogaritmico
! In questo grafico sull'asse delle y ho
s
Giacché la crescita è moooolto rapida i primi dati Ye
messo la scala logaritmica:
sono “schiacciati”, c'è rimedio per vedere meglio?
l'esponenziale diventa una retta e
vedo bene tutti i punti wow!!
Tips for exponentials (suggerimenti per le esponenziali)
Per visualizzare bene la crescita (o decrescita) di dati secondo
una legge esponenziale
y= b · a
(ad es y = 2
x
x
x
con a > 0 b > 0
x
y = 3 y = 10 y = e
x
y=3·2
x
)
è utile disegnare i dati con grafico semilogaritmico cioè bisogna
inserire una scala logaritmica sull'asse delle y (e lasciarla lineare
sull'asse delle x). Opzioni asse y → scala logaritmica
Così la rapida (de)crescita dei dati può essere visualizzata in
modo evidente.
L'andamento lineare in tale grafico significa che l'andamento
dei dati è esponenziale e quindi stiamo in qualche modo
riconducendo un'esponenziale ad un retta, più facile da “vedere”
(questa è una delle grandi comodità dei logaritmi),
Linee di Tendenza legge di potenza
Per i dati che seguono una legge di potenza di grado n: y = a · x
x 1
Ad esempio →
y=3·x
4
2
3
4
y 3 48 243 768
5
1875
6
7
b
8
9
3888 7203 12288
19683
10
30000
E' un caso particolare del fit polinomiale (vedi slide successiva)
Risultato fit f(x) = 3 · x
4
R2 = 1
Grafico log-log
ma che linearità
;-)
2
Fit in scala normale
3
fit in scala logaritmica in entrambi gli assi
Con un grafico logaritmico ovvero in scala logaritmica in entrambi gli assi “log – log”
si può trasformare una legge di potenza y = a · x
b
in una legge lineare!
WOW!
Linee di Tendenza caso polinomiale
Per i dati che seguono una legge polinomiale di grado n:
Esempio 86 punti con x = [ -4,5; -4,4; -4,3 ;... ; 3,9; 4]
y = 1/10 · (x+4) · (x+1) · (x-1) · (x-3) + 0.5
4
3
2
Sviluppando le potenze la legge corrisponde a y = 0,1 · x + 0,1 · x – 1,3 x – 0,1 x + 1,7
Ecco il grafico con il fit con una
polinomiale di quarto grado
(funzione quartica)
Attenzione che in questo caso
non ha senso utilizzare scale
logaritmiche: log(0) NON esiste
e gli assi includono l'origine
In questo tipo di dati si mantiene
la scala lineare usuale.
Il fit, come deve essere, trova i
parametri della polinomiale
ovvero i coefficienti a ... a
0
4
Se questi coefficienti hanno un significato economico pratico → li avete determinati ;-)
Linee di Tendenza Caso Logaritmico
Vediamo ora un esempio di fit logaritmico (da non confondersi con quello esponenziale)
I dati in ingresso sono x= [1,...., 100] e (rispettivamente) y = [ln (1), ln(2), ...., ln(100)]
Attenzione: qui la funzione di fit è logaritmica,
ma la scala è LINEARE in entrambi gli assi
Non fare confusione con le scale logaritmiche dei
grafici esponenziali o di potenza.
Non ha senso trasformare gli assi in scala log
in questo caso (peraltro per l'asse y è impossibile
perché !!! log(0) !!!! NON ESISTE!) Achtung!!
0
ln (1) = 0 perché e = 1
Andamento lentooooo … ln(100) ≈ 4,61
La crescita logaritmica è una crescita costante, ma molto lenta, di tipo
“sotto-lineare” ovvero meno che lineare...
Si userà mai anche in Economia? Chissà ;-)
Regressione Lineare con Excel
y=a·x+b
In analogia con quanto visto in slide N° 6, fit lineari, un altro modo sostanzialmente
equivalente di fare un fit lineare con Excel è utilizzare la funzione:
REGR.LIN(y_nota; [x_nota]; [cost]; [stat])
Questa è una funzione di matrice quindi per utilizzarla occorre prima inserirla nella cella,
poi selezionare un area in cui andranno i parametri e infine digitare CTRL MAIUSCOLO
INVIO (vedi funzione FREQUENZA vista nel modulo didattico precedente).
Attenzione: in y_nota bisogna mettere i valori y, in x_nota i valori x (facoltativi, se non li si
scrive li mette Excel, cost mettere VERO (default) o FALSO, stat mettere VERO o FALSO
(default).
Se cost = FALSO → si forza l'intercetta a 0 (retta y=ax, b=0) altrimenti si cerca retta y=ax+b
Se stat = VERO → visualizzo le statistiche aggiuntive, altrimenti solo i parametri a,b del fit
Risultato: calcola nel foglio Excel, i parametri a (pendenza) b (intercetta) e, se abilitate,
le seguenti statistiche: errori standard su a e su b, coefficiente di determinazione,
errori standadard sui dati previsti (y), ed altri dati statistici (che qui ignoriamo)
Rispetto alla linea di tendenza, REGR.LIN mi dà più informazioni statistiche e di
analisi dati e riporta i risultati sul foglio excel (non solo sul grafico)
Ulteriori dettagli in:
https://support.office.com/it-it/article/REGR-LIN-funzione-REGR-LIN-84d7d0d9-6e50-4101-97
7a-fa7abf772b6d
si può utilizzare anche con rette a più variabili ad es y = a·x + b·z + d con x,z variabili wow!
Distribuzione normale o gaussiana
Distribuzione gaussiana
Con media μ e deviazione standard σ
f(x)
e è la costante
L'area di questa
curva
in
un
intervallo dà la
probabilità in un
intervallo secondo
la distribuzione
normale
di Nepero
e = 2,71828 18284 ...
Le percentuali indicano i valori delle
aree ovvero le probabilità:
68,3% tra μ – σ e μ + σ
95,4% tra μ – 2σ e μ + 2σ
99,7% tra μ – 3σ e μ + 3σ
fuori da 3 sigma
solo nel 3 per mille dei casi!
0,13 %
coda sx
34,13%
coda dx
La ricordate? Ora vediamo un suo utilizzo pratico in un test statistico gaussiano a 2 code
per il confronto tra due misure
Coda: ciascuna delle due estremità della gaussiana → valori LONTANI dalla media,
valori “anomali” → a seconda dei casi da rigettare o di interesse particolare
Confronto tra due misure con errore: esempio di test statistico
Vediamo il metodo in un esempio pratico (sarebbe troppo lungo spiegarne la teoria)
Pensate ad una ditta che produce due oggetti dalle dimensioni seguenti e deve verificare se
sono compatibili o meno (scartando quelli incompatibili) più in generale qualsiasi misura,
purché valga la distribuzione gaussiana:
Sono compatibili?
x = 12,3
±
0,5
x2 = 13,5
±
0,8
1
errori della misura
1. Calcoliamo l'errore totale sommando in quadratura i due errori:
s= √( 0,5) +(0,8) =0,943
2
2
2. Calcoliamo la variabile statistica standard t
|12,3 −13,5|
1,20
t=
=
=
s
0,943
errore totale
variabile statistica t
più grande è
più sono
1,27
“nella coda”
3. Facciamo il test a due code calcolando la probabilità di sbagliare
rigettando l'ipotesi di compatibilità = area della gaussiana con eventi “nelle
code”:
SONO COMPATIBILI PERCHE'
P = 1 – 2 · 0,3980 ~ 0,20 = 20 %
> 5 % (o 1 %)
questo valore è ricavato dalle tavole per t = 1,27 vedi slide tavole (o calcolato con excel)
Confronto tra due misure: esempio di test statistico (tavole)
La tabella si legge
guardando la riga
per il valore di t fino
al primo decimale,
la colonna per il
secondo decimale e
all'intersezione
si
trova il valore di t
corrispondente.
Si noti come per t=0
l'area è nulla →
siamo nel massimo
della gaussiana, per
t=4 l'area è 0,5
siamo nella coda
della gaussiana.
Ricavato il valore
della probabilità, lo
si inserisce
nel
calcolo del test a 2
code (vedi slide
precedente)
Questa tabella è un
esempio di tabella
statistica standard
indica l'area della
gaussiana
dal
valore medio al
valore standard t
scelto.
Ho evidenziato i
valori per l'esercizio
precedente
avevamo ottenuto
t=1,27 → P = 0,390
Si può ricavare con
Excel utilizzando la
funzione
DISTRIB.NORM()
impostandola per la
cumulativa facendo
attenzione
alle
diverse convenzioni
utilizzate
Confronto tra due misure: altri esempi
Sono compatibili?
x = 12,3
±
0,5
x2 = 14,5
±
0,4
1
s= √( 0,5) +(0,4) =0,640 errore totale
t è grande (>3) → sono nella coda,
|12,3 −14,5|
2,20
t=
=
= 3,44 vado a leggere in tabella per t=3,44
s
0,640
→ trovo 0,4997
2
2
P = 1 – 2 · 0,4997 ~ 0,0006 = 0,06 % → P < 5 % (e < 1%)
sono INCOMPATIBILI
x = 12,3
±
0,5
x2 = 13,6
±
0,3
1
Sono compatibili?
QUESTO CASO E' “DELICATO”
le misure sono “al limite”
INCOMPATIBILI CON TEST A 5 %
s= √( 0,5) +(0,3) =0,583
COMPATIBILI CON TEST A 1%
|12,3 −13,6|
1,3
t=
=
= 2,23 P = 1 – 2 · 0,4871 ~ 0,0258
s
0,583
~ 2,6 %
2
2
Attenzione: t tra 2 e 3 siamo vicini alla soglia!
2,6 % < 5% ma 2,6 % > 1%
Distribuzione esponenziale negativa
Proviamo a generare dati secondo
questa formula:
- ln ( UNIFORME())
il logaritmo naturale di un
numero casuale uniforme
tra 0 e 1 cambiato di segno
Questa è la forma della
distribuzione esponenziale negativa
Come si vede questa distribuzione è
molto diversa dalla gaussiana
Istogramma delle frequenze
Funzione di densità f(x)
=e
–x
media
m = 1
2
varianza s = 1
Più in generale la sua funzione di densità
è: f(x) = a ·e – a · x con a > 0
media
m = 1/a
2
varianza s2 = 1/a
occhio al –
Un altro modo di visualizzare i dati,
utilizzando un grafico semilogaritmico
Cosi si vedono gli eventi
rari “in coda”
È esponenziale
→ lineare con
grafico semilog
UTILIZZO: statistica dei tempi di arrivo
Esempio: in una strada poco trafficata transitano un certo numero di veicoli, osservato un veicolo, qual è la
probabilità di osservarne un altro al tempo t? → è più probabile osservare gli eventi a “grappoli” che ad
intervalli di tempo regolari (tipico problema di chi è ad uno sportello...) è molto diversa da una gaussiana!!!
Distribuzione uniforme in due dimensioni (cenno)
Tutto ciò che abbiamo visto in questa nostra breve introduzione alla statistica e alla simulazione
può essere generalizzato a funzioni e distribuzioni a più variabili...
NOI NON CI ADDENTRIAMO, MA SI POSSONO TRATTARE ANCHE QUESTI CASI ;-)
In generale i fenomeni sono complessi e dipendono da tante cause → funzioni di più variabili
Caso più semplice (in Excel):
x = CASUALE() (ad es colonna A)
Scatter plot/ grafico a dispersione x-y
10 000 uniformi su x · 10 000 uniformi su y
y
y = CASUALE() (ad es colonna B)
Così facendo ottengo una
distribuzione uniforme IN DUE VARIABILI
Il
grafico
a
dispersione
mostra
“qualitativamente”
l'uniformità,
si
osserva un quadrato riempito in modo
uniforme
E' possile generare uniformemente su un
cerchio, sulla superficie di una sfera etc
etc
x
Attenzione: questo grafico non è il grafico delle frequenze, per fare quello bisogna fare un
grafico tridimensionale con altezza pari alla frequenza in opportuni intervalli bidimensionali...