Salta al contenuto
Note per Studenti Esercizio - Stima Monte Carlo di pi greco e di una probabilità rara con campionamento per importanza

Esercizio - Stima Monte Carlo di pi greco e di una probabilità rara con campionamento per importanza

Teoria: Metodi Monte Carlo - stima, generazione di variabili aleatorie e MCMCMonte Carlo stima una grandezza come media di campioni casuali: errore tipico σ/√N, numero di campioni N ≥ ln(2/δ)/(2ε²) per Hoeffding (probabilità), N ≥ 3 ln(2/δ)/(pε²) per Chernoff (errore relativo). Stima di π con p=π/4; integrali come media di g(U); eventi rari con campionamento per importanza (pesi φ/q); conteggio DNF con Karp-Luby in tempo polinomiale perché P(Y=1) ≥ 1/m. Generazione: trasformazione inversa X=F^{-1}(U) e accettazione-rifiuto (f ≤ M g, efficienza 1/M). MCMC: Metropolis-Hastings costruisce una catena con stazionaria π (nota a meno di costante) imponendo il bilancio dettagliato con probabilità di accettazione min(1, π(y)Q(y,x)/(π(x)Q(x,y))).Metodi Monte Carlo - stima, generazione di variabili aleatorie e MCMC →; limiti di coda in Limiti di Chernoff e di HoeffdingMarkov applicato a e^(tX) dà code esponenziali. Per somme di Bernoulli indipendenti con media μ: P(X ≥ (1+δ)μ) ≤ [e^δ/(1+δ)^(1+δ)]^μ ≤ e^(-δ²μ/3) per 0<δ≤1, P(X ≤ (1-δ)μ) ≤ e^(-δ²μ/2), P(X ≥ R) ≤ 2^(-R) se R ≥ 6μ. Hoeffding per X_i in [a_i,b_i]: P(|S-E[S]| ≥ t) ≤ 2exp(-2t²/Σ(b_i-a_i)²). Applicazioni: n ≥ ln(2/δ)/(2ε²) campioni per stimare una probabilità, amplificazione BPP con k = O(log 1/ε) ripetizioni, bilanciamento di insiemi con scarto √(4m ln n).Limiti di Chernoff e di Hoeffding →.

Testo.

  1. Si stima π\pi lanciando NN punti uniformi in [0,1]2[0,1]^2 e contando quelli con u2+v2<1u^2+v^2<1. Quanti campioni servono perché ∣π^−π∣≤0,005|\hat\pi-\pi|\le0{,}005 con probabilità almeno 0,950{,}95? Calcolare il numero con Hoeffding, con Chebyshev e con il teorema del limite centrale.
  2. Con N=106N=10^6 si ottengono 784 674784\,674 punti dentro. Stima di π\pi, deviazione standard stimata e intervallo di confidenza al 95%95\%.
  3. Si vuole stimare p=P(Z>4)p=P(Z>4), Z∼N(0,1)Z\sim\mathcal N(0,1) (p=3,167⋅10−5p=3{,}167\cdot10^{-5}). Quanti campioni servono con il metodo ingenuo per un errore relativo del 10%10\%?
  4. Campionamento per importanza con la proposta q=N(μ,1)q=\mathcal N(\mu,1): scrivere il peso, la varianza relativa per campione in funzione di μ\mu e scegliere μ\mu. Stima con N=105N=10^5.

Soluzione

1. Sia p=π4=0,7854p=\tfrac\pi4=0{,}7854 e π^=4p^\hat\pi=4\hat p. L'errore ∣π^−π∣≤0,005|\hat\pi-\pi|\le0{,}005 equivale a ∣p^−p∣≤ε=0,00125|\hat p-p|\le\varepsilon=0{,}00125 con δ=0,05\delta=0{,}05.

  • Hoeffding: N≥ln⁡(2/δ)2ε2=ln⁡402⋅1,5625⋅10−6=3,68893,125⋅10−6=1 180 441N\ge\dfrac{\ln(2/\delta)}{2\varepsilon^2}=\dfrac{\ln40}{2\cdot1{,}5625\cdot10^{-6}}=\dfrac{3{,}6889}{3{,}125\cdot10^{-6}}=\boxed{1\,180\,441}.
  • Chebyshev: N≥p(1−p)δε2=0,16860,05⋅1,5625⋅10−6=2 157 413N\ge\dfrac{p(1-p)}{\delta\varepsilon^2}=\dfrac{0{,}1686}{0{,}05\cdot1{,}5625\cdot10^{-6}}=\boxed{2\,157\,413}.
  • TLC: sd(π^)=4p(1−p)/N≤0,005/1,96\text{sd}(\hat\pi)=4\sqrt{p(1-p)/N}\le0{,}005/1{,}96, quindi N≥(1,96⋅4)2 p(1−p)0,0052=61,47⋅0,16862,5⋅10−5=414 396N\ge\dfrac{(1{,}96\cdot4)^2\,p(1-p)}{0{,}005^2}=\dfrac{61{,}47\cdot0{,}1686}{2{,}5\cdot10^{-5}}=\boxed{414\,396}.

