Sunteți pe pagina 1din 28

Universitatea din Bucuresti

Facultatea de Matematica si Informatica

CURS nr. 3 TEHNICI DE SIMULARE

1. Algoritmi de generare a numerelor aleatoare


2. Metode generale de simulare a v.a.:
metoda inversa

Lect. dr. Bianca Mogos


Continut

I Notiuni ajutatoare (NA)


I Proprietati ale functiei de repartitie
I Constructia campului de probabilitate (, B, P) pornind de la o
functie F (x) ce ndeplineste 3 proprietati de baza ale unei
functii de repartitie
I Functii de o variabila aleatoare
I Structura generala a unui algoritm de generare/simulare a
unei variabile aleatoare
I Algoritmi de generare a numerelor aleatoare
I Metode generale de simulare a variabilelor aleatoare: Metoda
inversa
(NA): Proprietati ale functiei de repartitie
Fie (, B, P) un camp de probabilitate si X : R o variabila
aleatoare.
Definitie
Functia FX : R [0, 1] definita prin
not
FX (x) = P({ |X () x}) = P(X x) (1)
se numeste functia de repartitie a variabilei aleatoare X .
Proprietati ale functiei de repartitie
1. FX (x) [0, 1] , lim FX (x) = 1, lim FX (x) = 0.
x x
2. FX (x + h) FX (x), pentru h > 0, deoarece
FX (x + h) = FX (x) + P({ |x < X () x + h}).
3. FX (x) este o functie continua la dreapta, adica:
lim FX (x + h) = FX (x)
h0
h>0
(NA): Constructia unui camp de probabilitate (, B, P) si
a unei variabilei aleatoare X : R pornind de la o
functie F (x) ce ndeplineste 3 proprietati de baza ale unei
functii de repartitie (1)
Ipoteza: Fie functia F (x) ce ndeplineste proprietatile 1., 2. si 3.
prezentate pe slide-ul anterior.
I Fie spatiul de selectie = (, )
I Definim B ca fiind algebra generata de subintervalele de
forma
(x1 , x2 ], (, x2 ], (x1 , ), (, )
ale multimii = (, )
I Definim variabila aleatoare (v.a.) X : R prin
X () = ,
(NA): Constructia unui camp de probabilitate (, B, P) si
a unei variabilei aleatoare X : R pornind de la o
functie F (x) ce ndeplineste 3 proprietati de baza ale unei
functii de repartitie (2) continuare

I Definim functia de probabilitate P : B [0, 1] prin

P(x1 < X x2 ) = F (x2 ) F (x1 ), x1 , x2 R, x1 < x2


P( < X x2 ) = F (x2 )
P(x1 < X < ) = 1 F (x1 )
P( < X < ) = 1

