Sunteți pe pagina 1din 16

Simularea variabilei Poisson(λ

λ) cu
ajutorul variabilelor Gamma(0, 1, ν)
si Binom(n, p)

Student: Cristina ANDREI, grupa 332


Profesor coordonator: Prof. Dr. Ion VADUVA
Nr. proiect: 50*

0
1. INTRODUCERE:

Cuvantul „simulare” deriva de la latinescul „simulatio” care inseamna capacitatea de


a reproduce, reprezenta sau imita ceva. Din cauza ambiguitatilor generate de
diversele sensuri ale acestui cuvant in vorbirea obisnuita, este dificil sa se precizeze
o semnificatie generala a termenului „simulare” valabila pentru toate stiintele
particulare.

Simularea numerica este o tehnica potrivit careia se asociaza sistemului real un


model adecvat – numit model de simulare – care reprezinta (cu ajutorul unui
algoritm) toate interactiunile logice ale componentelor sistemului. Astfel, modelul de
simulare permite crearea unor experiente „artificiale” asupra sistemului (exprimate
prin numere sau valori logice), iar pe baza prelucrarii acestor experiente, de cele mai
multe ori prin procedee ale statisticii matematice, se pot obtine raspunsurile la
intrebarile referitoare la sistem.

Un model de simulare se realizeaza in mai multe etape. Lucrarea de fata isi propune
sa ilustreze fiecare etapa din realizarea unui model de simulare a unei variabile
Poisson(λ), folosind simularea variabilelor Gamma(ν) - notata si Gamma(0, 1, ν) – si
binomiala Binom(n, p). Vom stabili obiectivele prin definirea problemei, urmata de
realizarea unei analize primare a datelor prin colectionarea notiunilor necesare, pe
care le vom trata amanuntit din punct de vedere matematic. Odata stabilite reperele
teoretice, atat din punct de vedere al definitiilor si teoremelor necesare, cat si din
punct de vedere al calculelor corespunzatoare si al demonstratiilor, vom elabora un
algoritm de simulare in concordanta cu obiectivele initiale si vom prezenta o varianta
de implementare a acestuia in programul statistic R. Scrierea programului va fi
urmata de doua metode de validare a datelor, precum si de concluzionarea analizei
rezultatelor obtinute in vederea verificarii corectitudinii algoritmului prezentat.

Vom continua acum cu prima etapa din realizarea unui model de simulare, ce consta
in formularea intrebarilor despre sistem la care trebuie sa se gaseasca raspunsuri
(adica formularea problemei).

Formularea problemei

“Construiti un program de simulare a variabilei Poisson(λ) folosind simularea


variabilelor gamma si binomiale”.

2. DEFINITII SI NOTIUNI NECESARE

Definitia variabilei aleatoare discrete simple

Numim variabila aleatoare discreta o variabila aleatoare ce poate lua un numar cel
mult numarabil de valori (adica fie un numar finit de valori, fie o multime de valori
numarabila, ale carei elemente formeaza un sir).

Notand cu valorile posibile ale variabilei aleatoare X si cu


, i = 1, 2, ... , probabilitatile corespunzatoare, reprezentam variabila
aleatoare discreta X sub forma:

1
Cum variabila aleatoare X ia numai valorile cu probabilitatile
rezulta ca avem:

si

Graficul functiei de distributie FX a unei variabile aleatoare discrete X este o functie in


scara, ce are discontinuitati la dreapta in punctele xi (salturi egale cu pi in aceste
puncte). In continuare, vom prezenta cateva caracteristici numerice ale unei variabile
aleatoare discrete:

• Media : este suma valorilor luate de variabila aleatoare inmultite cu probabilitatile


corespunzatoare:

daca aceasta serie este absolut convergenta (in caz contrar, seria fie nu este
convergenta, fie valoarea sumei se poate schimba daca se rearanjeaza termenii
intr-o alta ordine).

• Momentul de ordin r ( media variabilei aleatoare Xr ):

• Momentul centrat de ordin r (media variabilei aleatoare ( X – M(X))r ):

• Dispersia ( momentul centrat de ordin 2 ):

• Media de ordin r:

Generarea variabilelor discrete legate de probe

