Proiect la Tehnici de Simulare Cristina Andrei 332

16
0 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*

Transcript of Proiect la Tehnici de Simulare Cristina Andrei 332

Page 1: Proiect la Tehnici de Simulare Cristina Andrei 332

0

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*

Page 2: Proiect la Tehnici de Simulare Cristina Andrei 332

1

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:

Page 3: Proiect la Tehnici de Simulare Cristina Andrei 332

2

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).

Page 4: Proiect la Tehnici de Simulare Cristina Andrei 332

3

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:

Page 5: Proiect la Tehnici de Simulare Cristina Andrei 332

4

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

Page 6: Proiect la Tehnici de Simulare Cristina Andrei 332

5

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:

Page 7: Proiect la Tehnici de Simulare Cristina Andrei 332

6

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:

Page 8: Proiect la Tehnici de Simulare Cristina Andrei 332

7

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.

Page 9: Proiect la Tehnici de Simulare Cristina Andrei 332

8

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:

Page 10: Proiect la Tehnici de Simulare Cristina Andrei 332

9

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

Page 11: Proiect la Tehnici de Simulare Cristina Andrei 332

10

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.

Page 12: Proiect la Tehnici de Simulare Cristina Andrei 332

11

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. Crt.

Volum de selectie

Media obtinuta

Media teoretica Eroare

Dispersia obtinuta

Dispersia 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).

Page 13: Proiect la Tehnici de Simulare Cristina Andrei 332

12

Din acest grafic se observa faptul ca algoritm

ul prezentat produce rezultate ce aproximeaza corect densitatea de probabilitate a

tipului de variabila prezentat.

Page 14: Proiect la Tehnici de Simulare Cristina Andrei 332

13

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) }

Page 15: Proiect la Tehnici de Simulare Cristina Andrei 332

14

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))

Page 16: Proiect la Tehnici de Simulare Cristina Andrei 332

15

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