[
X
P( An ) = P(An ), pentru An B, Ai Aj = , i 6= j
n=1 n=1
(NA): Constructia unui camp de probabilitate (, B, P) si
a unei variabilei aleatoare X : R pornind de la o
functie F (x) ce ndeplineste 3 proprietati de baza ale unei
functii de repartitie (3) continuare

Observatii:
1. Se verifica ca X este v.a. si ca P este functie de probabilitate
binedefinita, folosind proprietatile din ipoteza ale functiei F (x).
2. F (x) = FX (x), adica este functia de repartitie a variabilei X .
3. Daca F (x) este o functie derivabila si f (x) este densitatea de
repartitie a variabilei X si este o functie integrabila atunci putem
defini functia de probabilitate prin
Z x2
P(x1 < X x2 ) = f (x)dx, pentru x1 < x2 .
x1
Functii de o variabila aleatoare (1)

I Fie (, B, P) un camp de probabilitate.

I Fie X : R o v.a. care ia valori n D R, : D R,


continua si
|X () 1 (A) B, A (D).


I Atunci v.a. Y = (X ) : (D) R are repartitia data de


P({ |Y () A} = P( |X () 1 (A) )) (2)


pentru orice interval A (D) si 1 (A) = {z|(z) A}.


Functii de o variabila aleatoare (2): Exemplu 1

Propozitie
Daca X N(m, 2 ) atunci Y = e X are densitatea de repartitie:
1 (ln y m)2
fY (y ) = e 2 2 ,y > 0 (3)
y 2

Demonstratie
FY (y ) = P({ |Y () y }) = P(e X y ) = P(X ln y ) =
= FX (ln y ) =
Z ln y
1 (tm)2
= e 22 dt.
2

Definitie
Variabila aleatoare Y avand densitatea de probabilitate (3) se numeste
lognormala.
Functii de o variabila aleatoare (3): Exemplu 2

Propozitie
Daca X U(0, 1) atunci variabila aleatoare
 1/b
1
Y = ln(1 X )
a
cu a, b > 0 are densitatea de probabilitate
b
f (y ) = aby b1 e ay , 0 < y < . (4)

Definitie
O variabila aleatoare cu densitatea de probabilitate (0.4) se numeste
Weibull cu parametrii a si b si este notata W (a, b).
Structura generala a unui algoritm de generare/simulare a
unei variabile aleatoare

Intrare F (x): functia de repartitie a variabilei X


pe care ne propunem sa o simulam

Pas 1 Se genereaza valorile de selectie u1 , u2 , . . . , un asupra


v. a. U1 , U2 , . . . , Un uniforme pe [0,1]

Pas 2 Se defineste X = (U1 , U2 , . . . , Un ) a..


F (x) = P(X x), x

Pas 3 Se obtine valoarea de selectie dorita x = (u1 , u2 , . . . , un )

Iesire Valoarea de selectie, x, a v.a. X


Numere aleatoare

I Majoritatea metodelor de generare a v.a. se bazeaza pe ge-


nerarea unor numere aleatoare uniform distribuite pe intervalul
(0,1).

I Datorita calculatorului avem posibilitatea de a genera foarte


usor numere aleatoare uniforme.

I Totusi, trebuie cunoscut faptul ca numerele generate de calcu-


lator sunt pseudo-aleatoare, deoarece acestea sunt generate cu
un algoritm determinist.
Numere aleatoare uniform distribuite
Fie (, B, P) un camp de probabilitate.
Definitie
(Variabila aleatoare uniforma)
Spunem ca variabila aleatoare continua U : R este repartizata
uniform pe intervalul [a, b] si scriem U U(a, b) daca densitatea
sa de repartitie este de forma:
1 , daca x [a, b]

fU (x) = ba (5)
0, altfel

Functia de repartitie FU (x) a v.a. U U(a, b) este definita prin




0, daca x a

x a
FU (x) = , daca x (a, b) (6)

ba

1, daca x b

Observatii referitoare la repartitia uniforma si v.a. uniforme

I Probabilitatea ca v.a. uniforma U U(a, b) sa cada ntr-un


interval [u1 , u2 ], a u1 < u2 b este proportionala cu
lungimea intervalului:
u2 u1
P(u1 < U u2 ) = . (7)
ba

I Pentru a genera numere aleatoare uniform distribuite pe un


interval [a,b], si scriem X U(a, b), pornind de la numere
generate uniform pe intervalul [0,1] se poate folosi
transformarea
X = (b a) U + a, (8)
unde U U(0, 1).
Generarea numerelor uniforme n Matlab (1)

I In Matlab exista functia rand pentru generarea variabilelor alea-


toare uniforme.

I rand(n), unde n este un numar natural, returneaza o matrice de


dimensiune n n avand ca elemente numere aleatoare uniform
distribuite ntre 0 si 1.

I rand(m, n), unde m, n sunt numere naturale, returneaza o ma-


trice de dimensiune m n avand ca elemente numere aleatoare
uniform distribuite ntre 0 si 1.
Generarea numerelor uniforme n Matlab (2)
I O secventa de numere aleatoare generata n Matlab depinde
de samanta sau starea generatorului. Starea este resetata
la valoarea implicita n momentul pornirii Matlab-ului, astfel
aceeasi secventa de variabile aleatoare este generata la o noua
pornire a Matlab-ului. Acesta poate fi un avantaj n situatiile n
care analistul are nevoie sa reproduca rezultatele unei simulari
pentru a verifica anumite concluzii.
I rng(SD) seteaza samanta generatorului pe bazantregului neneg-
ativ SD
I rng(shuffle) seteaza samanta generatorului pe baza momen-
tului curent de timp
I rng(default) reseteaza setarile generatorului la valorile initiale,
si anume, se foloseste generatorul Mersenne Twister cu samanta
0.
Generarea numerelor uniforme n Matlab (3)
Exemplu care ilustreaza utilizarea functiei rand.
% Generam un vector de numere aleatoare pe intervalul (0,1).
x = rand(1,1000);
% Histograma esantionului generat in x.
[N,X] = hist(x,15);
% x: multimea esantion
% 15 reprezinta numarul de dreptunghiuri ale histogramei
% N: vector continand numarul de elemente din fiecare dintre drep-
tunghiuri.
% X: vector continand centrele dreptunghiurilor
% Folosirea functiei bar pentru reprezentarea grafica a histogramei.
bar(X,N,1,w)
title(Histograma asociata unei variabile aleatoare uniforme)
xlabel(X)
ylabel(Frecventa absoluta)

Histograma rezultata este prezentata n Figura 1.


Generarea numerelor uniforme n Matlab (4)

Histograma asociata unei variabile aleatoare uniforme


90

80

70

60
Frecventa absoluta

50

40

30

20

10

0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Figura : 1 Histograma asociata unui esantion de numere aleatoare


uniform distribuite
Metoda inversa (1): Teorema lui Hincin
Propozitie
Fie X o variabila aleatoare (v.a.) cu functia de repartitie F (x) in-
versabila si de tip continuu. Atunci variabila aleatoare Y = F (X )
este repartizata uniform pe [0, 1].

Teorema (Teorema lui Hincin)


Fie U U(0, 1) si F (x) o functie de repartitie inversabila, de tip
continuu. Atunci variabila aleatoare
X = F 1 (U) (9)
este o variabila aleatoare continua cu functia de repartitie F (x).
Demonstratie: Functia de repartitie a v.a. X este
P(X x) = P(F 1 (U) x) = P(U F (x))
deoarece F este monoton crescatoare.
Cum U U(0, 1) rezulta FU (u) = u pentru u [0, 1]. Obtinem
astfel P(X x) = F (x).
Metoda inversa (2): Descrierea metodei

I este introdusa ca o consecinta directa a teoremei lui Hincin

I se aplica n cazul n care functia de repartitie se poate inversa


usor

I daca am putea produce valorile de selectie u1 , u2 , . . . , un asupra


v.a. U U(0, 1) si am cunoaste functia de repartitie F a vari-
abilei X atunci am putea produce valorile de selectie x1 , x2 , . . . , xn
asupra lui X cu formula xi = F 1 (ui ), 1 i n
Metoda inversa (3): Algoritm pentru simularea unor
variabile aleatoare continue

Intrare F (x): functia de repartitie a variabilei X


pe care ne propunem sa o simulam

Pas 1 Se genereaza o valoare de selectie u uniforma pe [0,1]

Pas 2 Se determina expresia inversei functiei de repartitie F 1 (u)

Pas 3 Se obtine valoarea de selectie dorita x = F 1 (u)

Iesire Valoarea de selectie, x, a v.a. X


Metoda inversa (4): Variabile aleatoare continue care pot
fi simulate folosind metoda inversa

Repartitia Densitatea f Inversa F 1


1
Exp(), f (x) = e x , x > 0 x = ln(u)

>0

Weib(0, 1, ), f (x) = x 1 e x x = ( ln(u))1/
>0

1 1
Cauchy f (x) = ,x R x = tan (u 1/2)
1 + x2
1 1
Arcsin f (x) = , x [1, 1] x = sin (u 1/2)
1 x2
Metoda inversa (5): Exemplu simularea unei variabile
aleatoare avand repartitia Exp(), > 0
I Se determina functia de repartitie a unei v.a. X Exp():
Z x
F : R [0, 1], F (x) = f (t)dt =

(10)
1 e x , x > 0

=
0, x 0

I Se determina functia inversa a functiei de repartitie F (0,) :
pentru u (0, 1), determinam x > 0 a.. F (x) = u. Obtinem
inversa functiei F (0,) definita prin
ln(1 u)
F 1 : (0, 1) (0, ), F 1 (u) = (11)

I Din Teorema lui Hincin rezulta ca
X = ln(U)/, U U(0, 1) (12)
este o v.a. repartizata Exp().
Metoda inversa (6): Histograma asociata variabilei
aleatoare exponentiale
Metoda inversa (7): Simularea unei variabile aleatoare
discrete (1)
I Fie v.a. discreta X definita prin repartitia
  X m
x1 x2 . . . xm
X : , pi = 1, x1 < x2 < . . . < xm .
p1 p2 . . . pm
i=1
(13)
I Functia de repartitie a v.a. X este data de


0 daca x < x1



p1 daca x1 x < x2
p1 + p2 daca x2 x < x3


F (x) = ... ... ...
p1 + p2 + . . . + pk daca xk x < xk+1




. .. ... ...




x xm

1 daca
(14)
Metoda inversa (8): Simularea unei variabile aleatoare
discrete (2)
I Fie (, B, P) un camp de probabilitate si
X , U : R, U U(0, 1).
I Definim v.a. X = Y U, X () = Y (U()), , unde
functia Y : [0, 1] {x1 , x2 , . . . , xm } este definita prin


x1 , 0 < u F (x1 )
x2 , F (x1 ) < u F (x2 )

Y (u) = (15)

... ...
xm , F (xm1 ) < u 1

def
I Functia de probabilitate a v.a. X , f (xi ) = P(X = xi ), devine
P(X = xi ) = P({ | Y (U()) = xi }) =
= P({ | F (xi1 ) < U() F (xi ) }) =
= F (xi ) F (xi1 ) = pi .
(16)
Metoda inversa (9): Algoritm pentru simularea unor
variabile aleatoare discrete
I Regula de generare a unei valori de selectie asupra v.a. X ,
pornind de la valoarea de selectie u a v.a. U U(0, 1):
X = xi daca F (xi1 ) < u F (xi ) si x0 < x1 (17)
I Algoritmul pentru simularea v.a. X :

Intrare Repartitia variabilei X


X m
P(X = xi ) = pi , pi = 1, x1 < x2 < . . . < xm .
i=1
Pas 1 Se genereaza o valoare de selectie u uniforma pe [0,1]
Pas 2 Daca u p1 atunci x = x1
Altfel daca u p1 + p2 atunci x = x2
Altfel daca u p1 + p2 + p3 atunci x = x3
...
Altfel daca u p1 + p2 + . . . + pm atunci x = xm
Iesire Valoarea de selectie, x, a v.a. X
Metoda inversa (10): Exemplu simularea unei v.a. discrete
I Vrem sa generam o v.a. discreta X cu repartitia
 
0 1 2
X : (18)
0.3 0.2 0.5
I Functia de repartitie este data de


0 daca x <0
0.3 daca 0x <1

F (x) = (19)

0.5 daca 1x <2
1 daca x 2

I Se genereaza valori de selectie asupra v.a. X conform regulilor



0 U 0.3
X = 1 0.3 < U 0.5 (20)
2 0.5 < U 1

I Daca v.a. u = 0.78 atunci obtinem valoarea de selectie x = 2.


Bibliografie I

M. Craiu (1998), Statistica matematica: teorie si probleme,


Editura Matrix Rom, Bucuresti
W. L. Martinez, A. R. Martinez (2002), Computational
Statistics Handbook with MATLAB, Chapman & Hall/CRC,
Boca Raton London New York Washington, D.C.
J. B. Thomas, Introduction to probability
I. Vaduva (2004), Modele de simulare: note de curs, Editura
Universitatii din Bucuresti, Bucuresti