3 Densità di probabilità di funzioni di variabili aleatorie

3
Cenni di teoria della probabilità: la funzione densità di probabilità, il valor medio e la
deviazione standard
Matlab consente di calcolare efficacemente i parametri valor medio e deviazione standard di una
variabile aleatoria, oltre che ottenere la funzione densità di probabilità.
1
La funzione densità di probabilità
Le funzioni
x=rand(size(t)) oppure
x=randn(size(t)), con t definito nella maniera ormai usuale :
t0=0.01
N=100000
t=(-N/2:N/2-1)*t0
assumono valori aleatori per ogni valore di t.
Nel primo caso x varia uniformemente tra 0 e 1. Nel secondo caso gli estremi di variabilità di x
sono –inf e +inf e la variabile ha densita’ di probabilita’ gaussiana, con media zero e varianza
unitaria.
L’interesse, nei confronti di queste funzioni, è rivolto a definire la probabilità che il valore di x sia
compreso in un intervallo definito, interno al campo di esistenza.
A questo proposito l’utilizzo della function hist permette di avviare un procedimento che consente
di calcolare la funzione densità di probabilità (pdf) di x.
[n_casi,x_]=hist(x,n)
restituisce :
un vettore x_ costituito da n elementi che suddividono in modo uniforme
l’intervallo di esistenza degli elementi di x.(massimo di x –minimo di x).
Nel caso di x=rand(size(t)), l’intervallo di esistenza di x è tra 0 ed 1; questo
intervallo viene suddiviso in n intervalli uguali contigui; gli elementi di
x_sono i punti centrali di questi intervalli.
un vettore n_casi che definisce, in corrispondenza di ciascuno degli intervalli
e degli elementi di x_, il numero di volte che x assume un valore interno
all’intervallo stesso.
Se si divide il vettore n_casi per N ( numero totale di casi) si ottiene, per ogni intervallo, la
frequenza relativa del fenomeno. Questo valore di frequenza relativa, per N tendenta all’infinito,
uguaglia la probabilità che la variabile x assuma valori interni all’intervallo definito. Si noti come,
per N tendente ad infinito, la grandezza freq risulti indipendente da N;
freq=n_casi/N
freq è’ però ancora dipendente dall’ampiezza dell’intervallo e quindi da n.
L’ampiezza dell’intervallo si ottiene come differenza tra due elementi contigui di x_:
passo=x_(1,2)-x_(1,1)
La funzione ddp=freq/passo, tende ad essere indipendente da passo, quando questo valore tende a
0 (cioè n tende ad infinito); essa è definita densità di probabilità.
La funzione densità di probabilità ha queste caratteristiche:


