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