Variabile aleatoare discrete

Note de laborator

1 Elemente de probabilități în R

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.
Repartiția Nume Parametrii Funcția de masă \(\mathbb{P}(X = x)\)
Binomială \(\mathcal{B(m,p)}\) binom size (\(m\)), prob (\(p\)) \(\binom{m}{x}p^x(1-p)^{m-x}\)
Geometrică \(\mathrm{Geom}(p)\) geom prob (\(p\)) \((1-p)^{x-1}p\)
Poisson \(\mathrm{Pois}(\lambda)\) pois lambda (\(\lambda\)) \(e^{-\lambda\frac{\lambda^x}{x!}}\)
Hypergeometric \(\mathcal{HG}(m,n,k)\) hyper m, n, k \(\frac{\binom{m}{x}\binom{n}{k-x}}{\binom{m+n}{k}}\)
Binomiala negativă \(\mathrm{NB}(r, p)\) nbinom size (\(r\)), prob (\(p\)) \(\binom{r+x-1}{r-1}p^r(1-p)^x\)
Uniforma pe \(\{1, 2, \ldots, m\}\) sample(x = 1:m, size = 1, TRUE) \(\frac{1}{m}\mathbf{1}_{\{1,2,\ldots,m\}}(x)\)

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 binomiala
pbinom(c(3,5), size = 10, prob = 0.5)
[1] 0.1718750 0.6230469
# Genereaza observatii din repartitia binomiala
rbinom(5, size = 10, prob = 0.5)
[1] 4 6 3 4 4
# Calculeaza functia de masa in diferite puncte
dbinom(0:7, size = 10, prob = 0.3)
[1] 0.028247525 0.121060821 0.233474440 0.266827932 0.200120949 0.102919345
[7] 0.036756909 0.009001692
# pentru repartitia Poisson
dpois(1:5, lambda = 3)
[1] 0.1493612 0.2240418 0.2240418 0.1680314 0.1008188
rpois(10, lambda = 3)
 [1] 3 7 4 1 5 3 1 3 4 0

2 Repartiții discrete

Î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

\[ \mathbb{P}(X = k) = \frac{1}{b - a + 1},\quad k\in\{a, a+1, \ldots, b\} \]

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

\[ \mathbb{P}(X = k) = \binom{n}{k}p^k (1-p)^{n-k}, \quad k\in\{0,1,\ldots,n\} \]

Pentru a ilustra funcția de masă vom considera repartițiile \(\mathcal{B}(20, 0.5)\) și \(\mathcal{B}(40, 0.3)\):

Figura 2.2: Ilustrarea funcțiilor de masă pentru repartițiile binomiale \(\mathcal{B}(20, 0.5)\) și \(\mathcal{B}(40, 0.3)\).

Funcția de repartiție a repartiției binomiale \(\mathcal{B}(n,p)\) este dată de

\[ F_{X}(x) = \mathbb{P}(X \leq x) = \sum_{k = 0}^{\lfloor x\rfloor} \binom{n}{k}p^k (1-p)^{n-k} \]

care în cazul celor două exemple date devine

Figura 2.3: Ilustrarea funcțiilor de repartiție pentru repartițiile binomiale \(\mathcal{B}(20, 0.5)\) și \(\mathcal{B}(40, 0.3)\).

2.3 Repartiția geometrică \(Geom(p)\)

Variabila aleatoare \(X\) repartizată geometric de parametru \(p\in(0,1)\), \(X\sim Geom(p)\), are funcția de masă

\[ \mathbb{P}(X = k) = (1-p)^{k-1}p, \quad k\in\{1,2,\ldots\} \]

Pentru \(p = 0.2\) și respectiv \(p = 0.7\) avem

Figura 2.4: Ilustrarea funcțiilor de masă pentru repartițiile geometrice \(\mathrm{Geom}(0.2)\) și \(\mathrm{Geom}(0.7)\).

Funcția de repartiție a variabilei \(X\sim Geom(p)\) este egală cu

\[ F_{X}(k) = \mathbb{P}(X \leq k) = 1 - (1-p)^k \]