Exista experimente pentru care sunt posibile numai doua tipuri de rezultate, pe care
le vom numi succese (notate prin 1) sau esecuri (insuccese, notate prin 0).

2
Notam cu p = P(X = 1) probabilitatea unui succes intr-o experienta si q = 1 – p = P(X
= 0) probabilitatea de esec intr-o experienta. Presupunem ca experientele sunt
independente stochastic iar p, 0 ≤ p ≤ 1, este o constanta. Astfel de experiente se
numesc experiente Bernoulli sau probe Bernoulli. Simulare unei probe Bernoulli
revine la a simula un eveniment aleator de probabilitate constanta p. Un astfel de
eveniment este de exemplu { U < p } unde U este o variabila aleatoare uniforma pe
(0,1). Evenimentul contrar { U ≥ p } este un esec. Cu alte cuvinte, generarea unei
probe Bernoulli revine la generarea variabilei aleatoare asociate:

Media si dispersia corespunzatoare acestei variabile sunt:

respectiv

Functia de repartitie a lui X este:

In aplicatiile practice (biologie, controlul statistic al calitatii etc.) joaca un rol important
o serie de variabile aleatoare care se exprima ca numarul succeselor/esecurilor intr-
un sir de experiente Bernoulli. In continuare ne vom ocupa de generarea unei astfel
de variabile aleatoare, si anume, variabila binomiala.

Definitia repartitiei binomiale

O variabila aleatoare X reprezentand numarul de succese obtinute in n repetari


independente ale unui experiment Bernoulli in care probabilitatea succesului este p,
se numeste variabila aleatoare binomiala cu parametrii n si p si are forma:

unde este probabilitatea obtinerii a i


succese (si a n – i insuccese), i = 0,1,..., n, iar P(X = i) este termenul general al
dezvoltarii binomului , de unde deriva si denumirea de repartitie binomiala.

Observam ca are loc urmatoarea relatie:

3
Media si dispersia sunt date de:

si respectiv

de unde putem deduce ca

Pentru generarea variabilei binomiale se observa ca daca Bi, 1 ≤ i ≤ n sunt variabile


aleatoare de forma :

asociate la n probe Bernoulli independente, atunci variabila binomiala este de forma:

pentru care functia caracteristica este:

Cu functia caracteristica obtinuta in aceasta forma, putem deduce usor urmatoarele


formule pentru medie si dispersie (observam corectitudinea acestora din faptul ca
rezultatele coincid cu cele obtinute mai sus):

Repartitia binomiala are diverse aplicatii practice, in special in controlul statistic al


calitatii unde X reprezinta numarul de piese corespunzatoare in n probe (aici p este
probabilitatea ca extragand la intamplare o piesa dintr-un lot de volum mare, aceasta
sa fie corespunzatoare).

Variabila Binom(n, p) are si o interpretare in termeni de experiment cu o urna. Astfel,


sa presupunem ca intr-o urna avem A bile albe si B bile negre, A + B = N.
Presupunem ca se realizeaza extractii succesive din urna si dupa fiecare extractie se
introduce bila extrasa la loc in urna (experienta cu bila „intoarsa”). Fie p = A/N
probabilitatea de a extrage o bila alba intr-o extractie. De aici rezulta ca X = numarul

4
de bile albe in n extractii succesive cu intoarcere este o variabila binomiala Binom(n,
p).

Definitia repartitiei Poisson

Variabila aleatoare discreta X, unde , are o repartitie Poisson(λ) (adica de


parametru λ, unde λ > 0) daca functia sa de frecventa este urmatoarea:

Functia caracteristica a variabilei Poisson(λ) este :

de unde deducem ca:

Repartitia Poisson(λ) este repartitia evenimentelor rare. Mai precis, X reprezinta


numarul de evenimente rare (de exemplu, de veniri la un sistem de asteptare) care
apar pe unitatea de timp. Evenimentele sunt independente si se produc la intervale
aleatoare de timp astfel incat un eveniment se produce pe intervalul de timp
cu probabilitatea unde:

( este neglijabila in raport cu ) iar probabilitatea ca pe acelasi interval sa se


