Salta al contenuto
Note per Studenti Esercizio - Approssimazione di Poisson dei carichi e limite sul carico massimo

Esercizio - Approssimazione di Poisson dei carichi e limite sul carico massimo

Teoria: Palline e urne - compleanno, carico massimo e approssimazione di PoissonModello palline e urne (m palline, n urne, scelte indipendenti e uniformi): paradosso del compleanno con soglia sqrt(2 n ln 2), urne vuote attese n e^(-m/n), carico massimo ln n / ln ln n con dimostrazione (first moment e union bound), approssimazione di Poisson con il fattore e sqrt(m), potere delle due scelte (ln ln n / ln 2).Palline e urne - compleanno, carico massimo e approssimazione di Poisson → (approssimazione di Poisson e teorema esatto contro Poisson), Distribuzione di PoissonPoi(λ) conta eventi rari: P(X = k) = e^(−λ) λ^k / k! per k = 0, 1, 2, …, con media e varianza entrambe uguali a λ; approssima la binomiale Bin(n, p) quando n è grande e p piccolo, con λ = np.Distribuzione di Poisson →.

Testo. Si lanciano nn palline in nn urne (m=nm=n).

  1. Per n=100n=100 confrontare la probabilità esatta che un'urna abbia kk palline (k=0,…,5k=0,\dots,5) con quella di Poi(1)\text{Poi}(1) e calcolare la distanza in variazione totale. Quante urne vuote ci si aspetta secondo i due modelli?
  2. Dimostrare che P(Poi(m)=m)≥1emP(\text{Poi}(m)=m)\ge\frac1{e\sqrt m} usando m!≤em (m/e)mm!\le e\sqrt m\,(m/e)^m, e verificare la disuguaglianza per m=100m=100.
  3. Usando il teorema P(L∈A)≤em P(Y∈A)P(L\in A)\le e\sqrt m\,P(Y\in A) con l'union bound nel modello di Poisson, dare un limite superiore a P(max⁡iLi≥k)P(\max_iL_i\ge k) per n=1000n=1000 e k=8,9,10k=8,9,10, e confrontarlo con una simulazione.
  4. Rifare il confronto per n=100n=100 e k=5,6,7,8k=5,6,7,8. Quando il limite è inutile?

Soluzione

1. Binomiale contro Poisson. Li∼Bin(100,1100)L_i\sim\text{Bin}(100,\frac1{100}), quindi P(Li=k)=(100k)0,01k0,99100−kP(L_i=k)=\binom{100}k0{,}01^k0{,}99^{100-k}:

kk 00 11 22 33 44 55
binomiale 0,366030{,}36603 0,369730{,}36973 0,184860{,}18486 0,061000{,}06100 0,014940{,}01494 0,002900{,}00290
Poisson(1)=e−1/k!(1)=e^{-1}/k! 0,367880{,}36788 0,367880{,}36788 0,183940{,}18394 0,061310{,}06131 0,015330{,}01533 0,003070{,}00307

La distanza in variazione totale 12∑k∣PBin(k)−PPoi(k)∣\frac12\sum_k|P_{\text{Bin}}(k)-P_{\text{Poi}}(k)| vale 0,00278\boxed{0{,}00278}. Urne vuote attese: 100⋅0,36603=36,60100\cdot0{,}36603=36{,}60 (esatto) contro 100⋅e−1=36,79100\cdot e^{-1}=36{,}79 (Poisson). Il modello di Poisson dà frazioni quasi identiche, con errore sotto l'1%1\%.

2. P(Poi(m)=m)=e−mmmm!P(\text{Poi}(m)=m)=\frac{e^{-m}m^m}{m!}. Dalla disuguaglianza m!≤em (m/e)m=em mme−mm!\le e\sqrt m\,(m/e)^m=e\sqrt m\,m^me^{-m} si ha e−mmmm!≥e−mmmem mme−m=1em.\frac{e^{-m}m^m}{m!}\ge\frac{e^{-m}m^m}{e\sqrt m\,m^me^{-m}}=\frac1{e\sqrt m}. Per m=100m=100: il membro sinistro vale 0,039860{,}03986 e il destro 1e⋅10=0,03679\frac1{e\cdot10}=0{,}03679. (Il valore giusto è ≈12πm=0,03989\approx\frac1{\sqrt{2\pi m}}=0{,}03989 per Stirling: il fattore ee al posto di 2π=2,507\sqrt{2\pi}=2{,}507 è il prezzo di una disuguaglianza valida per ogni mm.)