l’integrale (in x) tra i due estremi di esistenza di x è pari ad 1
l’integrale tra due valori x1 e x2 dà come risultato la probabilità che x sia compreso
tra x1 e x2.
Con valori abbastanza elevati di N e n, si ottiene una buona approssimazione alla densita’ di
probabilita’.
La function pdf1
Dati di ingresso:
x
n (numero di intervalli) o n_( vettore dei punti centrali degli intervalli, in numero di n) in
questo caso x_=n_
jplot : se assume valore 1, viene visulalizzata la funzione pdf_x
Dati in uscita
ddp
x_.
File pdf1.m
function [ddp,x_]=pdf1(x,n_,jplot)
N=length(x);
[ncasi,xx_]=hist(x,n_);
passo=xx_(2)-xx_(1);
freq=ncasi/N;
denx=freq/passo;
if length(n_)>1
if max(n_)>=max(x) & min(n_)<=min(x)
ddp=denx
x_=xx_
else
disp('errore in n_; non comprende l''intervallo in cui esiste x')
ddp=100;
x_=xx_;
end
end
if length(n_)==1
d=max(xx_)-min(xx_);
x_=min(xx_)-d*0.2:passo:max(xx_)+d*0.2;
denxx=zeros(size(x_));
I=find(x_<=min(xx_));
denxx(I)=0;
Imax=max(I);
II=find(x_>=max(xx_));
denxx(II)=0;
IImin=min(II);
denxx(Imax+1:1:IImin)=denx(1:1:length(denx));
ddp=denxx;
end
if jplot==1
plot(x_,real(ddp))
axis([min(x_) max(x_) 0 1.6*max(ddp)])
end
return
le variabili rilasciate da pdf1 sono, per una variabile aleatoria RAND e con n=10:
ddp = (ordinata delle figure : densità di probabilità)
Columns 1 through 7
0
0
1.0003
0.9992
1.0011
1.0007
1.0035
Columns 8 through 13
1.0022
0.9979
0.9989
0.9983
0.9981
0
x_ = (ascissa delle figure, punti centrali degli intervalli di accumulo delle probabilità)
Columns 1 through 7
-0.1300 -0.0300
0.0700
0.1700
0.2700
0.3700
0.8700
0.9700
1.0700
Columns 8 through 13
0.5700
0.6700
0.7700
0.4700
Densità di probabilità di rand
1.4
densità di probabilità di rand
1.2
1
0.8
0.6
0.4
0.2
0
-0.2
0
10000 elementi:
1000000 elementi
0.2
0.4
0.6
linea blu
linea rossa
0.8
1
1.2
Densità di probabilità di randn
0.45
densità di probabilità di randn
0.4
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
-8
-6
10000 elementi
1000000elementi
-4
-2
0
linea blu
linea rossa
2
4
6
8
2
Funzioni di Matlab che calcolano il valore medio e la varianza di x.
x_medio=mean(x)
std_x=std(x) .
Le stesse grandezze possono essere ottenute mediante l’ operazione di integrazione del prodotto
della funzione di densità di probabilità per x, o per x^2, rispettivamente.
3
Densità di probabilità di funzioni di variabili aleatorie
Per calcolare la densita’ di probabilita’ della somma di due varibili aleatorie x e y, con Matlab,
possedendo i due vettori x e y da sommare, si ottiene z=x+y; successivamente si calcola pdf_z.
Analogamente si può procedere per il calcolo della densità di probabilità di y=f(x) (densità di
probabilità di funzione di variabile aleatoria).
La densità di probabilità della somma di due variabili aleatorie indipendenti si ottiene,
analiticamente, convolvendo le densità di probabilità delle due variabili. Lo stesso risultato si
ottiene ovviamente con il seguente procedimento, applicando le proprieta’ delle trasformate:
1. calcolo delle trasformate di Fourier delle densità di probabilità delle variabili da sommare
2. prodotto delle due trasformate
3. antitrasformazione di Fourier del prodotto
Casi di interesse:
somma di 2 variabili aleatorie indipendenti ,
con densità uniforme
1.4
densità di x e x+y=z
1.2
1
0.8
0.6
0.4
0.2
0
-0.5
densità di x e y
densità di z=x+y
0
0.5
1
linea blu
linea rossa
1.5
2
2.5
Somma di due variabili aleatorie
densità di x e y
densità di z=x+y
densità normale
linea blu
linea rossa
0.45
densità di probabilità di z=x+y e di x
0.4
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
-10
-8
-6
-4
-2
0
2
4
6
8
10
somma di una costante e di una variabile aleatoria con densità normale; calcolo della probabilità di
x<=0
x=randn(1,N)
linea blu
z=1+x
linea rossa
0.5
densità di 1+randn
0.45
0.4
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
-5
-4
-3
-2
-1
0
1
2
Il calcolo è stato eseguito con le seguenti istruzioni;
N=1000000
x=randn(1,N);
[ddp_x,x_]=pdf1(x,100,1);
y=randn(1,N);
z=1+x;
[ddp_z,z_]=pdf1(z,100,1);
% calcolo della probabilità z<=0
% =area sottesa dalla linea rossa tra –infinito e 0.
I=find(z_<=0)
Int=sum(ddp_z(I))*passo(z_)
Il risultato dell’integrazione è
Int =
0.1610
3
4
5
logaritmo di una variabile aleatoria con densità uniforme.
Densità di
x=rand(1,N)
z=-log(x)
linea blu
linea rossa
2.5
densità di x= RAND e di -log(x)
2
1.5
1
0.5
0
-2
4
-1
0
1
2
3
4
5
6
7
Potenza
Mediante i comandi mean e std si può calcolare la potenza di x (variabile aleatoria o realizzazione
di un processo casuale, cioe’ un segnale con potenza finita)
Potenza_x=mean(x)^2+std(x)^2.
Definire un vettore frequenza f tra –50hz e +50HZ- PASSOF e con PASSOF =0.1HZ
Definire la funzione Filtro come passabanda centrato a 10 hz(+-) e ampiezza di banda 5 hz usando
trarect(t, media , durata)