produca mai mult de un eveniment (conditia de raritate) este (adica este
neglijabila). Numarul de evenimente rare ce se produc pe unitatea de timp reprezinta
o variabila aleatoare Poisson(λ), unde parametrul λ este intensitatea cu care se
produc aceste evenimente.

Se poate arata ca intervalul de timp θ dintre aparitiile consecutive a doua astfel de


evenimente este o variabila exponentiala negativa de parametru λ. Deci pentru a
genera variabila X trebuie sa generam intervale de timp de venire θ astfel incat suma
lor sa acopere intervalul de timp egal cu unitatea. Numarul j al acestor variabile va fi
o valoare de selectie a variabilei Poisson. In concluzie, j satisface conditia:

Daca tinem seama de formula de generare prin inversare a variabilei exponentiale de


parametru λ, si anume:

5
unde Ui sunt uniforme (0, 1), deducem ca j satisface conditia:

sau

Pe baza ultimei relatii de mai sus se poate construi cu usurinta un algoritm pentru
simularea lui X, iar cu rezultatele calculelor pentru momentele de ordinul 1 si 2,
precum si al dispersiei se poate realiza validarea acestui algoritm, asupra caruia insa
nu ne vom opri aici.

Definitia repartitiei Gamma

O variabila aleatoare Y este de tipul gamma, notata cu , daca densitatea


sa de repartitie este de forma

unde sunt respectiv parametri de locatie, de scala si de forma ai


variabilei. Functia gamma este definita de urmatoarea relatie:

Daca notam cu X variabila atunci se constata ca legatura intre X si Y este


urmatoarea:

adica generarea lui Y se reduce la generarea lui X. In consecinta, ne vom ocupa


numai de generarea variabilei X. Observam ca:

unde este coeficientul de variatie al lui X.

De asemenea, cand = 1, X este variabila exponentiala negativa Exp(1). Inainte de


a considera in detalii problema generarii variabilei X - adica a variabilei de tipul
- sa observam ca repartitia este un caz particular al repartitiei
gamma generalizate , > 0, care are densitatea de repartitie:

6
adica . Repartitia gamma generalizata se reduce in cazuri
particulare la o serie de repartitii clasice cunoscute, asupra carora insa nu vom
insista aici. Generarea unei variabile aleatoare Z care are repartitia se

reduce la generarea variabilei X care are repartitia , si anume, .

In concluzie, generarea oricaror variabile de tip gamma sau gamma generalizat se


reduce la generarea variabilei aleatoare X de tipul . In generarea variabilei
aleatoare X vor fi considerate separat cazurile si (cazul
corespunde repartitiei Exp(1)), pe care insa nu le vom discuta aici, deoarece ele nu
fac subiectul lucrarii de fata.

2. TRATAREA MATEMATICA

Lucrarea curenta isi propune sa prezinte una din multiplele modalitati de generare a
unei variablie Poisson. Astfel, un procedeu interesant de generarea a acestor
variabile se bazeaza pe variabile gamma si binomiale. Urmatoarea teorema pune in
evidenta acest lucru.

Teorema: Fie Y o variabila Poisson(λ) si ν > 0 un intreg. Fie variabila X aleatoare


gamma(0, 1, ν), Z variabila binomiala binom(ν - 1, λ / X ) si W variabila Poisson(λ -
X), cand X ≤ λ. Atunci:
a. Y = Z daca X > λ;
b. Y = W + ν daca X ≤ λ.

Demonstratie: Teorema de mai sus argumenteaza ca exista o legatura intre valorile


parametrului λ si cele ale unei variabile aleatoare gamma. Pe baza aceste legaturi
putem simula o variabila Poisson in functie de o variabila binomiala sau in functie de
o alta variabila Poisson dependenta de parametrul variabilei gamma mentionata mai
sus.

Continuam acum cu demonstratia punctului a.

Astfel, daca atunci

Prelucram functia gamma definita mai sus si o aducem la o forma „prietenoasa”,


astfel incat sa o putem folosi in calculul probabilitatii pk.

7
Daca ν → ∞, atunci ultima suma ar coincide cu dezvoltarea in serie Taylor a lui ex ,
dar conform ipotezei stim ca ν este un parametru de forma finit, de unde deducem ca
suma

Atunci functia gamma devine:

Revenim la calcului probabilitatii si obtinem:

Utilizand substitutia x - λ = t, x = λ + t, dx = dt, pk devine:

8
rezultat ce corespunde valorii functiei de frecventa a unei variabile aleatoare
repartizate Poisson(λ).

Continuam acum cu demonstratia punctului b.

Astfel, daca atunci

unde B(ν, k - ν + 1) este functia beta, iar Γ este functia gamma definita si calculata
mai sus. Observam ca si in acest caz, rezultatul obtinut corespunde valorii functiei de
frecventa a unei variabile aleatoare repartizate Poisson(λ)

Teorema este astfel demonstrata.

3. DESCRIEREA ALGORITMULUI

Pentru a construi un algoritm bazat pe teorema precedenta trebuie ales mai intai un ν
convenabil. Daca se ia :

atunci pentru λ mare, cazul a. din teorema se intalneste cu o probabilitate mica, deci
pentru a obtine o valoare de selectie Poisson(λ) este suficient sa avem un bun
generator de variabile binomiale. (Constanta d = 7/8 a fost determinata experimental)
Pentru generarea variabilei Poisson(λ) din cazul b. este indicat sa folosim un algoritm

9
de generare a variabilei Poisson prin metoda multiplicarii (pe care insa nu il vom
prezenta aici pentru ca nu ne este necesar in algoritmul utilizat), care insa este
eficient cand λ - X este mic (mai mic decat o limita c, care este dedusa din
consideratii experimentale ca fiind c = 16). Cum aceasta conditie (λ - X < c) nu este
intotdeauna indeplinita, trebuie introdusa o iteratie in plus care sa considere o
selectie asupra variabilei Gamma(ν’), unde

(a se vedea pasii 6 si 7 din algoritmul urmator). Algoritmul bazat pe teorema enuntata


mai sus este deci urmatorul:

PORVGB (generarea variabilei Poisson prin reducere la variabile gamma si


binomiale)

Pasul 0. Intrare λ, c, d.
Pasul 1. Initializari: k = 0, T = λ.
Pasul 2. Daca T ≥ c, transfer la 6.
Pasul 3. (cazul b. din teorema) Ia p = 1 si calculeaza .
Pasul 4. Genereaza U si ia . Daca p < L, transfer la 11.
Pasul 5. Ia si transfer la 4.
Pasul 6. (se alege ν si se genereaza variabila X din teorema). Ia .
Genereaza X avand repartitia Gamma(ν). Daca X > T, transfer la 8.
Pasul 7. Ia si transfer la 2.

Pasul 8. (cazul a. din teorema) Ia .


Pasul 9. Genereaza U. Daca U < p, ia .
Pasul 10. Ia . Daca ν > 1, transfer la 9.
Pasul 11. Y = k .

Datele de intrare corespunzatoare algoritmului de mai sus sunt:


- parametrul λ al variabilei Poisson
- constantele c si d, ale caror valori au fost determinate experimental ca fiind
c = 16, respectiv d = 7/8

Datele de iesire corespunzatoare algoritmului de mai sus sunt:


- variabila aleatoare Y, repartizata Poisson in functie de variabile aleatoare
gamma si binomiale

4. VALIDAREA ALGORITMULUI

Pentru validare, vom folosi doua metode specifice de validare a algoritmilor de


simulare asupra multimilor generate, si anume: verificarea aproximarii mediei si
dispersiei pentru seturile generate si aproximarea graficului densitatii de probabilitate
folosind histograme construite clasic.

10
Verificarea mediei si a dispersiei

Observam ca dimensiunea multimii de selectie influenteaza rezultatele mediei si


dispersiei aferente setului de date, in sensul ca le apropie foarte mult de valorile
teoretice corespunzatoare tipului de date din multimea de selectie (o consecinta a
legii numerelor mari). Astfel, in tabelul urmator vom exprima rezultatele obtinute
pentru diferite dimensiuni ale multimii de selectie in comparatie cu valorile teoretice
corespunzatoare.

Nr. Volum de Media Media Dispersia Dispersia


Crt. selectie obtinuta teoretica Eroare obtinuta teoretica Eroare

1 10 12 -2 18,22222 -8,22222

2 100 10,07 -0,07 8,409192 1,590808

3 1000 10,006 -0,006 8,924889 1,075111