3. Limite per n=1000n=1000. Nel modello di Poisson Yi∼Poi(1)Y_i\sim\text{Poi}(1) sono indipendenti e per l'union bound P(max⁡Yi≥k)≤n P(Poi(1)≥k).P(\max Y_i\ge k)\le n\,P(\text{Poi}(1)\ge k). Il teorema moltiplica per em=e1000=85,96e\sqrt m=e\sqrt{1000}=85{,}96:

kk n P(Poi(1)≥k)n\,P(\text{Poi}(1)\ge k) limite × 85,96\times\,85{,}96 simulazione (10510^5 prove)
88 0,010250{,}01025 0,8810{,}881 0,009640{,}00964
99 0,001130{,}00113 0,09670{,}0967 0,001120{,}00112
1010 0,000110{,}00011 0,00960{,}0096 0,000080{,}00008

Il limite è corretto ma più largo di un fattore ≈86\approx86 (il fattore eme\sqrt m stesso), e per k=8k=8 vale 0,880{,}88: utile solo per k≥9k\ge9. Si noti che nel modello Poisson l'union bound è quasi esatto (il valore n P(Poi≥k)n\,P(\text{Poi}\ge k) è molto vicino alla simulazione nel modello esatto), quindi tutto lo spreco è nel fattore eme\sqrt m.

4. n=100n=100. Ora il fattore è e100=27,18e\sqrt{100}=27{,}18.

kk n P(Poi(1)≥k)n\,P(\text{Poi}(1)\ge k) limite × 27,18\times\,27{,}18 simulazione (10510^5 prove)
55 0,3660{,}366 9,959{,}95 0,2980{,}298
66 0,05940{,}0594 1,6151{,}615 0,05330{,}0533
77 0,008320{,}00832 0,22630{,}2263 0,00750{,}0075
88 0,001020{,}00102 0,02790{,}0279 0,000740{,}00074

Per k=5,6k=5,6 il limite supera 11: vuoto. Il metodo è utile solo quando n P(Poi≥k)≪1emn\,P(\text{Poi}\ge k)\ll\frac1{e\sqrt m}, cioè sulle code lontane. L'union bound sul modello esatto, senza il fattore, dà 0,00710{,}0071 per k=7k=7 ma richiede di gestire la dipendenza tra i carichi.

Codice di verifica

python
import numpy as np
from math import comb, exp, factorial, e, sqrt

n = 100
bino = [comb(n, k) * 0.01 ** k * 0.99 ** (n - k) for k in range(6)]
poi = [exp(-1) / factorial(k) for k in range(6)]
print([round(x, 5) for x in bino], [round(x, 5) for x in poi])
print(0.5 * sum(abs(comb(n, k) * 0.01 ** k * 0.99 ** (n - k) - exp(-1) / factorial(k)) for k in range(n + 1)))

def prova(n, T, ks):
    rng = np.random.default_rng(1)
    mx = np.array([np.bincount(rng.integers(0, n, size=n), minlength=n).max() for _ in range(T)])
    for k in ks:
        P = n * (1 - sum(exp(-1) / factorial(j) for j in range(k)))     # n P(Poi(1) >= k)
        print(n, k, round(P, 5), round(P * e * sqrt(n), 4), (mx >= k).mean())

prova(1000, 100000, (8, 9, 10))
prova(100, 100000, (5, 6, 7, 8))

Risultato: le due liste della tabella, 0.002775, poi righe n k P limite frequenza come 1000 8 0.01025 0.881 0.00964 e 100 6 0.05942 1.6152 0.0533 (i valori delle due tabelle).

Versione ripasso

Teoria collegata