Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
λ) cu
ajutorul variabilelor Gamma(0, 1, ν)
si Binom(n, p)
0
1. INTRODUCERE:
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
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).
1
Cum variabila aleatoare X ia numai valorile cu probabilitatile
rezulta ca avem:
si
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).
• Media de ordin r:
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:
respectiv
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.
3
Media si dispersia sunt date de:
si respectiv
4
de bile albe in n extractii succesive cu intoarcere este o variabila binomiala Binom(n,
p).
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.
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
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.
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
8
rezultat ce corespunde valorii functiei de frecventa a unei variabile aleatoare
repartizate Poisson(λ).
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(λ)
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
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.
4. VALIDAREA ALGORITMULUI
10
Verificarea mediei si a dispersiei
1 10 12 -2 18,22222 -8,22222
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.
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 )
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
15