4 5000 10,0124 -0,0124 10,12547 -0,12547

5 10000 10,0717 10 -0,0717 10,39140 10 -0,3914

6 50000 10,01588 -0,01588 9,955027 0,044973

7 100000 10,00374 -0,00374 10,00567 -0,00567

8 200000 10,00005 -0,00005 9,973445 0,02656

9 500000 10,00087 -0,00087 9,999605 0,000395

10 1000000 9,999331 0,000669 10,01992 -0,01992

Rezultatul acestor experimente confirma faptul ca media si dispersia se apropie de


media si dispersia teoretica pe masura ce volumul de selectie creste.

Aproximarea densitatii de repartitie

O alta metoda de a verifica acuratetea rezultatelor obtinute in urma unui algoritm de


generare a unui set de date este de a analiza in ce masura histograma asociata
setului de date obtinut aproximeaza densitatea de repartitie a variabilelor generate.

Imaginea de mai jos reprezinta histograma si densitatea de repartitie in urma


generarii unui set de date de dimensiune 1000000 pentru o variabila Poisson(10).

11
Din acest grafic se observa faptul ca algoritmul prezentat produce rezultate ce aproximeaza corect densitatea de probabilitate a
tipului de variabila prezentat.

12
5. CODUL SURSA.

Implementarea algoritmului PORVGB ( pentru o singura valoare de selectie )

function (v_lambda, v_c, v_d)


{
lambda = v_lambda
cc = v_c
dd = v_d

k = 0
tt = lambda

repeat {
if ( tt >= cc ) {
miu = floor(d*tt)
x = rgamma(1, miu)
if ( x > tt ) {
p = tt/x

repeat {
u = runif(1,0,1)
if ( u < p ) { k = k + 1 }
miu = miu - 1
if ( miu <= 1 ) { break }
}

break
}
else {
k = k + miu
tt = tt - x
}
}
else {
p = 1
ll = exp(-tt)

repeat {
u = runif(1,0,1)
p = p * u
if ( p < ll ) { break }
else { k = k + 1 }
}

break
}
}

y = k
print(y)
}

13
Implementarea algoritmului PORVGB ( pentru mai multe valori de selectie )

function (v_lambda, v_c, v_d)


{
lambda = v_lambda
cc = v_c
dd = v_d
y = 0

for ( i in 1:100000 ) {
k = 0
tt = lambda

repeat {
if ( tt >= cc ) {
miu = floor(d*tt)
x = rgamma(1, miu)
if ( x > tt ) {
p = tt/x

repeat {
u = runif(1,0,1)
if ( u < p ) { k = k + 1 }
miu = miu - 1
if ( miu <= 1 ) { break }
}

break
}
else {
k = k + miu
tt = tt - x
}
}
else {
p = 1
ll = exp(-tt)

repeat {
u = runif(1,0,1)
p = p * u
if ( p < ll ) { break }
else { k = k + 1 }
}

break
}
}

if ( y[1] == 0 ) { y = k }
else { y = c(y, k) }
}
print(mean(y))
print(var(y))
print(summary(y))

14
par(mfrow = c(1,2))
vectorx = seq(0, 100, 1)
vectory = dpois(vectorx, lambda)
plot(vectorx, vectory, 'l')
hist(y)
}

6. Bibliografie

[1] Ion Vaduva, „Modele de simulare cu calculatorul”, Editura Tehnica, Bucuresti,


1977
[2] Ion Vaduva, „Modele de simulare”, Bucuresti, 2004
[3] http://cs.unitbv.ro/~pascu/probstat/7.Variabile%20aleatoare%20discrete.pdf
[4] http://lcfp.3x.ro/cursuri/3/5.php
[5] Enciclopedia Wikipedia, Poisson Distribution
http://en.wikipedia.org/wiki/Poisson_distribution
[6] Enciclopedia Wikipedia, Bernoulli Distribution
http://en.wikipedia.org/wiki/Bernoulli_distribution
[7] Enciclopedia Wikipedia, Gamma Distribution
http://en.wikipedia.org/wiki/Gamma_distribution
[8] Enciclopedia Wikipedia, Taylor series
http://en.wikipedia.org/wiki/Taylor_series

15