Figura 2.5: Ilustrarea funcțiilor de repartiție pentru repartițiile geometrice \(\mathrm{Geom}(0.2)\) și \(\mathrm{Geom}(0.7)\).

2.4 Repartiția Poisson \(Pois(\lambda)\)

O variabilă aleatoare \(X\) repartizată Poisson de parametru \(\lambda>0\), \(X\sim Pois(\lambda)\), are funcția de masă dată de

\[ \mathbb{P}(X = k) = e^{-\lambda}\frac{\lambda^k}{k!}, \quad k\geq 0. \]

Pentru \(\lambda = 4\) și \(\lambda = 10\) avem

Figura 2.6: Ilustrarea funcțiilor de masă pentru repartițiile Poisson \(\mathrm{Pois}(4)\) și \(\mathrm{Pois}(10)\).

Funcția de repartiție a lui \(X\sim Pois(\lambda)\) este

\[ F_{X}(x) = \mathbb{P}(X \leq x) = e^{-\lambda}\sum_{k = 0}^{\lfloor x\rfloor} \frac{\lambda^k}{k!} \]

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 in 1:(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

\[ f_{n,p}(k)=\mathbb{P}(X=k)=\binom{n}{k}p^k(1-p)^{n-k} \]

iar funcția de repartiție este

\[ F_{n,p}(k) = \mathbb{P}(X\leq k) = \sum_{x=0}^{k}\binom{n}{x}p^x(1-p)^{n-x}. \]

2.5.1 Aproximarea Poisson

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ă

\[ f_{n,p}(k)\approx f_{\lambda}(k)=e^{-\lambda}\frac{\lambda^k}{k!}. \]

Mai exact, avem că dacă \(k\) este mic în comparație cu \(n\) atunci

\[\begin{align*} \binom{n}{k}p^k &= \frac{n(n-1)\cdots(n-k+1)}{k!}\left(\frac{\lambda}{n}\right)^k \\ &= 1\times\left(1-\frac{1}{n}\right)\times\cdots\times\left(1-\frac{k-1}{n}\right)\frac{\lambda^k}{k!}\\ &\approx \frac{\lambda^k}{k!} \end{align*}\]

și

\[ \log(1-p)^{n-k} = (n-k)\log\left(1-\frac{\lambda}{n}\right)\approx n\left(-\frac{\lambda}{n}\right) \]

ceea ce conduce la \((1-p)^{n-k}\approx e^{-\lambda}\). Combinând cele două aproximări obținem

\[ \binom{n}{k}p^k(1-p)^{n-k} \approx \frac{\lambda^k}{k!}e^{-\lambda}. \]

Pentru a ilustra acuratețea acestei aproximări vom folosi instrucțiunile R dbinom ș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. Poisson

pl <-  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ă

\[ F_{n,p}(k) \approx F_{\lambda}(k)=\sum_{x=0}^{k}e^{-\lambda}\frac{\lambda^x}{x!}. \]

2.5.2 Aproximarea Normală

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

\[ \frac{f_{n,p}(k)}{f_{n,p}(k-1)} = \frac{\frac{n!}{k!(n-k)!}p^kq^{n-k}}{\frac{n!}{(k-1)!(n-k+1)!}p^{k+1}q^{n-k+1}} = \frac{(n-k+1)p}{kq} \]

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

\[ \frac{f_{n,p}(k_{\max}+i)}{f_{n,p}(k_{\max}+i-1)} = \frac{(n-k_{\max}-i+1)p}{(k_{\max}+i)q}\approx \frac{(nq-i)p}{(np+i)q} = \frac{1-\frac{i}{nq}}{1+\frac{i}{np}} \]

și cum (folosind relația \(\log(1+x)\approx x\), pentru \(x\) în jurul lui \(0\))

\[ \log\left(1-\frac{i}{nq}\right) - \log\left(1+\frac{i}{np}\right) \approx -\frac{i}{nq}-\frac{i}{np} = -\frac{i}{npq} \]

deducem, pentru \(m\geq 1\) și \(k_{\max}+m\leq n\), că

\[\begin{align*} \log\frac{f_{n,p}(k_{\max}+m)}{f_{n,p}(k_{\max})} &= \log\left(\frac{f_{n,p}(k_{\max}+1)}{f_{n,p}(k_{\max})}\times \frac{f_{n,p}(k_{\max}+2)}{f_{n,p}(k_{\max}+1)}\times\cdots\times\frac{f_{n,p}(k_{\max}+m)}{f_{n,p}(k_{\max}+m-1)}\right)\\ &= \log\frac{f_{n,p}(k_{\max}+1)}{f_{n,p}(k_{\max})}+ \log\frac{f_{n,p}(k_{\max}+2)}{f_{n,p}(k_{\max}+1)}+\cdots+\log\frac{f_{n,p}(k_{\max}+m)}{f_{n,p}(k_{\max}+m-1)}\\ &\approx \frac{-1-2-\cdots-m}{npq} = -\frac{1}{2}\frac{m^2}{npq}. \end{align*}\]

Sumarizând avem, pentru \(m\) nu foarte mare,

\[ \mathbb{P}(X=k_{\max}+m)\approx f_{n,p}(k_{\max})e^{-\frac{1}{2}\frac{m^2}{npq}}. \]

Folosind formula lui Stirling2

\[ n!\approx \sqrt{2\pi}n^{n+\frac{1}{2}}e^{-n} \]

pentru \(k = k_{\max}\approx np\), avem

\[ f_{n,p}(k)\approx \frac{1}{\sqrt{2\pi}}\frac{n^{n+\frac{1}{2}}}{(np)^{np+\frac{1}{2}}(nq)^{nq+\frac{1}{2}}}p^{np}q^{nq}= \frac{1}{\sqrt{2\pi npq}}. \]

Astfel aproximarea de Moivre devine

\[ \mathbb{P}(X=k_{\max}+m)\approx \frac{1}{\sqrt{2\pi npq}}e^{-\frac{1}{2}\frac{m^2}{npq}} \]

și scriind \(k\) pentru \(k_{\max}+m\) și înlocuind \(k_{\max}\) cu \(np\) obținem

\[ \mathbb{P}(X=k)\approx \frac{1}{\sqrt{2\pi npq}}e^{-\frac{1}{2}\frac{(k-np)^2}{npq}} = \frac{1}{\sigma_n\sqrt{2\pi}}e^{-\frac{1}{2}\left(\frac{k-np}{\sigma_n}\right)^2}. \]

Astfel \(\mathbb{P}(X=k)\) este aproximativ egală cu aria de sub curba

\[ f(x) = \frac{1}{\sigma_n\sqrt{2\pi}}e^{-\frac{1}{2}\left(\frac{x-np}{\sigma_n}\right)^2} \]

pe intervalul \(k-\frac{1}{2}\leq x\leq k+\frac{1}{2}\).

În mod similar, pentru \(0\leq a< b\leq n\), avem

\[ \mathbb{P}(a\leq X\leq b) = \sum_{k=a}^{b}f_{n,p}(k) \approx \sum_{k=a}^{k=b}\int_{k+\frac{1}{2}}^{k-\frac{1}{2}}f(x)\,dx = \int_{a}^{b}f(x)\,dx \]

de unde prin schimbarea de variabilă \(y = \frac{x-np}{\sigma_n}\) obținem

\[ \mathbb{P}(a\leq X\leq b)\approx \frac{1}{\sqrt{2\pi}}\int_{\alpha}^{\beta}e^{-\frac{y^2}{2}}\,dy = \Phi(\beta) - \Phi(\alpha) \]

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

  1. aproximarea normală

\[ F_{n,p}(k) \approx \Phi\left(\frac{k-np}{\sqrt{np(1-p)}}\right). \]

  1. aproximarea normală cu coeficient de corecție de continuitate

\[ F_{n,p}(k) \approx \Phi\left(\frac{k+0.5-np}{\sqrt{np(1-p)}}\right). \]

Î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-p
  
  for (i in 1: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.

Note de subsol

  1. de Moivre, A. (1756). The Doctrine of Chances: or, A Method of Calculating the Probabilities of Events in Play (Third ed.). New York: Chelsea.↩︎

  2. 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.↩︎