Sunteți pe pagina 1din 43

Generarea variabilelor neuniforme

Curs 3

November 25, 2016


Introducere
I Fie X o variabila aleatoare.
I Generarea v.a X = gasirea unui numar n (mare) de valori pe
care le poate lua X .
I Cum se gaseste o astfel de valoare?
I Presupunem ca S1 , S2 , ..., Sn sunt v.a. pentru care se cunosc
metode de generare (de exemplu variabilele uniforme pe [0, 1]
se genereaza cu ajutorul generatorilor de numere aleatoare,
generatori care sunt deja implementati n majoritatea
limbajelor de programare).
I Atunci o valoare a lui X se poate determina gasind o relatie
ntre X si S1 , S2 , ..., Sn .
I Algoritm efectiv de generare a lui X = aplicarea de n ori a
metodei furnizate de relatia dintre X si S1 , S2 , ..., Sn .
I Fiecare dintre algoritmii prezentati n curs se refera la o astfel
de metoda.
Metoda inversa - Cazul continuu
Fie U o variabila aleatoare uniforma pe [0, 1], cu densitatea de
repartitie f (x) si functia de repartitie F (x).

0, daca x < 0
(
1, daca x [0, 1]
f (x) = , F (x) = x, daca x [0, 1] .
0, n rest
1, daca x > 1

Teorema
(Hincin) Fie X o variabila aleatoare continua cu functia de
repartitie F , si U o variabila uniforma pe [0, 1]. Atunci variabila
aleatoare F (X ) este uniforma pe intervalul [0, 1], iar F 1 (U) are
functia de repartitie F .
Dem (a doua parte):
Fie x R. Atunci:

P{F 1 (U) x} = P{F (F 1 (U)) F (x)} = P{U F (x)} = F (x)


Algoritm M-inversa
Intrare: Inversa functiei de repartitie F : F 1 .
P1: Se genereaza U variabila uniforma pe [0, 1];
P2: X = F 1 (U);
Iesire: X cu functia de repartitie F (x)

Propozitie
Variabila aleatoare U este uniforma pe [0, 1] daca si numai daca
variabila 1 U este uniforma pe [0, 1].
Dem:
Fie x < 0. Atunci:

P{1 U x} = P{U 1 x} = 1 P{U < 1 x} = 1 1 = 0

Fie x [0, 1]. Atunci:

P{1U x} = P{U 1x} = 1P{U < 1x} = 1(1x) = x


Fie x > 1. Atunci:

P{1 U x} = P{U 1 x} = 1 P{U < 1 x} = 1 0 = 1

Observam ca daca n expresia care defineste functia F 1 din


algoritmul M-Inversa, apare 1 U, atunci, datorita Propozitiei 1,
1 U poate fi inlocuita direct cu U.
Exemplu
Fie X o variabila Exp() cu densitatea si functia de repartitie:
( (
e x , daca x 0; 1 e x , daca x 0;
f (x) = , F (x) =
0, n rest 0, n rest

Atunci:
1
F 1 (U) = ln(1 U)

iar algoritmul de generare prin metoda inversa este:
Algoritm M-inversa-Exp
Intrare: Parametrul .
P1: Se genereaza U variabila uniforma pe [0, 1];
P2: X = 1 ln(U);
Iesire: X cu functia de repartitie F (x)
Cazul discret
Fie X o variabila aleatoare discreta cu repartitia:
  m
a1 a2 ... am X
X : cu pi = 1
p1 p2 ... pm
i=1

Functia de repartitie a lui X va lua valorile:




0, daca x < a1

p1 , daca a1 x < a2





p1 + p2 , daca a2 x < a3



F (x) = ...

p1 + p2 + ... + pk , daca ak x < ak+1




...





1, daca am x

Algoritmul consta n gasirea valorii ai astfel ncat F (ai ) = U, unde
U este o variabila uniforma pe [0, 1].
Pi
Fie si = j=1 pj . Observam ca:

P{si1 < U si } = FU (si ) FU (si1 ) = pi = P{X = ai }

Algoritm M-inversa-Discret
Intrare: si = ij=1 pj si ai , i = 1, 2, ..., m.
P
P1: Se genereaza U variabila uniforma pe [0, 1];
P2: i = 1;
P3: Daca U si X = ai STOP. Altfel mergi la P4.
P4: i := i + 1, mergi la P3;
Iesire: X cu functia de repartitie F (x)
Exemplu
Simularea unei variabile aleatoare Bernoulli Z:
 
0 1
Z: cu p + q = 1
q p

Z are functia de repartitie:



0, daca x < 0

F (x) = P(Z x) = q, daca x [0, 1)

1 daca x 1

Un algoritm de generare a unei variabile Bernoulli este:


Intrare: Parametrul p, q = 1 p.
P1: Se genereaza U variabila uniforma pe [0, 1];
P2: Daca U q Z = 0. Altfel Z = 1.
Iesire: Z cu functia de repartitie F (x).
Metoda compunerii sau a amestecarii
Cazul discret
Definitie
Functia de repartitie este o amestecare (sau compunere sau
mixtura) discreta a multimii de functii de repartitie {Fi (x)}1im
dupa repartitia discreta
  m
1 2 ... m X
J: cu pi = 1
p1 p2 ... pm
i=1

daca
m
X
F (x) = pi Fi (x).
i=1

Relatia precedenta poate fi scrisa si n functie de densitatile de


repartitie:
Xm
f (x) = pi fi (x).
i=1
Fie X variabila aleatoare cu functia de repartitie F (x) si Xi
variabila aleatoare cu functia de repartitie Fi (x).

Algoritm compunere discreta


Intrare: Repartitia lui J, familia de functii
{Fi (x)}1im ;
P1: Genereaza J;
P2: Genereaza XJ cu functia de repartitie FJ (x);
P3: X = XJ .
Iesire: X cu functia de repartitie F (x)
Exemplu
Presupunem ca la o statie de benzina sosesc m tipuri de masini si
se cunoaste pi probabilitatea sa soseasca un automobil de tipul i,
1 i m. Presupunem ca timpul Xi ntre sosirile autoturismelor
de tipul i este distribuit exponential de parametru i . Atunci
timpul dintre doua sosiri oarecare, X , are o repartitie mixt
exponentiala. Variabila X este o amestecare discreta, cu
densitatea:
(
0, daca x < 0
f (x) = Pm i xi , daca x 0
i=1 pi i e

Prin urmare, o variabila mixt exponentiala poate fi generata cu


ajutorul metodei compunerii cazul discret, n care
  m
1 2 ... m X
J: cu pi = 1
p1 p2 ... pm
i=1

si Fi (x) = 1 e i x .
Exemplu
Fie X variabila aleatoare cu repartitia Laplace() a carei densitate
este:

f (x) = e |x| ; x R, > 0
2
Atunci, putem sa scriem

f (x) = p1 f1 (x) + p2 f2 (x)

cu
1
p1 = p2 =
2
si
( (
e x daca x 0 0 daca x 0
f1 (x) = f2 (x) =
0 daca x > 0 e x daca x > 0
Prin urmare un algoritm de generare al variabilei Laplace() poate
fi:
Algoritm Laplace
Intrare: parametrul .
P1: Se genereaza U variabila uniforma pe [0, 1];
P2: Daca U 0.5 atunci s := 1, altfel s = 1;
P3: Genereaza Y Exp();
P4: X := sY .
Iesire: X cu functia de repartitie F (x)
S se numeste semn aleator.
Variabila Lapalace se poate simula usor si cu metoda inversa.
Metoda compunerii discrete se poate aplica pentru orice densitate
de repartitie:
Teorema
Fie X o variabila aleatoare cu densitatea de repartitie f (x),
x R. Fie o diviziune a lui de forma = m i=1 i , cu
i j = , i 6= j. Notand cu pi = P(X i ) > 0, exista
densitatile fi (x), care iau valoarea 0 pentru x 6 i astfel ncat
m
X
f (x) = pi fi (x). (1)
i=1

Dem:
Fie functiile fi , definite astfel:
(
f (x)
pi daca x i
fi (x) =
0, daca x 6 i
Observam ca:
Z Z Z Z
f (t) 1
fi (t)dt = fi (t)dt = dt = f (t)dt = 1.
i i pi pi i

Deci functiile fi astfel sunt densitati de repartitie.


Fie un x , oarecare, cu f (x) 6= 0. Atunci exista un i,
1 i m astfel ncat x i . Atunci avem:
m
f (x) X
f (x) = pi = fi (x)pi = pj fj (x)
pi
j=1

pentru ca fj (x) = 0, j 6= i.
Definitie
Functia de repartitie F (x) este o amestecare continua a familiei de
functii de repartitie {G (x, Y )}Y R dupa functia de repartitie
continua H(y ) a lui Y daca ea este de forma:
Z
F (x) = G (x, y )dH(y )
R

unde ultima integrala este integrala Stieltjes.


Relatia precedenta poate fi scrisa si n functie de densitatile de
repartitie: Z
f (x) = g (x, y )h(y )dy .
R
Intrare: Functiile de repartitie H si G .
P1: Se genereaza Y cu functia de repartitie H(y );
P2: Se genereaza ZY cu functia de repartitie
G (x, Y );
P3: X = ZY
Iesire: X cu functia de repartitie F (x)
Exemplu
Fie X > 0 o v.a. care reprezinta durata n functionare a unui
aparat. Presupunem ca X este o variabila exponentiala de
parametru , unde > 0 este un parametru care reprezinta o
caracteristica aparatului, iar este un parametru aleator care
indica influenta mediului n care lucreaza aparatul. Presupunem ca
este la randul ei o variabila aleatoare si ca are densitatea de
repartitie Gama(0, b, a):
( a
b
a1 e b , daca x 0;
h() = (a) .
0 daca x < 0

Observam ca X se obtine ca o amestecare continua a unei familii


de variabile exponentiale dupa o distributie Gama. Densitatea de
repartitie a variabilei X are forma:

b a a1 b b a
Z Z
x
f (x) = e e d = a e (x+b) d
0 (a) (a) 0
(2)
Facand schimbarea de variabila

(x + b) = t

si tinand cont de faptul ca functia Gama este:


Z
(a) = t a1 e t dt,
0

avand proprietatea ca (a + 1) = a(a), functia f devine:

b a (a + 1) a b a+1 a
f (x) = a+1
= a+1
=
(a)(x + b) b (x + b) (x + 1)a+1
cu
= /b
Deci densitatea lui X este:
(
a
(x+1)a+1
, daca x 0
f (x) =
0 daca x < 0

Variabila cu densitatea f se numeste variabila Lomax, iar


algoritmul ei de generare prin metoda compunerii continue
(presupunand ca se cunoaste o metoda de generare a unei variabile
Gama) se poate scrie astfel:
Algoritm Lomax
Intrare: Parametrii , a si b.
P1: Se genereaza Y cu repartitia Gama(0,b,a);
P2: Se genereaza ZY cu functia de repartitie
Exp(x, Y );
P3: X = ZY
Iesire: X cu densitatea de repartitie Lomax.
Metoda respingerii

Mai poate fi numita metoda acceptarii-respingerii.


Fie X o variabila aleatoare pe care vrem sa o generam cu metoda
respingerii si fie urmatoarele elemente cunoscute:
I Un procedeu de generare a unei variabile aleatoare N cu valori
ntregi pozitive;
I Procedee de generare a unor variabile aleatoare Si S, i 1,
unde S este o familie de variabile aleatoare data;
I Un predicat P(S1 , S2 , ..., Sn ) care se poate calcula simplu;
I Functia , astfel ncat
X = ({S1 , S2 , ..., Sn }, P(S1 , S2 , ..., Sn ) = true)
Atunci forma generala a unui algoritm de respingere este:
Algoritm RESPINGERE
Intrare: N, S, P(S1 , S2 , ..., Sn ), .
P1: Se genereaza N;
P2: Se genereaza S1 , S2 , ..., Sn din S;
P3: Daca P(S1 , S2 , ..., Sn ) = true atunci
X = (S1 , S2 , ..., Sn ) si STOP, altfel mergi la P1;
Iesire: Variabila aleatoare X .
Observam ca
I Daca P(S1 , S2 , ..., Sn )=false atunci multimea de variabile
aleatoare {S1 , S2 , ..., Sn } se respinge, de aici provenind numele
de metoda respingerii.
I Daca pa = P(P(S1 , S2 , ..., Sn ) = true), numita si probabilitate
de acceptare, este mare, atunci algoritmul este bun, altfel
algoritmul este prea lent
Trei algoritmi de respingere bazati pe trei teoreme:
Prima teorema de respingere

Teorema
Fie X o variabila aleatoare cu densitatea de repartitie f pentru
x R. Fie Y o alta variabila aleatoare pentru care este cunoscuta
o metoda de generare si a carei densitate de repartitie este h, astfel
ncat densitatile f si h iau valori diferite de 0 pe aceeasi
submultime A R. Presupunem ca exista o constanta , cu
0 < < astfel ncat f (x) h(x) pentru x A. Atunci daca
U este o variabila aleatoare U(0, 1), independenta de Y , densitatea
de repartitie a variabilei Y , conditionata de

f (Y )
0U
h(Y )

este f .
Dem:
Vom arata ca functia de repartitie a lui Y conditionata de
f (Y )
0 U h(Y ) este F . Adica:
  Z x
f (Y )
P Y < x|0 U = F (x) = f (v )dv
h(Y )

Fie evenimentele A si B definite astfel:


 
f (Y )
A = {Y < x}, B = 0 U
h(Y )

Atunci trebuie sa aratam ca:

P(A|B) = F (x)

Conform definitiei
P(A B)
P(A|B) =
P(B)
Calculam ntai P(B):
  Z + "Z f (v ) #
f (Y ) h(v )
P(B) = P 0 U = du h(v )dv =
h(Y ) 0

Z +
f (v ) 1
= h(v )dv = .
h(v )
deci
"Z f (v ) #
x
P(A B)
Z
h(v )
P(A|B) = = du h(v )dv =
P(B) 0

Z x Z x
f (v )
= h(v )dv = f (v )dv = F (x)
h(v )
Observam ca:
I Aceasta teorema este cunoscuta ca teorema nfasuratoarei
pentru ca graficul densitatii f (x) se poate nfasura cu
h(x).
I Din demonstratie rezulta ca probabilitatea de acceptare este
pa = 1/. De aici rezulta ca pentru a avea o metoda a
nfasuratoarei nebanala, trebuie ca > 1.
I Procedura de respingere este formata din urmatoarele
elemente:
I N = 2 variabila aleatoare constanta;
I S = {U, Y };
f (Y )
I P(U, Y )=true daca 0 U h(Y );
I (U, Y ) = Y .
Algoritm Respingere1
Intrare: h, .
P1: Se genereaza Y cu densitatea h;
P2: Se genereaza U U(0, 1);
f (Y )
P3: Daca U h(Y ) , mergi la P4. Altfel, mergi la
P1;
P4: X=Y.
Iesire: Variabila aleatoare X .
Exemplu
Fie X o variabila Gama(0, 1, ) (adica Gama standard) cu
0 < < 1. Variabila X are densitatea de repartitie:
(
1
x 1 e x , daca x 0
f (x) = () ;
0 daca x < 0.

Vom aplica metoda nfasuratoarei, folosind o densitate


Weibull(0, 1, ):
(
x 1 e x , daca x 0
h(x) =
0 daca x < 0

Pentru a determina constanta de nfasurare analizam raportul:

f (x) 1
r (x) = = e x+x ,
h(x) ()

pentru care trebuie sa determinam valoarea maxima.


Rezolvam ecuatia
r 0 (x) = 0.
Solutia, care este si punct de maxim al functiei r (x), este
1
xmax = 1 de unde rezulta:
e (1)
= cu = 1
( + 1)
Algoritmul pentru generarea variabilei X prin metoda respingerii
este:
Algoritm Gama-Resp
Intrare: , c := 1/, = 1 , a = e (1) .
P1: Se genereaza Y Weib(0, 1, ) (metoda inversa);
P1.1: U U(0, 1);
P1.2: Y := [ ln(U)]c
P2: Se genereaza U U(0, 1);

P3: Daca U ae Y Y , mergi la P4. Altfel, mergi la
P1;
P4: X=Y.
Iesire: Variabila aleatoare X .
A doua teorema de respingere

Teorema
Fie X o variabila aleatoare cu functia de repartitie F , de forma:
Z x
F (x) = c Q((t))dR(t) (3)

unde Q este functia de repartitie a unei variabile aleatoare Z ,


Z [0, M], este o functie care ia valori n [0, M] (cu M putand
lua si valoarea ), iar R este functia de repartitie a unei variabile
aleatoare Y R, independente de Z . In aceste conditii functia de
repartitie a variabilei Y conditionata de Z (Y ) este F .
Dem:
Mai ntai observam ca F fiind functie de repartitie, rezulta ca
limx F (x)dx = 1, adica:
Z
c Q((t))dR(t) = 1.

Deci c, constanta de normare, este:


Z + 1
c= Q((x))dR(x) .

Trebuie sa aratam ca:

P(Y < x|Z (Y )) = F (x).

Fie evenimentele A si B definite astfel:

A = {Y < x}; B = {Z (Y )}
pentru a demonstra teorema trebuie sa aratam ca:

P(A|B) = F (x).

Din definitie
P(A B)
P(A|B) = .
P(B)
Probabilitatea de realizare a evenimentului B este:
Z + Z (x) ! Z +
1
P(B) = dQ(y ) dR(x) = Q((x))dR(x) = .
0 c

Prin urmare:
!
x (y )
P(A B)
Z Z
P(A|B) = = cP(AB) = c dQ(z) dR(y ) =
P(B) 0

Z x
=c Q((y ))dR(y ) = F (x).

Observam ca:
I Probabilitatea de acceptare este pa = P(B) = c1 ;
I Elementele algoritmului de respingere sunt
I N = 2;
I S = {Z , Y };
I P(Z , Y )=true daca Z (Y );
I (Z , Y ) = Y .
I teorema se verifica si daca relatia (3) se scrie n termeni de
densitati de repartitie:

f (x) = cQ((x))r (x), cu r (x) = R 0 (x).


I O forma duala a teoremei se obtine daca F (x) este de forma:
Z x
F (x) = c (1 Q((x)))dR(x) (4)

cu 1
Z +
c= (1 Q((x)))dR(x)

n acest caz evenimentul B este: B = {Z (Y )}.


I Relatia (4) se poate scrie n functie de densitati astfel:

f (x) = c(1 Q((x)))r (x)

iar probabilitatea de acceptare pentru varianta duala este:


1
pa = P(Z (Y )) =
c
Algoritm Respingere2
Intrare: Q, , R.
P1: Se genereaza Z cu funtia de repartitie Q;
P2: Se genereaza Y cu functia de repartitie R;
P3: Daca Z (Y ), mergi la P4. Altfel, mergi la
P1;
P4: X=Y.
Iesire: Variabila aleatoare X .
Exemplu
Fie X o varibila aleatoare cu densitatea:

f (x) = c(1 e x )e x , x 0 (5)

unde c este o constanta de normare. Atunci un algoritm de


generare a variabilei aleatoare X se poate scrie folosind a doua
teorema de respingere. Avem:

(x) = x, Q(z) = 1 e z , z > 0, r (x) = e x .

si
Z + 1  1
x x
c= (1 e )e dx =
0 +
iar un algoritm pentru generarea lui X este urmatorul:
Algoritm ExResp2
Intrare: Parametrii , .
P1: Se genereaza Z Exp();
P2: Se genereaza Y Exp();
P3: Daca Z Y , mergi la P4. Altfel, mergi la P1;
P4: X := Y .
Iesire: Variabila aleatoare X .
I Algoritmul ExResp2 este rapid daca << .
I Metoda inversa nu este recomandabila pentru ca determinarea
inversei functiei F nu este imediata.
A treia teorema de respingere
Teorema sirului descendent
Teorema
Fie variabilele Zi G (x), i = 1, 2, , ..., Z0 G0 (z) independente.
Atunci urmatoarele afirmatii sunt adevarate:
1. Daca x si k sunt fixate atunci:

[G (x)]k1 [G (x)]k
P(x Z1 Z2 ... Zk1 < Zk ) = .
(k 1)! k!
(6)
2. Daca x este fixat si K este indicele aleator la care se rupe
sirul descendent (ca la punctul 1), atunci

P(K = nr.impar) = P(K mod 2 = 1) = e G (x) . (7)

3. Daca subsirul descendent este Z0 Z1 ... ZK 1 < ZK


(adica se rupe la K aleator si incepe cu Z0 G0 (x)), atunci:
Z x
1
P(Z0 < x|K mod 2 = 1) = e G (t) dG0 (t), (8)
pa
unde pa este constanta de normare:
Z +
pa = e G (x) dG0 (x). (9)

Dem:
1. Fie evenimentele:

A = {x Z1 Z2 ... Zk1 }; B = {x Z1 Z2 ... Zk }

Pentru a demonstra (6) observam ca probabilitatea din membrul


stang se scrie P(A \ B) si pentru ca B A avem:

P(A \ B) = P(A) P(B)

Acum l vom calcula pe P(A).


Observam ca P(Zi x) = G (x) si
P(Z1 x, Z2 x, ..., Zk1 x) = [G (x)]k1 , pentru ca variabilele
Z1 , Z2 , ... sunt independente.
Deoarece subsirul care defineste evenimentul A contine numai una
din cele (k 1)! ordini n care se pot afla cele k 1 variabile
aleatoare Zi , 1 i k 1, rezulta ca:

[G (x)]k1
P(A) =
(k 1)!

Deci:
[G (x)]k1 [G (x)]k
P(A \ B) = P(A) P(B) =
(k 1)! k!

iar afirmatia 1. este adevarata.


2. Probabilitatea ca indicele aleator K sa fie impar este:

P(K = nr. impar) = P(K = 1) + P(K = 3) + ... =


G (x) [G (x)]2 [G (x)]3
=1 + + ... = e G (x)
1! 2! 3!
3. Observam ca atunci cand Z0 este aleator avem:
Z +
P(K = nr. impar) = P(K mod 2 = 1) = e G (t) dG0 (t)

Adica, tinand cont de forma probabilitatii pa din (9) avem:

P(K = nr. impar) = pa

Conform definitiei probabilitatii conditionate:


P({Z0 < x} {K mod 2 = 1})
P(Z0 < x|K mod 2 = 1) = .
P(K mod 2 = 1)
Prin urmare:
Z x
1
P(Z0 < x|K mod 2 = 1) = e G (t) dG0 (t),
pa

ceea ce demonstreaza punctul 3 al teoremei.


Variabilele aleatoare X care pot fi generate cu a treia teorema de
respingere sunt acele variabile aleatoare care au functia de
repartitie F , de forma:

1 x G (t)
Z
F (x) = e dG0 (t).
pa

Algoritmul rezultat din a treia teorema de respingere este


urmatorul:
Algoritm Respingere3
Intrare: Functiile de repartitie G0 , G .
P1: Se genereaza Z0 G0 (x);
P2: Z := Z0 , K = 1;
P3: Se genereaza Z1 G (x);
P4: Daca Z0 Z1 mergi la P5, altfel mergi P6;
P5: K := K + 1, Z0 := Z1 , mergi pa P3;
P6: Daca K mod 2 = 1 , mergi la P7. Altfel mergi la
P1.
P7: X = Z .
Iesire: Variabila aleatoare X .

S-ar putea să vă placă și