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...