Limbajul R pune la dispoziție majoritatea repartițiilor discrete folosite în mod uzual. Tabelul de mai jos prezintă numele, parametrii acestora precum și funcția de masă corespunzătoare:
Tabelul 1.1: Numele și parametrii repartițiilor discrete uzuale în R.
Pentru fiecare repartiție, există patru comenzi în R prefixate cu literele d, p, q și r și urmate de numele repartiției (coloana a 2-a). De exemplu dbinom, pbinom, qbinom și rbinom sunt comenzile corespunzătoare repartiției binomiale pe când dgeom, pgeom, qgeom și rgeom sunt cele corespunzătoare repartiției geometrice.
dname: calculează densitatea atunci când vorbim de o variabilă continuă sau funcția de masă atunci când avem o repartiție discretă (\(\mathbb{P}(X=x)\))
pname: calculează funcția de repartiție, i.e. \(F(x)=\mathbb{P}(X\leq x)\)
qname: reprezintă funcția cuantilă, cu alte cuvinte valoarea pentru care funcția de repartiție are o anumită probabilitate; în cazul continuu, dacă pname(x) = p atunci qname(p) = x iar în cazul discret întoarce cel mai mic întreg \(u\) pentru care \(\mathbb{P}(X\leq u)\geq p\).
rname: generează observații independente din repartiția dată
Avem următoarele exemple:
# Functia de repartitie pentru binomialapbinom(c(3,5), size =10, prob =0.5)
[1] 0.1718750 0.6230469
# Genereaza observatii din repartitia binomialarbinom(5, size =10, prob =0.5)
[1] 4 6 3 4 4
# Calculeaza functia de masa in diferite punctedbinom(0:7, size =10, prob =0.3)
În secțiunile de mai jos vom prezenta o serie de repartiții discrete de bază printre care enumerăm: repartiția uniformă, repartiția binomială, repartiția geometrică și repartiția Poisson.
2.1 Repartiția uniformă discretă
O variabilă aleatoare \(X\) este repartizată uniform pe mulțimea \(\{a, a+1, \ldots, b\}\), și se notează \(X\sim\mathcal{U}(\{a, a+1, \ldots, b\})\), are funcția de masă (PMF - probability mass function) dată de
Funcția de repartiție a repartiției uniforme \(\mathcal{U}(\{a, a+1, \ldots, b\})\) este dată de
\[
F_{X}(x) = \mathbb{P}(X \leq x) = \frac{\lfloor x\rfloor - a + 1}{b - a + 1}, \quad x\in[a,b].
\]
(a) Densitatea
(b) Funcția de repartiție
Figura 2.1: Densitatea și funcția de repartiție a repartiției uniforme pe mulțimea \(\{a, a+1, \ldots, b\}\).
2.2 Repartiția binomială \(\mathcal{B}(n, p)\)
Spunem că variabila aleatoare \(X\) este repartizată binomial de parametrii \(n\geq 1\) și \(p\in[0,1]\), și se notează cu \(X\sim\mathcal{B}(n,p)\), dacă funcția de masă este
care în cazul exemplelor considerate mai sus devine
Figura 2.7: Ilustrarea funcțiilor de repartiție pentru repartițiile Poisson \(\mathrm{Pois}(4)\) și \(\mathrm{Pois}(10)\).
În exemplele anterioare am folosit două funcții pentru trasarea funcției de masă respectiv a funcției de repartiție.
Exercițiul 2.1 Construiți câte o funcție în R care să traseze graficul funcției de masă respectiv a funcției de repartiție a unei distribuții date. Verificați și documentația funcției ecdf.
Pentru funcția de masă avem următorul cod:
pmfPlot <-function(x =0:25, dist =dpois(0:25, 4), title ="", ...){plot(x, dist,type ="h", col = myblue, xlab ="k",ylab ="P(X = k)",main =paste0("Functia de masa a repartitiei: ", title),cex.main =0.8,bty ="n")points(x, dist, pch =16, col = myblue)}
Ilustrăm funcția pentru repartițiile discrete: \(\mathrm{Geom}(0.3)\), \(\mathcal{HG}(20, 30, 15)\) și \(\mathrm{Pois}(0.5)\)
Figura 2.8: Ilustrarea funcțiilor de masă pentru \(\mathrm{Geom}(0.3)\), \(\mathcal{HG}(20, 30, 15)\) și \(\mathrm{Pois}(0.5)\).
Pentru funcția de repartiție avem următorul cod:
cdfPlot <-function(dist, title, err =1e-5, ...){# dist - repartitia discreta (sau discretizata) lp <-length(dist)if (abs(sum(dist)-1)>err |sum(dist>=0)!=lp){stop("Eroare: vectorul de probabilitati nu formeaza o repartitie") }else{ x <-0:(lp-1) # ia valori in 1:lp cp <-cumsum(dist)plot(x, cp, type ="s", lty =3, xlab ="x", ylab ="F", main =paste("Functia de repartitie:", title), ylim =c(0,1), col ="grey",bty ="n", ...)abline(h =0, lty =2, col ="grey")abline(h =1, lty =2, col ="grey")for(i in1:(lp-1)){lines(c(x[i], x[i+1]), c(cp[i], cp[i]), col = myblue,lwd =2) }points(x,cp, col = myred, pch =20, cex =0.85) }}
Pentru a testa această funcție să considerăm ca repartiții discrete: \(\mathrm{Geom}(0.3)\), \(\mathcal{HG}(20, 30, 15)\) și \(\mathrm{Pois}(0.5)\):
Figura 2.9: Ilustrarea funcțiilor de repartiție pentru \(\mathrm{Geom}(0.3)\), \(\mathcal{HG}(20, 30, 15)\) și \(\mathrm{Pois}(0.5)\).
2.5 Aproximarea Poisson și Normală a Binomialei
Exercițiul 2.2 Ilustrați grafic aproximarea Poisson și normală a repartiției binomiale.
Scopul acestui exercițiu este de a ilustra grafic aproximarea legii binomiale cu ajutorul repartiției Poisson și a repartiției normale.
Pentru o v.a. \(X\) repartizată binomial de parametrii \(n\) și \(p\) (\(q = 1-p\)) funcția de masă este
Dacă \(n\to\infty\) (\(n\) este mare) și \(p\to 0\) (\(p\) este mic, evenimentele sunt rare) așa încât \(np\to\lambda\) atunci se poate verifica cu ușurință că
Pentru a ilustra acuratețea acestei aproximări vom folosi instrucțiunile Rdbinom și dpois care permit calcularea funcțiilor de masă \(f_{n,p}(k)\) și \(f_{\lambda}(k)\).
AppBP <-function(n,p,a,b){ lambda <- n*p x <-matrix(numeric((b-a+1)*3),ncol=3,dimnames =list(a:b,c("Binomiala","Poisson","Eroarea Absoluta"))) x[,1] <-dbinom(a:b,n,p) x[,2] <-dpois(a:b,lambda) x[,3] <-abs(x[,1]-x[,2]) error <-max(abs(x[,3]))return(list(x =as.data.frame(x), error = error, param =c(n, p, lambda)))}# Functie care ilustreaza aproximarea Binomial vs. Poissonpl <-function(n,p,a,b){ clr =c(myblue, myred)# culori lambda = n*p mx =max(dbinom(a:b,n,p))plot(c(a:b,a:b), c(dbinom(a:b,n,p), dpois(a:b,lambda)), type="n", main =paste("Approx. Poisson pentru binomiala\n n=", n, ", p = ", p, ", lambda = ",lambda), ylab ="Probabilitatea", xlab="x",bty ="n")points((a:b)-.15, dbinom(a:b,n,p), type ="h",col = clr[1], lwd =8)points((a:b)+.15, dpois(a:b,lambda), type ="h",col = clr[2], lwd =8)legend(b-b/2, mx, legend =c(paste0("Binomiala(",n,",",p,")"),paste0("Poisson(",lambda,")")), fill = clr, bg="white",bty ="n")}
Pentru setul de parametrii \(n=10\) și \(p=0.1\) avem următorul tabel și următoarea figură
Tabelul 2.1: Exemplificare de aproximare Poisson a binomialei
k
Binomiala
Poisson
Eroarea Absoluta
1
0.3874205
0.3678794
0.0195410
2
0.1937102
0.1839397
0.0097705
3
0.0573956
0.0613132
0.0039176
4
0.0111603
0.0153283
0.0041680
5
0.0014880
0.0030657
0.0015776
6
0.0001378
0.0005109
0.0003732
7
0.0000087
0.0000730
0.0000642
8
0.0000004
0.0000091
0.0000088
9
0.0000000
0.0000010
0.0000010
10
0.0000000
0.0000001
0.0000001
Figura 2.10: Ilustrarea aproximării Poisson pentru \(\mathcal{B}(10, 0.1)\).
iar pentru parametrii \(n=100\) și \(p=0.01\) obținem
Tabelul 2.2: Exemplificare de aproximare Poisson a binomialei
k
Binomiala
Poisson
Eroarea Absoluta
1
0.3697296
0.3678794
0.0018502
2
0.1848648
0.1839397
0.0009251
3
0.0609992
0.0613132
0.0003141
4
0.0149417
0.0153283
0.0003866
5
0.0028978
0.0030657
0.0001679
6
0.0004635
0.0005109
0.0000475
7
0.0000629
0.0000730
0.0000101
8
0.0000074
0.0000091
0.0000017
9
0.0000008
0.0000010
0.0000003
10
0.0000001
0.0000001
0.0000000
Figura 2.11: Ilustrarea aproximării Poisson pentru \(\mathcal{B}(100, 0.01)\).
Pentru funcția de repartiție \(F_{n,p}(k)\), folosind aproximarea Poisson avem că
Să considerăm repartiția binomială \(\mathcal{B}(n, p)\) pentru \(p = 0.3\) și \(n\in\{20, 50, 100, 150, 200\}\) și să trasăm histogramele variabilelor aleatoare care au aceste repartiții (\(X_n\)) precum și a variabilelor standardizate \(Z_n = \frac{X_n-np}{\sqrt{npq}}\).
Figura 2.12: Histogramele variabilelor aleatoare \(X_n\) și a variabilelor standardizate \(Z_n = \frac{X_n-np}{\sqrt{npq}}\).
Observăm, pentru graficele din partea stângă, că valoarea maximă se atinge în jurul punctului \(n\times 0.3\) pentru fiecare grafic în parte. De asemenea se observă că odată cu creșterea lui \(n\) crește și gradul de împrăștiere, cu alte cuvinte crește și abaterea standard (\(\sigma_n = \sqrt{npq}\)).
Pe de altă parte putem remarca că figurile din partea dreaptă au o formă simetrică, de tip clopot, concentrate în jurul lui \(0\), fiind translatate în origine și scalate pentru a avea o varianță egală cu \(1\). Abraham de Moivre1 a justificat acest efect (pentru \(p=0.5\)) încă din 1756 observând că raportul
pentru \(k = 1,2,\ldots,n\). Astfel \(f_{n,p}(k)\geq f_{n,p}(k-1)\) dacă și numai dacă \((n+1)p\geq k\) de unde, pentru \(n\) fixat, deducem că \(f_{n,p}(k)\) atinge valoarea maximă pentru \(k_{\max} = \lfloor{(n+1)p\rfloor}\approx np\) (acesta este motivul pentru care fiecare grafic din partea stângă are vârful în jurul punctului \(np\)).
Să observăm ce se întâmplă în jurul lui \(k_{\max}\). Avem
unde \(\alpha = \frac{a-np-\frac{1}{2}}{\sigma_n}\), \(\beta = \frac{b-np+\frac{1}{2}}{\sigma_n}\) și \(\Phi(x)=\frac{1}{\sqrt{2\pi}}\int_{-\infty}^{x}e^{-\frac{y^2}{2}}\,dy\).
Aplicând rezultatele de mai sus, în cele ce urmează vom considera două aproximări pentru funcția de repartiție \(F_{n,p}(k)\):
În practică această ultimă aproximare se aplică atunci când atât \(np\geq 5\) cât și \(n(1-p)\geq 5\).
Următorul cod crează o funcție care calculează cele trei aproximări pentru funcția de repartiție binomială
appBNP <-function(n, p, R =1000, k =6) { trueval <-pbinom(k, n, p) # adevarata valoare a functiei de repartitie in k prob.zcc <- prob.zncc <- prob.pois <-NULL# initializare q <-1-pfor (i in1:R) {# repetam procesul de R ori x <-rnorm(n, n * p, sqrt(n * p * q)) # generare n v.a. normale de medie np z.cc <- ((k + .5) -mean(x))/sd(x) # cu coeficient de corectie prob.zcc[i] <-pnorm(z.cc) z.ncc <- (k -mean(x))/sd(x) # fara coeficient de corectie prob.zncc[i] <-pnorm(z.ncc) y <-rpois(n, n * p) prob.pois[i] <-length(y[y <= k])/n # aproximate Poisson }list(prob.zcc = prob.zcc, prob.zncc = prob.zncc, prob.pois = prob.pois, trueval = trueval)}
Avem următoarea ilustrație grafică a diferitelor metode de aproximare:
Figura 2.13: Ilustrarea celor trei metode de aproximare.
Avem și următorul boxplot (discuție ce reprezintă un boxplot) care ne permite să evidențiem care dintre aproximări este mai bună pentru valorile selectate
Figura 2.14: Compararea celor trei metode de aproximare.
Figura 2.1 (a): DensitateaFigura 2.1 (b): Funcția de repartițieFigura 2.2: Ilustrarea funcțiilor de masă pentru repartițiile binomiale \(\mathcal{B}(20, 0.5)\) și \(\mathcal{B}(40, 0.3)\).Figura 2.3: Ilustrarea funcțiilor de repartiție pentru repartițiile binomiale \(\mathcal{B}(20, 0.5)\) și \(\mathcal{B}(40, 0.3)\).Figura 2.4: Ilustrarea funcțiilor de masă pentru repartițiile geometrice \(\mathrm{Geom}(0.2)\) și \(\mathrm{Geom}(0.7)\).Figura 2.5: Ilustrarea funcțiilor de repartiție pentru repartițiile geometrice \(\mathrm{Geom}(0.2)\) și \(\mathrm{Geom}(0.7)\).Figura 2.6: Ilustrarea funcțiilor de masă pentru repartițiile Poisson \(\mathrm{Pois}(4)\) și \(\mathrm{Pois}(10)\).Figura 2.7: Ilustrarea funcțiilor de repartiție pentru repartițiile Poisson \(\mathrm{Pois}(4)\) și \(\mathrm{Pois}(10)\).Figura 2.8: Ilustrarea funcțiilor de masă pentru \(\mathrm{Geom}(0.3)\), \(\mathcal{HG}(20, 30, 15)\) și \(\mathrm{Pois}(0.5)\).Figura 2.9: Ilustrarea funcțiilor de repartiție pentru \(\mathrm{Geom}(0.3)\), \(\mathcal{HG}(20, 30, 15)\) și \(\mathrm{Pois}(0.5)\).Figura 2.10: Ilustrarea aproximării Poisson pentru \(\mathcal{B}(10, 0.1)\).Figura 2.11: Ilustrarea aproximării Poisson pentru \(\mathcal{B}(100, 0.01)\).Figura 2.12: Histogramele variabilelor aleatoare \(X_n\) și a variabilelor standardizate \(Z_n = \frac{X_n-np}{\sqrt{npq}}\).Figura 2.13: Ilustrarea celor trei metode de aproximare.Figura 2.14: Compararea celor trei metode de aproximare.
Note de subsol
de Moivre, A. (1756). The Doctrine of Chances: or, A Method of Calculating the Probabilities of Events in Play (Third ed.). New York: Chelsea.↩︎
A se vedea cartea lui Feller, W. (1968). An Introduction to Probability Theory and Its Applications (third ed.), Volume 1. New York: Wiley. pag. 52-53 pentru o derivare a formulei lui Stirling.↩︎