dispense
Transcript
dispense
Introduzione all’econofisica Mondo del Lavoro 2, Prof. Francesco Mainardi Seminari Operativi sull’Analisi di Serie Temporali a cura di Davide Barbieri Marzo - Aprile 2005 1 Tematiche: • Matlab, Programmazione e Grafici • Analisi dei Segnali Informazione e Campionamento Modulazione di Frequenza • Probabilità e Statistica • Rumore e Processi Stocastici Applicazioni (numeriche): • Musica • Dati Meteorologici dal 1814 • Inquinamento Ambientale a Bologna • Mercati Finanziari 2 Programma (∼approssimato∼) delle giornate. (03/03) Introduzione a Matlab e trasformata di Fourier. - Per cominciare con Matlab: plot/fplot, operazioni su matrici, m-files. - Campionamento dei segnali: Limite di Shannon, Informazione e Frequenza di Nyquist. Aliasing. - Analisi in frequenza: serie di Fourier. 1 0.8 0.6 0.4 0.2 0 −0.2 −0.4 −0.6 −0.8 −1 0 0.5 1 1.5 2 3 2.5 3 3.5 (10/03) Modulazione di Frequenza. - Analisi in frequenza: trasformata di Fourier, FFT, Potenza in dB e identità di Parseval. - Frequenza istantanea e costruzioni semplici. - FM Radio: portante, messaggio e spettro. - Segnali impulsivi: spettri sinc. 1 1 0.5 0.5 s(t) 0 s(t) 0 −0.5 −0.5 −1 0 0.5 −1 0 1 t 0.05 0.1 t 5 4 2 0 dB dB 0 −2 −4 −10 0 60 ν −6 40 500 4 55 60 65 ν 80 (17/03) Analisi in Tempo-Frequenza. - Windowed Fourier Transform. - Osservazioni sulle finestre. - Bach e Petrucciani: l’algoritmo del pentagramma. - Un semplice Filtro sulle Frequenze. s(t) 0.3 0 −0.3 0 0.1 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 1.2 1.4 1.6 1.8 Frequenze (Hz) t (sec) 3000 2000 1000 0 0 0.1 0.2 0.4 0.6 0.8 1 t (sec) 5 (31/03) + (07/04) Probabilità e Statistica. - Variabili Random: costruire con Matlab variabili gaussiane e non (metodo del rigetto). Istogrammi e densità di probabilità. - Media e Varianza campionaria: funzionamento degli stimatori e convergenza in probabilitá. Efficienza statistica e informazione di Fisher. - Correlazione: interdipendenza statistica fra serie di dati (al 2o ordine) e indipendenza aleatoria. - Applicazioni: gioco d’azzardo e dati correlati. 50 0 −50 0 200 400 600 800 1000 1200 1400 1600 1800 2000 2200 0.3 0.2 0.1 0 −20 −15 −10 −5 0 6 5 10 15 20 (14/04) Evoluzione della Probabilità nel Tempo: i Processi Stocastici I. - Il Moto Browniano: Einstein, Wiener, Markov, i processi di Lévy gaussiani e la diffusione normale nell’equazione Xt+1 = Xt + Zt. - Le forzanti stocastiche: il Rumore Bianco (WN), la δ-correlazione e il caos molecolare. - Random Walk, Efficienza dei mercati finanziari e nottolino di Feynman. - Per cominciare con i Processi Stocastici: AR(1). - Autocorrelazione e Power Spectrum. Stazionarietà. 100 80 60 40 20 0 −20 −40 −60 −80 −100 0 500 1000 1500 7 2000 2500 3000 (21/04) Processi Stocastici II. Aspetti pratici. - Gli AR(2). La regione di stazionarietà, il Power Spectrum e la tavolozza dei colori. - Come stimare i parametri della regressione. - Nonstazionarietà semplici nei dati reali: trend e stagionalità. - Applicazione: analisi naı̈f del N.Y. Stock Exchange. 100 0 −100 1500 1550 1600 1650 1700 1750 1800 1850 1900 100 0 −100 1580 1590 1600 1610 1620 1630 1640 1650 1660 1670 1680 (28/04) Tentativo di analisi di dati C.N.R. e ARPA. - Precipitazioni e temperature giornaliere a Bologna dal 1814 a oggi. - Polveri sottili PM10, ozono e biossido di azoto dalle stazioni di rilevamento ARPA di Bologna. 8 03/03/2005 1 Matrici † >> mat=[1 2 3 ; 4 5 6 ; 7 8 9] Ogni comando non seguito da ; restituisce un output mat = 1 4 7 2 5 8 3 6 9 i singoli elementi sono individuabili con due indici >> mat(2,3) ans = 6 o con un indice solo (scorrimento per colonne) >> mat(8) ans = 6 e si possono sempre aggiungere elementi >> mat(1,4)=3 mat = 1 2 4 5 7 8 † 3 6 9 3 0 0 Rif.: Help di Matlab. 9 I Somme >> mat mat = 1 4 7 2 5 8 3 6 9 Per Matlab tutte le variabili sono considerate matrici. Es: sommare iterativamente scalari equivale a richiamare algoritmi di somma fra matrici 1x1. ⇒ cercare sempre di ricondursi a operazioni su elementi di una stessa matrice: piú rapide. >> sum(mat) ans = 12 15 18 >> sum(mat(:,1)) ans = 12 >> sum(mat(1:3,1)) ans = 12 >> sum(mat(2:3,1)) ans = 11 10 II Prodotti La matrice trasposta si ottiene con l’apice >> matT=mat’ matT = 1 4 2 5 3 6 7 8 9 Il prodotto matriciale é dato dall’ ∗ >> mm=mat*matT mm = 14 32 50 32 77 122 50 122 194 E ad esempio si puó usare per prodotti scalari fra vettori >> v=[1 2 3 4]; u=[4 3 2 1]; uT=u’; vu=v*uT vu = 20 prodotti matriciali ⇒ trasporre il vettore dx é essenziale: >> w=v*u ??? Error using ==> * Inner matrix dimensions must agree. 11 e ... attenzione all’ordine ! >> w=uT*v w = 4 3 2 1 8 6 4 2 12 9 6 3 16 12 8 4 É inoltre possibile gestire operazioni termine a termine†: >> v3=v*3 v3 = 3 6 >> uv=u.*v uv = 4 6 9 12 6 4 notare come l’ultima operazione (.∗) usi u e non uT . NOTA: un operatore fondamentale, giá usato per somme, é il “due punti”. Un altro dei suoi usi piú frequenti é quello di costruire griglie >> Dt=[0:2:10] Dt = 0 2 4 6 † 8 10 La sintassi .* ha un corrispondente anche per la divisione termine a termine (./) e l’elevamento a potenza delle componenti dei vettori (.^). 12 2 Grafici † Con Matlab é possibile graficare (quasi) ogni cosa: funzioni in una o piú variabili, serie di dati, matrici, curve di livello ecc., in due o tre dimensioni e con scale di colori. Qui useremo solo funzioni e dati in una variabile. Per plottare funzioni si usa il comando fplot, con il quale é possibile anche specificare tipo di linea, colore, etc. 1 fplot(‘forma funzionale’, [intervallo del dominio]) 0.8 0.6 0.4 0.2 fplot(’sin(x)/x’,[-50,50]) 0 −0.2 −0.4 −50 −40 −30 −20 −10 0 10 20 30 40 50 4 5 Per regolare gli assi su un plot si usa il comando axis: 0.5 0 axis([xm xM ym yM]) −0.5 fplot(’..f(x)..’,[-10,10]) axis([-5 5 -2.8 0.6]) −1 −1.5 −2 −2.5 −5 † Rif.: Help di Matlab. 13 −4 −3 −2 −1 0 1 2 3 Quando si hanno dati su un vettore y da plottare come se fossero i valori assunti da una funzione si usa plot. Di default i valori delle x sono i naturali: per specificarli occorre un vettore x con la stessa lunghezza di y. Esempio: si vogliono plottare i dati di inflazione FOI (% mensili sul mese dell’anno precedente dei prezzi al consumo per le Famiglie di Operai e Impiegati ). Disponibili i dati mensili da ottobre 1978 a gennaio 2005 (316 mesi) su un file di testo, li si trasferisce in memoria con il comando load e si costruisce il vettore dei tempi. >> >> >> >> x=load(’FOI_05_dati.txt’); Dt=[1978+3/4:1/12:2005]; plot(Dt,x) axis([1978 2005 0 22]) 22 20 18 16 14 12 10 8 6 4 2 0 1980 1985 1990 1995 14 2000 2005 3 Campionamento dei segnali † © Un segnale f (t) viene misurato a tempi discreti tj }N , © ªN j=1 dunque si presenta come una successione ftj j=1. Se gli intervalli temporali sono regolari tj+1 − tj = ∆t, allora νc = 1/∆t é detta “frequenza di campionamento”. Un segnale campionato si puó scrivere utilizzando la delta di Dirac: passaggio dal discreto al continuo N X f (t) = fn δ(t − n∆t) n=0 Analisi in frequenza = scomposizione del segnale in oscillazioni elementari: i Per fare questo si usa la trasformata di Fourier Z +∞ fb(ν) = ei2πνtf (t)dt −∞ che si inverte con Z +∞ f (t) = e−i2πνtfb(ν)dν −∞ ii Per segnali campionati questa si riduce alla serie N X fb(ν) = ei2π(ν/νc)nfn n=0 † Rif.: G.Kaiser, “A friendly guide to wavelets”, 1994 Birkhäuser; C.Chatfield, “The analysis of time series”, 2004 Chapman & Hall; Numerical Recipes, http://www.nr.com/ 15 La massima frequenza contenuta nel segnale é νc: tutto ció che avviene in tempi minori di ∆t non é rilevato. Questo é scritto anche nella serie di Fourier del segnale: ν = νc + α ⇒ ei2π(ν/νc)n = ei2πnei2π(α/νc)n = ei2π(α/νc)n dunque fb(νc +α) = fb(α): la rappresentazione del segnale f (t) in frequenza é tutta contenuta nella banda [−νc, νc]. In realtá si ha di piú: l’informazione del segnale é contenuta in un intervallo di frequenze piú piccolo: a) Una serie di dati distanziati di ∆t non puó contenere informazioni su oscillazioni di periodo inferiore a 2∆t: ad esempio dati di temperatura con una misura alle 12:00 ed una alle 24:00 riescono a risolvere fluttuazioni giornaliere, ma non danno informazioni su ció che accade nell’arco della mattinata. Si definisce quindi una frequenza di taglio analoga alla frequenza di Debye per il solido cristallino: la νc frequenza di Nyquist νN = . 2 b) Per quanto visto, un segnale campionato non risolve frequenze piú acute di quella di Nyquist. Per un campionamento che non perda informazioni occorre quindi scegliere una νc che sia almeno doppia della massima frequenza di oscillazione del segnale (se questa massima frequenza esiste ...). 16 Esempio: campionamento della funzione seno >> >> >> >> >> nuc = ... nu = 1; t = [0:1/nuc:10]; y = sin(2*pi*nu*t); plot(t,y) 1 1 1 0.8 0.8 0.8 0.6 0.6 0.6 0.4 0.4 0.4 0.2 0.2 0.2 0 0 0 −0.2 −0.2 −0.2 −0.4 −0.4 −0.4 −0.6 −0.6 −0.6 −0.8 −0.8 −1 0 1 2 3 4 5 6 7 8 9 10 −1 0 −0.8 1 2 3 4 5 6 7 8 9 10 −1 0 1 2 3 4 5 6 7 8 9 10 Figura : Campionamento (da sinistra a destra) con νc = 50, 2.18, 1.7 Come si puó notare, nella prima figura νc À ν ed il seno é risolto con precisione. Nella seconda νc & 2ν, ma nonostante la bassa definizione si distinguono i 10 picchi. Nella terza figura ν < νc < 2ν e si perde l’informazione contenuta nel segnale (la sua frequenza). Il limite dato dalla frequenza di Nyquist é anche detto limite di Shannon: il suo teorema del campionamento afferma infatti che una funzione la cui trasformata di Fourier si annulla per frequenze superiori a Ω puó essere ricostruita interamente (senza perdere informazione) a partire da un campionamento a frequenza νc ≥ 2Ω. 17 Un segnale campionato sotto il limite di Shannon viene detto “sottocampionato”, ed il fenomeno di distorsione dell’informazione associato é chiamato aliasing. Un esempio di aliasing é l’impressione di veder girare in senso opposto una ruota in rapida rotazione: la durata di una impressione retinica, di circa 1/25 di secondo, agisce infatti come un tempo di campionamento: nu=7; nuc=200; t=[0:1/nuc:3.5]; y=sin(2*pi*nu*t); plot(t,y,’r’) hold on nuc=8; t=[0:1/nuc:3.5]; y=sin(2*pi*nu*t); plot(t,y,’black’) plot(t,y,’ob’) 1 0.8 0.6 0.4 0.2 0 −0.2 −0.4 −0.6 −0.8 −1 0 0.5 1 1.5 2 2.5 3 In generale l’aliasing é causa di uno sparpagliamento delle frequenze superiori a νN fra le frequenze “buone”, che provoca una distorsione nel segnale campionato a danno di queste ultime: nell’intervallo di Shannon compaiono frequenze fittizie che confondono l’informazione. 18 3.5 10/03/2005 Osservazioni sulla Trasformata di Fourier † 1 a) Spettro di Potenza Con “Energia Totale” contenuta in un segnale si intende l’integrale nel tempo della “Potenza Istantanea” |f (t)|2. Il Teorema di Parseval afferma che l’energia totale di un segnale non cambia se misurata sulle frequenze: Z +∞ ¯ Z +∞ ¯ ¯2 ¯ ¯ ¯ ¯ b ¯2 ¯f (t)¯ dt = ¯f (ν)¯ dν −∞ −∞ e la “potenza associata alle frequenze” [ Ω− , Ω+ ] é Z Ω+ Z Ω+ ¯ ¯ ¯ b ¯2 P (ν)dν = ¯f (ν)¯ dν Ω− ‡ Ω− b) Simmetrie I segnali (campionati) reali hanno particolari simmetrie: i f (t) ∈ R ⇒ fb(−ν) = fb∗(ν) ii fb(νc + α) = fb(α) ⇒ fb(−νN + α) = fb(νN + α) dunque |fb|2 puó essere studiata solo nell’intervallo di frequenze [ 0, νN ], essendo pari e periodica. † Rif.: A.Papoulis, “The Fourier integral and its applications”; Numerical Recipes, Chapter 12 “Fast Fourier Transform” http://www.nr.com/ ‡ La potenza é comunemente espressa in scala logaritmica: i decibel (dB). 19 c) Fast Fourier Transform La trasformata di un segnale discreto a N punti si calcola kνN su N valori di frequenza νk = : N fbk = N X eiπ(k/N )nfn , k = 0, . . . , N n=0 Un algoritmo che implementa in modo diretto questa trasformata di Fourier discreta richiede N 2 iterazioni. L’algoritmo FFT riduce drasticamente le iterazioni a N lg2N grazie ad una semplice osservazione: la somma di lunghezza N si puó scrivere come 2 somme di lunghezza N/2, e se N = 2n questa scomposizione si puó ripetere n volte, riducendo la computazione ad N valutazioni di n “trasformate ad 1 punto”. † La routine Matlab che realizza la FFT si richiama con F = fft(f,M) dove f rappresenta il segnale, F la sua trasformata, M il numero di punti su cui viene fatto girare l’algoritmo. Non é necessario che M sia uguale ad N : se M > N al segnale vengono aggiunti M − N zeri, mentre se M < N il segnale viene troncato. In questo modo si puó sempre scegliere (vivamente consigliato) M come potenza di 2. † NOTA: se N = 104 , allora N 2 = 108 , mentre N lg2 N = 1.33 × 105 . 20 Esempio 1. Frequenza che varia in modo continuo. N = 8192; nuc = 256; L = N/nuc; t = [0:1/nuc:L]; x = cos(pi*t.*t); subplot(2,1,1) plot(t,x,’r’) axis([0 10 -1 1]) Y = fft(x,N); P = log10(Y.*conj(Y)/N); f = nuc*(0:N-1)/N; subplot(2,1,2); plot(f,P); fm = min(P); fM = max(P); Df = 0.1*(fM-fm); axis([0 nuc fm-Df fM+Df]) 1 0.5 0 −0.5 −1 0 1 2 3 4 5 6 7 8 10 0 −5 −10 −15 0 50 100 150 200 In questo segnale vi sono tutte le frequenze comprese nell’intervallo [0, 32] (Hz). Il segnale é ben campionato, e si osserva la simmetria dello spettro di potenza intorno alla frequenza di Nyquist. Il plateau nello spettro si allarga con l’aumentare del tempo totale L. A cosa é dovuta questa dipendenza? Ponendo “a mano” una lunghezza oltre L = 32 non si vede uno stesso cambimento, perché si trasforma a N = 8196: il segnale viene troncato. 21 9 250 Esempio 2. Aliasing. In presenza di piú frequenze, con alcune al di sopra della frequenza di Nyquist del campionamento, si verifica una ricombinazione della potenza dello spettro, con una persistenza di frequenze fittizie derivanti dalle oscillazioni sottocampionate, che sporca le frequenze ben campionate. nu1=4.5; nu2=8.5; nu3=18; nuc=300; t=[0:1/nuc:500]; phi=2*pi*t; x=sin(phi*nu1)+sin(phi*nu2)+sin(phi*nu3); subplot(2,1,1); plot(t,x); axis([0 3 -3 3]) Y = fft(x,4096); P=log(Y.*conj(Y)/4096); f = nuc*(0:2048)/4096; subplot(2,1,2); plot(f,P(1:2049)); axis([0 25 -10 10]) figure x=sin(2*pi*nu1*t); subplot(2,1,1); plot(t,x,’c’) nuc=11; t=[0:1/nuc:500]; phi=2*pi*t; x=sin(phi*nu1)+sin(phi*nu2)+sin(phi*nu3); hold on; plot(t,x,’black’); plot(t,x,’ob’) axis([0 5 -3 3]) Y = fft(x,4096); P=log(Y.*conj(Y)/4096); f = nuc*(0:2048)/4096; subplot(2,1,2); plot(f,P(1:2049)); axis([0 5.5 -10 10]) 22 3 3 2 2 1 1 0 0 −1 −1 −2 −2 −3 0 0.5 1 1.5 2 2.5 3 −3 0 10 10 5 5 0 0 −5 −5 −10 0 5 10 15 20 25 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 −10 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 Figura : Frequenze spurie in sottocampionamento. Le tre frequenze contenute nel segnale sono 4.5, 8.5 e 18, ma con il secondo campionamento, a νc = 11, soltanto la prima rimane individuabile. In alto si vede il segnale reale (sinistra) e campionato (destra). Nelle figure in basso vi sono invee lo spettro reale e quello ottenuto dal segnale campionato. Come si puó vedere nella figura di destra, le due frequenze sottocampionate compaiono con valori Ω2 = 2.5 (corrispondente di ν2 = 8.5: Ω2 = νc − ν2) e Ω3 = 4 (corrispondente di ν3 = 18: Ω3 = 2νc − ν3). 23 2 Segnali oscillanti s(t) = A(t)cos [φ(t)] à Ampiezza = A(t) à Fase = φ(t) à Frequenza media = ‘N o medio di rivoluzioni di 2π su un dato tempo’ multipli di 2π percorsi da φ(t) nel tempo ∆t = ∆t 1 φ(t + ∆t) − φ(t) = 2π ∆t 1 dφ à Frequenza istantanea ft = 2π dt ESEMPI a. s(t) = cos [2π (νt − 0.25)] π shift di fase: φ0 = − ; frequenza: f = ν 2 1 φ0 = − π / 2 φ0 = 0 0.5 0 −0.5 −1 0 1 2 24 3 4 b. s̈(t) + (2π)2 s(t) = 4πcos(2πt) : risonante s(t) = t cos [2π(t − 0.25)] ; ampiezza: A(t) = t 6 4 2 s(t) 0 −2 −4 −6 0 1 2 3 4 5 6 1 2 3 4 5 6 6 4 A(t) 2 0 0 £ c. s(t) = cos πt 2 ¤ : segnale chirp fase: φ(t) = πt2; frequenza: ft = 1 dφ =t 2π dt 10 8 m(t) 6 4 2 0 0 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 0.5 s(t) 0 −0.5 −1 0 25 3 FM Modulazione in frequenza = informazione in ft · ¸ Z t s(t) = Acos ωpt + 2π m(t0)dt0 0 ωp viene modulata dal 2π messaggio m(t) (e.g. per le radio max |m(t)| ¿ νp) La frequenza portante νp = t ft = νp + m(t) ESEMPI hπ i h π i´i 3π , ft = cos t a. s(t) = cos 2π 3sin t 2 2 2 h ³ 5 m(t) 0 −5 0 1 2 3 4 5 6 1 2 3 4 5 6 1 0.5 s(t) 0 −0.5 −1 0 26 b. Segnale modulato con deviazioni massime di ' 4.7 Hz ( = 3π/2) su una portante a 60Hz: h ³ h π i´i s(t) = cos 2π 60t + 3sin t 2 x(1:40001) = cos(2*pi*(60*(0:0.0005:20) + 3*sin(0.5*pi*(0:0.0005:20)))); X=fft(x,8001); P=log10(X.*conj(X)/8001); f = [0:0.25:1000]; plot(f,P(1:4001)) 1 1 0.5 0.5 s(t) 0 s(t) 0 −0.5 −0.5 −1 0 0.5 −1 0 1 t 0.05 0.1 t 5 4 2 0 dB dB 0 −2 −4 −10 0 60 ν 500 27 −6 40 55 60 65 ν 80 4 Modulazione a impulsi: spettri SINC r Z 2 sin(k) dx = e−ikxχ[−1,1](x) √ π k 2π R 1 χ [−1,1] 0.8 0.6 0.4 0.2 0 −10 −8 −6 −4 −2 0 2 4 6 8 10 1 dB (SINC) 0 −1 −2 −3 −4 −5 0 5 10 ν 15 20 Segnale modulato da impulsi sulla frequenza Frequenza costante a tratti Spettro SINC 28 25 %% Tempi a cui accendere e spegnere gli impulsi (messaggio) a(1)=3; a(2)=1; a(3)=4; a(4)=2; a(5)=2; a(6)=1; a(7)=2; a(8)=5; a(9)=3; a(10)=1; a(11)=1; a(12)=3; a(13)=2; w0=2; dw=3; vM=100; t(1) = 1/vM; w(1) = w0; %% Costruzione del messaggio T = 1; for k=1:13, for i=T+1:T+a(k)*vM, t(i) = i/vM; w(i) = w0+0.5*(((-1)^k)+1)*dw; end T=i; end %% Segnale modulato for i=1:T; x(i)=cos(2*pi*w(i)*t(i)); end %% Spettro(dB): |fft segnale|^2 in scala semilog X = fft(x,3000); P = log10(X.* conj(X) / 3000); f = [0:50/1500:50]; %% GRAFICI. 3 plot affiancati verticalmente. %% E’ indicata la SINTASSI MANUALE PER I PLOT. %% Grafico 1: Messaggio. subplot(3,1,1); plot(t,w,’b’); axis([0 30 1 6]) set(gca,’xtick’,[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,25,26,27,28,29,30]) set(gca,’xticklabel’,{’0’,’’,’’,’’,’’,’’,’’,’’,’’,’’, ’10’,’’,’’,’’,’’,’’,’’,’’,’’,’’, ’20’,’’,’’,’’,’’,’’,’’,’’,’’,’’,’30’},’Fontsize’,18) set(gca,’ytick’,[1, 2, 3, 4, 5, 6]) set(gca,’yticklabel’,{’’,’ 2’,’’,’’,’ 5’,’’},’Fontsize’,18) ylabel(’m(t)’,’Fontsize’,20) 29 %% Grafico 2: Segnale. subplot(3,1,2); plot(t,x,’k’); axis([0 30 -1 1]) set(gca,’xtick’,[0, 5, 10, 15, 20, 25, 30]) set(gca,’xticklabel’, {’0’,’’,’10’,’’,’20’,’’,’30’},’Fontsize’,18) set(gca,’ytick’,[-1, 0, 1]) set(gca,’yticklabel’,{’-1’,’0’,’1’},’Fontsize’,18) ylabel(’s(t)’,’Fontsize’,20) %% Grafico 3: Spettro. Si osservano 2 frequenze %% principali e l’assenza delle loro armoniche. subplot(3,1,3); plot(f,P(1:1501),’r’); axis([0 15 -5 3]) set(gca,’xtick’,[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) set(gca,’xticklabel’, {’0’,’’,’2’,’’,’’,’5’,’’,’’,’’,’’,’10’, ’’,’’,’’,’’,’15’},’Fontsize’,18) set(gca,’ytick’,[-5, -4, -3, -2, -1, 0, 1, 2, 3]) set(gca,’yticklabel’, {’-5’,’’,’’,’’,’’,’0’,’’,’’,’3’},’Fontsize’,18) text(1.75,-3.5,’frequenze di picco’,’Fontsize’,18) text(w0-0.2,-2,’\uparrow’,’Fontsize’,28) text(w0+dw-0.2,-2,’\uparrow’,’Fontsize’,28) text(8.75,1.2,’armoniche assenti’,’Fontsize’,18) text(8-0.2,-1.2,’\downarrow’,’Fontsize’,28) text(9-0.2,-1.2,’\downarrow’,’Fontsize’,28) text(10-0.2,-1.2,’\downarrow’,’Fontsize’,28) text(11-0.2,-1.2,’\downarrow’,’Fontsize’,28) text(12-0.2,-1.2,’\downarrow’,’Fontsize’,28) text(13-0.2,-1.2,’\downarrow’,’Fontsize’,28) ylabel(’|f(\nu)|^2 (dB)’,’Fontsize’,20) %% Per stampare su file in formato eps standard: %% -depsc2 = eps colore ; -deps2 = eps b/w orient landscape; print -depsc2 ’impulsi.eps’ 30 0 1 0 2 5 −5 0 0 3 −1 0 m(t) s(t) |f(ν)|2 (dB) 31 2 5 ↑ frequenze di picco ↑ 10 10 10 ↓ ↓ ↓ ↓ ↓ ↓ armoniche assenti 20 20 15 30 30 17/03/2005 Timbrica di una corda vibrante 1 † Le vibrazioni in una corda elastica (lunga L) ad estremi fissi sono in forma di onde stazionarie di lunghezza 2L λn = n La velocitá delle onde trasverse dipende dalla tensione e p v dalla densitá lineare come v = T /d. Detta f1 = , 2L frequenza fondamentale, si ha cosı́ la quantizzazione fn = nf1 “armoniche” Le onde stazionarie sono cioé vibrazioni nelle frequenze multiple intere della frequenza fondamentale, e questa dipende solo dalle proprietá della corda. L’orecchio risponde in maniera logaritmica alle frequenze. Questo fa sı́ che gli intervalli musicali corrispondano a rapporti fra frequenze, non a differenze‡: due frequenze distano un’ottava se sono l’una doppia dell’altra, una quinta se sono in rapporto 3 : 2, una terza maggiore se sono in rapporto 5 : 4. Nelle prime cinque armoniche si ritrova dunque la triade maggiore, riferimento chiave per la musica tonale. † Rif.: J.Roederer, “The Physics and Psychophysics of Music” Nell’orecchio i suoni (onde di pressione) diventano vibrazioni di una membrana con costante elastica (rigiditá) diversa da punto a punto. Ogni frequenza ne mette dunque in risonanza posizioni x diverse, secondo la relazione logaritmica x(ν) − x(2ν) ' 3.5 mm. ‡ 32 Analisi di Fourier delle oscillazioni di una corda pizzicata: a seconda della deformazione iniziale le armoniche hanno piú o meno peso nella timbrica uscente dalla corda†. Profilo iniziale: f (x) ∈ L2([0, L]), dunque f (x) = +∞ X cnbn(x) serie di Fourier n=−∞ bn(x) = e i2πnx/L 1 ; cn = L Z L e−i2πnx/Lf (x)dx 0 Estremi fissi: f (0) = f (L) = 0. La serie si riduce alla Z +∞ ³ πnx ´ ³ πnx ´ X 2 L f (x) = Ansen ; An = sen f (x)dx L L L 0 n=1 ν1 1 0 ν2 −1 10 L 0 ν3 −1 10 L/2 0 ν4 −1 10 L/3 2L/3 L 0 −1 10 ν5 L L/4 L/2 3L/4 L 0 −1 0 L/5 2L/5 3L/5 † 4L/5 L Queste si trasmettono poi alla cassa di risonanza, che le amplifica in maniera caratteristica per il suono dello strumento. 33 Esempio: x 0 ≤ x ≤ αL αL f (x) = x−L αL ≤ x ≤ L (α − 1)L 1 0 0 An 2 = L = ½Z 0 0.7 L L ¾ Z L ³ πnx ´ x ³ πnx ´ x − L dx + dx sen sen L αL L (α − 1)L αL αL 2 sen(πnα) α(1 − α) (πn)2 Queste armoniche vengono propagate come onde † 2 ∂ 2g(x, t) 2 ∂ g(x, t) =v ∂t2 ∂x2 con condizioni iniziali g(0, t) = g(L, t) = 0 ; g(x, 0) = f (x) , gt(x, 0) = 0 dando origine a vibrazioni g(x, t) = ∞ X ‡ Ansen ³ πnx ´ n=1 † L µ πnvt cos L ¶ Le vibrazioni elastiche sono una approssimazione: l’amplificazione ad opera della cassa di risonanza avviene per trasmissione di energia dalle vibrazioni, che viene cosı́ dissipata. ‡ Osservare che, nell’esempio, se α = p/q ∈ Q, mancano tutte le armoniche n = kq. 34 2 Analisi in tempo-frequenza † La modulazione di frequenza viene usata per trasmettere informazioni codificate: uno strumento di analisi adeguato per questi segnali deve quindi riuscire a decodificare il messaggio. La trasformata di Fourier puó al piú definire l’intervallo di modulazione: il suo scopo é infatti quello di valutare il peso delle varie componenti in frequenza sull’intero segnale. Per cogliere la (o le) frequenze che “istantaneamente” definiscono il messaggio occorre uno strumento di analisi locale, che al tempo t fornisca il peso che ha la frequenza ν nel segnale. Uno strumento di questo tipo é dato dalla WFT: Windowed Fourier Transform ¸ · £ ¤ T T Sia g(u) a supporto compatto, supp g(u) = − , 2 2 diciamo ft(u) = g(u − t)f (u). La WFT di f (t) si definisce come FT di ft(u) Z +∞ h i W FT f (t) (ν, t) = e−iνu ft(u)du T −∞ g(u) é detta finestra: seleziona una porzione di segnale sulla quale identificare il peso delle varie frequenze attraverso FT à composizione locale di frequenze. † Rif.: G.Kaiser, “A friendly guide to wavelets” 35 ESEMPIO: finestra campione ( ¡ 2πu ¢ 1 + cos T g (T )(u) = 0 − T2 6 u 6 T 2 altrove function g=window(u,T); g = 0; if (u > -0.5*T) & (u < 0.5*T) g = 1 + cos(2*pi*u/T); end; Localizzazione 2 Amplificato t=1 g(4)(u) t = −1 1 Attenuato Supporto (centrato in 0) 0 −5 −4 −3 −2 −1 0 36 1 2 3 4 5 −2 0 1 2 3 4 5 6 7 8 9 10 0 2 −1 0 1 2 3 4 5 6 7 8 9 10 0 1 0 0 1 2 3 4 5 6 7 8 9 10 1 0 1 0 0 1 2 3 4 5 6 7 8 9 10 1 2 −2 0 1 2 3 4 5 6 7 8 9 10 0 2 −1 0 1 2 3 4 5 6 7 8 9 10 g(1.5)(u−5) f(t) g(2)(u−3) f(t) f3(u) 37 f5(u) 2 APPLICAZIONE al segnale chirp function M=wft(x,T,nt,nnu,dB); % % % % x T nt nnu = = = = segnale da analizzare dimensione della finestra punti di t-risoluzione. al piu’ size(x)-T punti di nu-risoluzione. si = size(x); n = si(2); dt = (n-0.5*T)/nt; t = 0.5*T; for j = 1:nt, % inizializzazione finestra g(1:n)=0; % trova i numeri corrispondenti al t-supporto fra quelli in (1:n) k = find(-0.5*T + t <= (1:n) & (1:n) <= 0.5*T + t); % quanti sono: l e’ un vettore = (1,Nsupp). % se ne usera’ la seconda componente. l = size(k); % funzione finestra sui punti di supporto. g(k(1):k(l(2))) = 1 + cos(2*pi*((k(1):k(l(2)))-t)/T); % t-windowed signal ft(1:n) = x(1:n).*g(1:n); % fft solo sul supporto y = fft(ft(k(1):k(l(2))),nnu); % potenza spettrale P = log10(y.*conj(y)/nnu); % pulizia dal rumore a partire da -dB k = find(P < -dB); l = size(k); P(k(1:l(2))) = -dB-1; M(j,:) = P(1:nnu/2); t = t+dt; end; 38 39 31/03/2005 + 07/04/2005 Probabilitá - Valori Medi † 1 Il paradosso di S. Pietroburgo Un gioco di lanci di una moneta. Il giocatore G paga d $ per giocare e sceglie una faccia (testa), il banco B lancia. Se testa esce dopo n lanci, B paga a G 2n $. Questa é una mano (partita): una volta che G e B hanno concordato d, si continua a giocare fino a quando G non dice basta. Quanto puó essere disposto a pagare G per ogni mano? d = 2 $ : se T esce al primo lancio, B dá a G 2 $, altrimenti gli dá di piú. G guadagna o va in pareggio. d>2 $: ? Schema di una partita: 1 2n probabilitá che una mano finisca in n lanci = probabilitá che T esca solo al lancio n T T pn = C T 1/2 T C C T C C T 1/4 C T 1/8 C 1 2 3 † Per la teoria della probabilitá esestono molti ottimi testi. Uno per tutti a cui riferirsi é: William Feller “An Introduction to Probability Theory and its Applications” 40 Risultato di una mano: numero di lanci per far uscire T. ⇒ giocando N partite, se ne possono scrivere i risultati come successione numerica (in N) © ªN xj = risultato della j-esima mano xj j=1 Queste sono realizzazioni indipendenti di una variabile random ξ discreta (a valori in N): un suo campione. La distribuzione di probabilitá di ξ é data da pn = 1/2n: ∞ ∞ X X 1 1 pn = − 1 = −1=1 n 2 1 − 1/2 n=1 n=0 Dopo quanti lanci, in media, si concluderá la partita? ∞ X µ = n pn valor medio di ξ n=1 xN N 1 X xj = N j=1 media campionaria Osservazione: xN dipende dal campione, che a sua volta é il risultato di un fenomeno aleatorio. Dunque anche xN é una variabile random: giocando altre N partite si puó ottenere una media campionaria differente. Questa variabile random serve peró come stima di µ, e per questo si dice stimatore. La sua proprietá fondamentale é che converge in probabilitá a µ per N grande †. † Questo risultato é anche noto come “Legge dei Grandi Numeri”. 41 %% Paradosso di S. Pietroburgo T = 5000; %% numero di partite d = 12; %% posta: costo di una partita win(1) = 0; %% soldi di partenza %% N = numero di lanci prima che esca testa %% win = soldi precedenti + vincita - posta for i=1:T; flag = 0; N(i) = 0; while (flag < 1) z=rand(1,1); N(i) = N(i)+1; if z < 0.5 flag = 1; end end win(i+1) = win(i) + 2^N(i) - d; end M = max(N); %% media teorica avT = sum((1:100)./(2.^(1:100))); %% media campionaria avN = sum(N(1:T))/T; % % % % % % %% Processo del capitale in possesso subplot(2,1,1); plot(N(1:T),’.’) axis([1 T M-4.5 M+0.5]) ylabel(’N’,’Fontsize’,20); set(gca,’Fontsize’,18) subplot(2,1,2); plot(win(1:T)) ylabel(’$’,’Fontsize’,20); set(gca,’Fontsize’,18) %% Istogramma degli N: distribuzione 1/2^n h=hist(N,M); h=h/(2*h(1)); plot(h,’.’); axis([0.5 M+0.5 0 0.55]) clear z flag d i T M %% eliminazione dal workspace 42 14 12 10 8 6 4 2 0 1000 2000 3000 4000 5000 0.5 0.25 0.125 0.0625 0.0313 1 2 3 4 5 6 7 8 9 10 11 12 13 Aspettativa di Vincita: vn = 2n$ = vincita in una partita di n lanci se si prova a calcolare la vincita media, si ottiene che in ciascuna mano si possono vincere 2$ con probabilitá 1/2, 4$ con probabilitá 1/4, 8 $ con probabilitá 1/8, ... < v >= ∞ X vn pn = n=1 ∞ X 1=∞ n=1 Gioco con aspettativa di vincita infinita. 43 Questo gioco é basato su eventi rari: quasi sempre una partita dá un risultato basso, e piú la posta d é alta, piú saranno rare le partite in cui G vince su B. I risultati alti, peró, giocando molte partite ripagano tutte le perdite. Con “raro” si intende il fatto che la distribuzione di base é esponenziale, dunque ad esempio la probabilitá che una partita si concluda con piú di n∗ lanci é ∞ X 1 1 1 1 q(n∗) = n∗ + n∗+1 + n∗+2 + . . . = 2 2 2 2n ∗ n=n n∗ −1 X 1 1 = 1− = n n∗ −1 2 2 n=1 Fissato d, quindi, per “vincere” occorre terminare una partita con un numero n di lanci tale che vn ≥ d, ovvero £ ¤ £ ¤ n ≥ log2d + 1, e ció avviene con probabilitá 1/2 log2d cioé circa 1 volta su d partite†. Nella pratica, la successione numerica che interessa é quella dei soldi che si hanno in tasca partita dopo partita, che puó essere descritta da © ªN wj j=1 wj+1 = wj + 2xj+1 − d Nei seguenti grafici vi sono esempi di come puó andare un gioco di 5000 partite, con d=12 $, e di quanto siano gli eventi rari a dominarne gli esiti. † Con le parentesi quadre si intende qui la parte intera del numero reale. 44 14 N 13 12 11 10 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 4 1 x 10 $ 0.5 0 −0.5 −1 0 12 N 11 10 9 8 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 8000 6000 $ 4000 2000 0 −2000 0 45 13 N 12 11 10 9 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 4 3 x 10 2 $ 1 0 −1 0 14 N 13 12 11 10 4 4 x 10 3 $ 2 1 0 −1 0 46 13 N 12 11 10 9 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 2000 0 $ −2000 −4000 −6000 −8000 0 12 N 11 10 9 8 8000 6000 $ 4000 2000 0 −2000 0 47 15 N 14 13 12 11 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 4 4 x 10 3 $ 2 1 0 −1 0 13 N 12 11 10 9 4 4 x 10 3 $ 2 1 0 −1 0 48 2 Costruzione di Variabili Random Nell’esempio precedente la variabile random ξ • poteva prendere solo valori in N (discreta) 1 • aveva una distribuzione pn = n 2 Consideriamo ora una variabile random ξ diversa: • a valori in R (continua) • con densitá di probabilitá p(x) Il significato intuitivo della densitá di probabilitá p(x)dx = probabilitá che ξ prenda valori fra x e x + dx si puó comprendere in termini di istogramma: nei vari canali [x, x + ∆x], per un campione grande, si ha p(x). Esempio: ξ gaussiana standard µ 2¶ 1 x p(x) = √ exp − 2 2π 0.4 z=randn(1,10000); x=[-5:0.1:5]; h=hist(z,x); h=h/1000; bar(x,h); g = exp(-x.^2/2)/sqrt(2*pi); hold on; plot(x,g) 0.35 0.3 0.25 0.2 0.15 0.1 0.05 0 −5 49 0 5 Matlab dispone di due generatori random: uno normale standard (randn) ed uno uniforme fra 0 ed 1 (rand). Con quest’ultimo é possibile costruire variabili random aventi qualsiasi distribuzione di probabilitá, attraverso il metodo del rigetto: si estraggono coppie (x, y) con x nell’intervallo di dominio desiderato ed y ∈ [0, pM AX ], accettando x solo se y < p(x). Cosı́ entrano a far parte del campione di ξ, in un dato intervallo, tante occorrenze quanta é la probabilitá di averne. Esempio: Cauchy p(x) = 1 1 π 1 + x2 function x=cauchy(n) j=1; z1=rand(1,n); z2=rand(1,n); for i=1:n, a1=1400*z1(i)-700; a2=z2(i)/pi; if a2*pi*(1+a1*a1)<1 x(j)=a1; j=j+1; end; end; funzione richiamata da Yc=cauchy(1000000); x = -20:.2:20; div=.2*length(Yc); h=hist(Yc,x)/div; bar(x,h,’b’); axis([-21 21 0 0.35]); 50 La proprietá cruciale della distribuzione di Cauchy é la varianza infinita. L’integrale Z x2p(x)dx R infatti diverge. La ragione sta nella lenta decrescita delle code della distribuzione, che hanno un comportamento di potenza. Queste “code grasse” causano una statistica molto diversa da quella dell’esempio pn = 1/2n: qui gli eventi rari non sono cosı́ rari. É sufficiente guardare un’istogramma per accorgersi che le code impiegano molto a spegnersi: sono frequenti eventi anche molto intensi 50 0 −50 0 200 400 600 800 1000 1200 1400 1600 1800 2000 2200 0.3 0.2 0.1 0 −20 −15 −10 −5 0 51 5 10 15 20 3 Indipendenza e Correlazione Il concetto di variabile random é ció che permette di misurare eventi aleatori attraverso una mappatura dello spazio degli eventi sull’asse reale: attraverso la densitá di probabilitá (p.d.f.), l’importanza degli elementi dello spazio degli eventi rappresentativi del fenomeno random in questione si traduce in misura su R. Esempio: X variabile random relativa alle dimensioni delle foglie di un albero. La sua densitá di probabilitá descrive quanto é frequente l’occorrenza dei vari eventi (foglie di date dimensioni) pesandola su R (dimensioni). Con la misura dµ si calcolano quindi i valori medi come Z Z < f >= f (x)dµ(x) = f (x)p(x)dx R R 52 L’interdipendenza di due variabili random é legata alle relazioni fra i rispettivi eventi di riferimento. Queste si possono descrivere introducendo il condizionamento: P (A|B) = P (A ∩ B) P (B) rappresenta il condizionamento dell’evento B su A, ovvero il peso “specifico” che B ha nell’interferire con A. P é una misura di probabilitá sullo spazio degli eventi, a cui corrisponde univocamente una densitá di probabilitá in R. Poiché P (A|B) definisce la probabilitá (misura) di A condizionata a B, gli eventi si dicono indipendenti se P (A|B) = P (A), cioé se B non condiziona A. Due variabili random, che mappano eventi in intervalli di R, si dicono perció indipendenti se i loro eventi di riferimento sono indipendenti. 53 L’indipendenza aleatoria della variabile random X da Y indica che le realizzazioni dell’una non influiscono su quelle dell’altra. In generale, l’azione “simultanea” di X ed Y é regolata da una densitá di probabilitá congiunta in due variabili pX,Y (x, y), che definisce una mappatura bidimensionale degli eventi. pX,Y (x, y) é legata ad una densitá condizionata attraverso la formula di Bayes, che equivale alla relazione insiemistica precedente: pX,Y (x, y) pX|Y (x|y) = pY (y) Per variabili random indipendenti, dunque, la densitá di probabilitá congiunta fattorizza: X, Y indipendenti ⇒ pX (x)pY (y) e in questo modo non si ha condizionamento pX|Y (x|y) = pX (x) In particolare, l’indipendenza di due variabili random deve produrre l’annullamento della covarianza: h¡ ¢¡ ¢i cov(X, Y ) = E X − E(X) Y − E(Y ) = 0 e questo avviene proprio grazie alla fattorizzazione †. † La covarianza quantifica la somiglianza media delle fluttuazioni random di X ed Y , e se queste sono indipendenti, in quanto affinitá statistica deve annullarsi: Z Z Z ¡ ¢¡ ¢ ¡ ¢ ¡ ¢ x−E(X) y−E(Y ) pX,Y (x, y)dxdy = x−E(X) pX (x)dx y−E(Y ) pY (y)dy = 0 R2 R 54 R Se due variabili random X e Y sono note attraverso loro realizzazioni, cioé si possiedono due campioni statistici {xj } e {yj }, la covarianza si puó inferire utilizzando uno stimatore analogo a quello di media campionaria xN : la covarianza campionaria N 1 X cN ({xj } , {yj }) = (xj − xN )(yj − y N ) N j=1 La covarianza fra X e X stessa é la varianza var(X): alla covarianza contribuiscono anche le fluttuazioni delle singole variabili random, quindi una maniera naturale per “normalizzare” la covarianza ed ottenere un indice adimensionale porta alla definizione di correlazione: cov(X, Y ) corr(X, Y ) = p var(X)var(Y ) Il cui stimatore campionario é una composizione degli stimatori di covarianza/varianza e media campionarie: N X (xj − xN )(yj − y N ) j=1 rN ({xj } , {yj }) = v u N N X uX t (xj − xN )2 (yj − y N )2 j=1 55 j=1 La covarianza e la correlazione vengono spesso usate per quantificare l’interdipendenza fra due variabili random. Questo é possibile solo studiando la probabilitá congiunta: la valutazione di affinitá aleatoria della covarianza é una approssimazione non sempre sufficiente. Esempio: cov(X, Y ) si annulla per X, Y indipendenti, ma non é vero che variabili random a covarianza nulla siano indipendenti. Se diciamo Z = XY , questa variabile non é indipendente da X, ma se Y ha media nulla la covarianza é comunque zero ¡ 2 ¢ ¡ ¢ ¡ ¢ cov(X, Z) = E X Y −E X E XY = var(X)E(Y ) Occorre quindi tenere sempre presente la differenza fra dipendenza aleatoria e covarianza. Una correlazione nulla viene infatti considerata come “indipendenza al secondo ordine”: la covarianza rappresenta il secondo momento congiunto della distribuzione, e la terminologia é relativa al fatto che da cov(X, Y ) = 0 non si hanno informazioni sui momenti superiori (solo conoscendoli tutti é possibile ricostruire la probabilitá congiunta). Ció nonostante si tratta comunque di uno degli strumenti piú usati nell’analisi statistica sia per il suo significato intuitivo che per l’efficacia degli stimatori disponibili. 56 Correlazione campionaria fra due variabili indipendenti gaussiane generate con Matlab: function r=correla(x,y); n = min(length(x),length(y)); muX = mean(x); muY = mean(y); x2 = sum((x(1:n)-muX).*(x(1:n)-muX)); y2 = sum((y(1:n)-muY).*(y(1:n)-muY)); xy = sum((x(1:n)-muX).*(y(1:n)-muY)); den = sqrt(x2*y2); r = xy/den; confrontare il risultato ottenuto da x = randn(2,5000); r = correla(x(1,:),x(2,:)); con quello ottenuto dalle variabili dipendenti x = randn(1,5000); y = x.^3-x; r = correla(x,y); 5 0 −5 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 20 10 0 −10 −20 0 57 Teorema del Limite Centrale Se {Xi}N i=1 sono variabili random i.i.d. (indipendenti e identicamente distribuite), con media µ e varianza σ 2 finite, la variabile costruita come N 1 X YN = √ (Xi − µ) N i=1 converge in probabilitá, per N → ∞, ad una variabile gaussiana a media 0 e varianza σ 2: YN ∼ N (0, σ 2). Il TLC indica la convergenza normale della somma di variabili random a varianza finita: in questo senso la gaussiana é un attrattore per determinate distribuzioni. Legge dei Grandi Numeri Se {Xi}N i=1 sono variabili random indipendenti e identicamente distribuite (i.i.d.), con media µ e varianza σ 2 finite, la variabile costruita come N 1 X ZN = Xi N i=1 converge a µ quasi dappertutto sullo spazio degli eventi. La LGN costruisce una variabile ZN con varianza σ 2/N , che quindi ha limite deterministico. Questo fatto é alla base della costruzione di molti stimatori. 58 Applicazioni Numeriche/Esercizi: 1. Calcolare la correlazione due variabili gaussiane X e Y indipendenti. Come mai é diversa da 0? Vale la stessa cosa per la correlazione fra X e XY ? 2. Costruire X e Y gaussiane, e Z = X + Y . Qual é la loro correlazione? Disegnare plot(X,Z,’.’) e plot(X,Y,’.’): che differenze ci sono? Cos’é la densitá di probabilitá condizionata? 3. Per il teorema del limite centrale, preso {xj } un campione a varianza finita nullaoallora, per n e media PN N grande, il campione zN = j=1 xj tende ad avere una varianza campionaria pari a N volte la varianza di {xj }. Come si puó vedere con Matlab? 4. L’istogramma di un campione abbastanza grande ne fornisce la densitá di probabilitá corrispondente. Ció é assicurato dalla legge dei grandi numeri, che si puó applicare † alla distribuzione empirica #xi < x N che stima la distribuzione cumulativa e vi converge (in qualche senso). Calcolarla con Matlab su un campione gaussiano all’aumentare di N . FN (x) = † Questo é il caso del Teorema di Cantelli. 59 Esercizio 1: Lo stimatore r é una variabile random, perché dipende dalla realizzazione del campione. In particolare, se {xj }N j=1 N e {yj }j=1 sono realizzazioni indipendenti, allora r é una variabile random con varianza 1/N , gaussiana per N grande: si ha quindi √ un 95% √ di probabilitá che r risulti compreso fra −2/ N e 2/ N (quantili gaussiani). N = 20000; dbin = 0.002; norm = N*dbin; for i=1:20000 x=randn(1,5000); y=randn(1,5000); z=x.*y; r(i)=correla(x,A); end bin=[-0.1:0.002:0.1]; h=hist(r,bin)/norm; bar(bin,h); axis([-0.1 0.1 0 max(h)]) Questo codice permette di istogrammare la correlazione di X con Y o con Z = XY (A = Y o Z). Teoricamente si ha corr(X, Z) = 0, dunque dall’analisi campionaria ci si attende ancora “correlazione nulla”. La distribuzione gaussiana con varianza 1/N per la correlazione si ha peró solo fra campioni indipendenti: anche la correlazione fra X e Z sará piccola, ma seguirá una statistica differente. Studiando questa statistica é quindi possibile rifiutare l’ipotesi di indipendenza delle variabili †. √ Ad esempio se piú del 5% delle volte si ottiene una correlazione superiore a 2/ N . Questo é un test che non puó venire svolto quando si dispone di un solo campione. † 60 La statistica ottenuta da 2 × 104 campioni indipendenti ricalca perfettamente quella gaussiana con varianza 1/N . 30 25 20 Correlazione fra campioni indipendenti di N = 5000 e gaussiana a var 1/5000 15 10 5 0 −0.1 −0.05 0 0.05 0.1 Per corr(X, Z) la statistica ha varianza maggiore. Se si ha la possibilitá di generare molti campioni di X e Z é cosı́ possibile valutare l’effettiva indipendenza delle variabili anche attraverso la correlazione. 30 25 20 Correlazione: campioni NON indipendenti di N = 5000 e gaussiana a var 3/5000 15 10 5 0 −0.1 −0.05 0 61 0.05 0.1 Esercizio 2: Anche per questo punto osserviamo l’intera distribuzione della correlazione campionaria. Questa volta il suo valore medio (la correlazione teorica) non sará 0: cov(X, X + Y ) corr(X, X + Y ) = p var(X)var(X + Y ) E [X(X + Y )] = p var(X) (var(X) + var(Y )) 1 = √ 2 Dove si é usata la media nulla delle variabili X e Y e la loro indipendenza: E [XY ] = cov(X, Y ) = 0. 50 40 30 20 10 0 0.67 0.68 0.69 0.7 0.71 62 0.72 0.73 0.74 Disegnamo ora lo Scatter Plot x=randn(1,5000); y=randn(1,5000); z=x+y; plot(x,z,’.’) 6 4 2 Z 0 −2 −4 −6 −4 −3 −2 −1 0 X 1 2 3 4 La densitá di probabilitá condizionata fZ|X (z|x) é una densitá per la variabile Z, pesata con il condizionamento di X, e la si puó costruire numericamente istogrammando lo scatter plot lungo Z considerando i punti fra x e x+dx. In figura é messo in evidenza fZ|X (z|x = 1). 63 Un esempio ancora piú evidente di come lo scatter plot possa essere utile per quantificare l’interdipendenza fra variabili random é dato dai campioni dell’esercizio 1: di X e Z = XY . Una valutazione la loro non indipendenza attraverso la correlazione richiede di ricorrere a statistiche su piú campioni, non sempre disponibili. Con lo scatter plot si ottiene invece immediatamente una distribuzione estremamente diversa da quella di variabili indipendenti. 4 8 3 6 2 4 1 2 Y0 Z0 −1 −2 −2 −4 −3 −6 −4 −4 −3 −2 −1 0 X 1 2 3 4 −8 −4 −3 −2 −1 0 X 1 2 3 4 A sinistra si osserva isotropia, carattere che corrisponde a indipendenza, mentre a destra é ben visibile una forte interdipendenza fra X e Z. 64 14/04/2005 Moto Browniano † 1 Einstein e la diffusione Il lavoro di Einstein arriva dopo le molte osservazioni del moto di particelle sospese in fluidi, ad opera di biologi e botanici, e dopo i lavori di fine ottocento di meccanici statistici come Boltzmann e Maxwell. La teoria cinetica dei gas e la termodinamica dell’equilibrio erano giá state introdotte, e ora mancava un collegamento fra questi strumenti e quei moti irregolari: la loro comprensione non poteva rifarsi alla meccanica, e la descrizione delle traiettorie doveva perdere il determinismo. † Un articolo sempre interessante é “On the theory of the brownian motion”, di Ornstein e Uhlenbeck su Phys.Rev. 36, 823-841 (1930). Di riferimento per la fisica dei processi di Markov sono invece i libri di H.Risken “The Fokker-Planck equation” e di N.G.Van Kampen “Stochastic processes in physics and chemistry”. 65 Moto Browniano (Einstein, 1905) Risultato di un fenomeno di diffusione delle particelle sospese ad opera dei moti molecolari, determinati dalla cinetica dell’ambiente all’equilibrio (bagno termico). Le traiettorie sono caratterizzate dalle seguenti proprietá: 1. é possibile introdurre un intervallo di tempo τ ¿ del tempo di osservazione, tale che i movimenti di una particella in intervalli τ differenti siano indipendenti 2. in un intervallo τ la posizione della particella viene incrementata di una quantitá random ∆ 3. in presenza di ν particelle in sospensione per unitá di volume, in ciascuna regione interessata dal moto si ha ∂ν un flusso† di particelle pari a −D , con costante di ∂x diffusione D = kB T /γ (γ = frizione dell’ambiente). 4. la relazione fra la distribuzione degli incrementi ∆ e la diffusione é data in termini della varianza: σ 2(∆) = 2Dτ si ottiene cosı́ l’equazione per la densitá di probabilitá del moto delle particelle sospese ∂p(x, t) ∂ 2p(x, t) =D ∂t ∂x2 † Questa é la legge di Fick della diffusione, qui relazionata alla teoria cinetica dei gas. 66 Ornstein, Uhlenbeck e i processi stocastici Per descrivere le traiettorie é possibile anche utilizzare una rappresentazione meccanica dell’azione dell’ambiente, introducendo la nozione di forzante stocastica: gli urti subiti da una particella in un bagno termico si possono rappresentare come impulsi casuali non correlati fra loro. Per una particella in un ambiente che induce queste fluttuazioni e dissipa energia a causa degli attriti si puó scrivere l’equazione di Langevin nella velocitá: √ dv(t) = −γv(t) + DΓ(t) dt dove Γ(t) é una famiglia di variabili aleatorie a media nulla e non correlate a tempi diversi (impulsi random)†: E(Γ(t)) = 0 ; corr(Γ(t), Γ(s)) = δ(t − s) Viene definito cosı́ un processo stocastico: una evoluzione le cui traiettorie sono oggetti probabilistici descritti da una equazione di Fokker-Planck per la p.d.f. della velocitá (aleatoria) v, che evolve in t: ∂p(v, t) ∂ 2p(v, t) ∂p(v, t) + γ =D ∂t ∂v 2 ∂v L’ipotesi di non correlazione nella forzante é quella del “caos molecolare” e Γ viene anche detto rumore bianco. † Si considera cioé, in ciascun istante t, una variabile random i.i.d. rispetto alle precedenti. Nell’approssimazione di Einstein questo significa considerare τ infinitesimo. 67 Random Walk gaussiano e Teorema del Limite Centrale La proprietá 1) delle traiettorie browniane (Einstein) viene detta degli incrementi stazionari indipendenti (Lévy): ogni salto é indipendente dai precedenti e la distribuzione dei salti ∆ effettuati nell’intervallo τ dipende solo da τ †. Se diciamo Xt la “posizione del processo al tempo t”, possiamo introdurre gli incrementi, o salti, come ∆Xt = Xt+τ − Xt e la proprietá di Lévy imponendo che ∆Xt = Zt siano variabili random i.i.d. la cui p.d.f. dipende solo da τ . Considerando τ come intervallo unitario, si puó lavorare a tempi discreti e definire cosı́ il processo operativamente: Xt+1 = Xt + Zt Con la condizione iniziale X0 = 0 si ottiene dunque Xt+1 = t X Zt n=0 cioé la posizione del processo al tempo t puó pensarsi come somma di t variabili i.i.d.. Se hanno varianza σ 2 finita, il moto browniano “ricade” dunque nel TLC: Xt ∼ N (0, tσ 2) † Un processo stocastico di questo tipo é detto di Lévy. 68 La gaussianitá del processo é coerente con l’equazione della diffusione, la cui soluzione é appunto 1 2 e−x /4Dt p(x, t) = √ 4πDt e la scrittura ad incrementi si puó intendere come versione discreta dell’equazione di Langevin. Per visualizzare il processo risultante occorre generare P molte traiettorie Xt = Zt infatti per t diversi si hanno variabili random Xt con diversa p.d.f.. L’evoluzione della densitá di probabilitá puó essere istogrammata solo con molte realizzazioni di ciascuna Xt: per questo ciascuna traiettoria va considerata come un unico oggetto random. Ogni traiettoria é una realizzazione del processo. subplot(2,1,1) for n=1:200; z=randn(1,500); for i=1:500; x(i)=sum(z(1:i)); end; for i=1:50; y(i)=x(10*i); end; plot(y,’.’); hold on end subplot(2,1,2); plot(x) 69 100 50 0 −50 −100 0 100 200 300 400 500 100 200 300 400 500 10 0 −10 −20 0 Nel riquadro superiore sono state plottate a punti molte traiettorie sovrapposte, mettendo in risalto come a ciascun t la densitá di probabilitá vari: in particolare si nota l’aumento della varianza e la media sempre circa nulla. Nel riquadro inferiore si ha una traiettoria browniana: per ciascun t é stata scelta una realizzazione della variabile Xt, formando cosı́ una realizzazione del processo stocastico. 70