Il TLC dà il numero più piccolo ma è un'approssimazione, non una garanzia: in 20 00020\,000 ripetizioni simulate con N=414 396N=414\,396 la frazione di stime entro 0,0050{,}005 è stata 0,9480{,}948, appena sotto il 0,950{,}95 richiesto; con N=1 180 441N=1\,180\,441 è stata 0,9990{,}999 (Hoeffding è prudente).

2. p^=0,784674\hat p=0{,}784674, quindi π^=4p^=3,138696\hat\pi=4\hat p=3{,}138696. La deviazione standard stimata è 4p^(1−p^)/N=40,784674⋅0,215326/106=4⋅4,110⋅10−4=0,0016444\sqrt{\hat p(1-\hat p)/N}=4\sqrt{0{,}784674\cdot0{,}215326/10^6}=4\cdot4{,}110\cdot10^{-4}=0{,}001644. Intervallo al 95%95\%: 3,138696±1,96⋅0,001644=[3,1355; 3,1419]3{,}138696\pm1{,}96\cdot0{,}001644=[3{,}1355;\ 3{,}1419]. Contiene π=3,14159\pi=3{,}14159 (appena, vicino al bordo: succede nel 5%5\% delle ripetizioni che l'intervallo non contenga π\pi).

3. Il metodo ingenuo ha successo con probabilità p=3,167⋅10−5p=3{,}167\cdot10^{-5} e l'errore relativo della media è (1−p)/(Np)\sqrt{(1-p)/(Np)}. Per 0,100{,}10: N=1−pp⋅0,01≈3 157 000N=\dfrac{1-p}{p\cdot0{,}01}\approx\boxed{3\,157\,000} campioni. Con N=105N=10^5 si vedono in media solo 3,23{,}2 successi: la stima è inservibile (nella prova del codice sotto se ne sono visti 66, stima 6⋅10−56\cdot10^{-5}, quasi il doppio del vero).

4. Il campionamento per importanza stima p=Eφ[1[Z>4]]p=E_\varphi[\mathbf 1[Z>4]] campionando Y∼N(μ,1)Y\sim\mathcal N(\mu,1) e pesando con w(y)=φ(y)φ(y−μ)=e−y2/2+(y−μ)2/2=e−μy+μ2/2w(y)=\dfrac{\varphi(y)}{\varphi(y-\mu)}=e^{-y^2/2+(y-\mu)^2/2}=e^{-\mu y+\mu^2/2}: p^=1N∑j1[Yj>4] e−μYj+μ2/2.\hat p=\frac1N\sum_j\mathbf 1[Y_j>4]\,e^{-\mu Y_j+\mu^2/2}. È non distorto perché Eq[1[Y>4]w(Y)]=∫4∞φ=pE_q[\mathbf 1[Y>4]w(Y)]=\int_4^\infty\varphi=p. Il secondo momento per campione è M2(μ)=∫4∞φ(y)2φ(y−μ)dy=∫4∞e−y2/2−μy+μ2/22πdy,varianza relativa=M2p2−1.M_2(\mu)=\int_4^\infty\frac{\varphi(y)^2}{\varphi(y-\mu)}dy=\int_4^\infty\frac{e^{-y^2/2-\mu y+\mu^2/2}}{\sqrt{2\pi}}dy,\qquad\text{varianza relativa}=\frac{M_2}{p^2}-1. Calcolando numericamente:

μ\mu 0 (ingenuo) 2 3 4 5
varianza relativa per campione 31 57331\,573 52,752{,}7 9,349{,}34 4,51\mathbf{4{,}51} 7,107{,}10

Conviene μ≈4\mu\approx4, cioè centrare la proposta sulla soglia (con μ\mu troppo grande si campiona oltre la soglia con pesi troppo variabili). Con μ=4\mu=4 il peso è e−4y+8e^{-4y+8}. L'errore relativo con NN campioni è 4,51/N\sqrt{4{,}51/N}: per N=105N=10^5, 0,67%0{,}67\% (contro 3 157 0003\,157\,000 campioni del metodo ingenuo per il 10%10\%: guadagno di circa 70007000 volte in varianza). La prova del codice sotto, con N=105N=10^5, ha dato p^=3,136⋅10−5\hat p=3{,}136\cdot10^{-5} con intervallo al 95%95\% [3,095; 3,177]⋅10−5[3{,}095;\ 3{,}177]\cdot10^{-5}, che contiene il valore vero 3,167⋅10−53{,}167\cdot10^{-5} (varianza relativa stimata 4,434{,}43, contro 4,514{,}51 esatta).

Codice di verifica

python
import numpy as np
from math import erfc, log, pi, sqrt
rng = np.random.default_rng(11)
p = pi / 4

# 1. numero di campioni per |pi_hat - pi| <= 0.005 al 95%
eps, delta = 0.005 / 4, 0.05
print("Hoeffding:", log(2 / delta) / (2 * eps**2), " Chebyshev:", p * (1 - p) / (delta * eps**2),
      " TLC:", (1.96 * 4)**2 * p * (1 - p) / 0.005**2)

# 2. intervallo di confidenza
N, k = 10**6, 784674
ph = k / N; sd = 4 * sqrt(ph * (1 - ph) / N)
print(4 * ph, sd, 4 * ph - 1.96 * sd, 4 * ph + 1.96 * sd)

# 3-4. evento raro P(Z > 4)
vero = 0.5 * erfc(4 / sqrt(2)); N = 10**5
y = rng.standard_normal(N) + 4                     # proposta N(4, 1)
w = np.exp(-4 * y + 8) * (y > 4)
print("vero", vero, " IS:", w.mean(), "+-", 1.96 * w.std() / sqrt(N), " varianza relativa:", w.var() / vero**2)
print("ingenuo: successi su 1e5 =", (rng.standard_normal(N) > 4).sum())

Versione ripasso

Teoria: Metodi Monte Carlo - stima, generazione di variabili aleatorie e MCMCMonte Carlo stima una grandezza come media di campioni casuali: errore tipico σ/√N, numero di campioni N ≥ ln(2/δ)/(2ε²) per Hoeffding (probabilità), N ≥ 3 ln(2/δ)/(pε²) per Chernoff (errore relativo). Stima di π con p=π/4; integrali come media di g(U); eventi rari con campionamento per importanza (pesi φ/q); conteggio DNF con Karp-Luby in tempo polinomiale perché P(Y=1) ≥ 1/m. Generazione: trasformazione inversa X=F^{-1}(U) e accettazione-rifiuto (f ≤ M g, efficienza 1/M). MCMC: Metropolis-Hastings costruisce una catena con stazionaria π (nota a meno di costante) imponendo il bilancio dettagliato con probabilità di accettazione min(1, π(y)Q(y,x)/(π(x)Q(x,y))).Metodi Monte Carlo - stima, generazione di variabili aleatorie e MCMC →; Limiti di Chernoff e di HoeffdingMarkov applicato a e^(tX) dà code esponenziali. Per somme di Bernoulli indipendenti con media μ: P(X ≥ (1+δ)μ) ≤ [e^δ/(1+δ)^(1+δ)]^μ ≤ e^(-δ²μ/3) per 0<δ≤1, P(X ≤ (1-δ)μ) ≤ e^(-δ²μ/2), P(X ≥ R) ≤ 2^(-R) se R ≥ 6μ. Hoeffding per X_i in [a_i,b_i]: P(|S-E[S]| ≥ t) ≤ 2exp(-2t²/Σ(b_i-a_i)²). Applicazioni: n ≥ ln(2/δ)/(2ε²) campioni per stimare una probabilità, amplificazione BPP con k = O(log 1/ε) ripetizioni, bilanciamento di insiemi con scarto √(4m ln n).Limiti di Chernoff e di Hoeffding →.

  • Campioni per ∣π^−π∣≤0,005|\hat\pi-\pi|\le0{,}005 al 95%95\% (ε=0,00125\varepsilon=0{,}00125 su p^\hat p, p(1−p)=0,1686p(1-p)=0{,}1686): Hoeffding ln⁡402ε2=1 180 441\frac{\ln40}{2\varepsilon^2}=1\,180\,441; Chebyshev p(1−p)δε2=2 157 413\frac{p(1-p)}{\delta\varepsilon^2}=2\,157\,413; TLC (1,96⋅4)2p(1−p)0,0052=414 396\frac{(1{,}96\cdot4)^2p(1-p)}{0{,}005^2}=414\,396 (frazione osservata 0,9480{,}948: approssimazione, non garanzia).
  • Una prova: 784 674/106→π^=3,138696784\,674/10^6\to\hat\pi=3{,}138696, sd 0,0016440{,}001644, intervallo [3,1355; 3,1419][3{,}1355;\,3{,}1419].
  • Evento raro P(Z>4)=3,167⋅10−5P(Z>4)=3{,}167\cdot10^{-5}: ingenuo N=1−p0,01p≈3,16⋅106N=\frac{1-p}{0{,}01p}\approx3{,}16\cdot10^6 per il 10%10\%.
  • Importance sampling con q=N(μ,1)q=\mathcal N(\mu,1): w=e−μy+μ2/2w=e^{-\mu y+\mu^2/2}, p^=1N∑1[Y>4]w(Y)\hat p=\frac1N\sum\mathbf 1[Y>4]w(Y); varianza relativa M2/p2−1M_2/p^2-1: 52,752{,}7; 9,349{,}34; 4,51\mathbf{4{,}51}; 7,107{,}10 per μ=2,3,4,5\mu=2,3,4,5. Con μ=4\mu=4 e N=105N=10^5: errore relativo 0,67%0{,}67\%, circa 70007000 volte meno varianza.
  • Errori tipici: confondere ε\varepsilon su p^\hat p con ε\varepsilon su π^\hat\pi (fattore 44); dimenticare il peso (stima distorta); scegliere una proposta troppo spostata.

Teoria collegata