Salta al contenuto
Note per Studenti Metodi Monte Carlo - stima, generazione di variabili aleatorie e MCMC

Metodi Monte Carlo - stima, generazione di variabili aleatorie e MCMC

In questa pagina 6

Un metodo Monte Carlo ottiene una quantità deterministica (un'area, una probabilità, un conteggio) come media di esperimenti casuali. Qui: stima e numero di campioni, riduzione della varianza, conteggio approssimato, generazione di variabili aleatorie e campionamento da distribuzioni difficili con le catene di Markov. Prerequisiti: Legge dei grandi numeri e metodo Monte CarloSe X₁, X₂, ... sono i.i.d. con media μ, la media campionaria X̄ₙ = (X₁ + ... + Xₙ)/n converge a μ: in probabilità (legge debole, dimostrata con Chebyshev se la varianza è finita: P(|X̄ₙ − μ| > ε) ≤ σ²/(nε²)) e quasi certamente (legge forte). Metodo Monte Carlo: ∫ g = E[g(U)] si stima con la media di g(U₁), ..., g(Uₙ) per uniformi indipendenti.Legge dei grandi numeri e metodo Monte Carlo → (legge dei grandi numeri e Monte Carlo per gli integrali), Teorema del limite centrale e approssimazione normaleSe X₁, X₂, ... sono i.i.d. con media μ e varianza σ² ∈ (0, ∞), la somma standardizzata (Sₙ − nμ)/(σ√n) converge in distribuzione a N(0, 1): per n grande P(Sₙ ≤ x) ≈ Φ((x − nμ)/(σ√n)). Caso binomiale (De Moivre-Laplace): Bin(n, p) ≈ N(np, np(1 − p)), con correzione di continuità ±0,5. Si dimostra con le funzioni caratteristiche e il teorema di Lévy.Teorema del limite centrale e approssimazione normale →, Funzioni di una variabile aleatoriaPer trovare la legge di Y = g(X) si calcola la FdD: F_Y(y) = P(g(X) ≤ y) = P(X ∈ g⁻¹((−∞, y])), poi si deriva; se g è strettamente monotona e derivabile vale la formula f_Y(y) = f_X(g⁻¹(y)) · |(g⁻¹)'(y)|; se g è costante a tratti Y è discreta; se g non è iniettiva (es. X²) si spezza l'evento.Funzioni di una variabile aleatoria →, Funzione di distribuzioneLa funzione di distribuzione (FdD) F_X(x) = P(X ≤ x) è definita per ogni v.a., è crescente, continua a destra, va da 0 a 1 e determina la legge; per una v.a. discreta è a gradini, con salti in corrispondenza dei valori e di altezza pari alla densità.Funzione di distribuzione →, Disuguaglianze di Markov, Chebyshev e JensenMarkov: per X ≥ 0, P(X ≥ a) ≤ E[X]/a; Chebyshev: P(|X − μ| ≥ ε) ≤ Var(X)/ε²; Jensen: per φ convessa, φ(E[X]) ≤ E[φ(X)]. Stimano probabilità e medie conoscendo solo media e varianza.Disuguaglianze di Markov, Chebyshev e Jensen → e i limiti di coda di 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 →. Il concetto di algoritmo con errore è in Algoritmi randomizzati - Monte Carlo, Las Vegas e amplificazioneUn algoritmo randomizzato usa bit casuali indipendenti; la probabilità è sulle scelte dell'algoritmo, mai sull'input (garanzia per ogni input). Las Vegas: sempre corretto, tempo aleatorio (conta il tempo atteso). Monte Carlo: tempo fisso, risposta sbagliata con probabilità limitata; errore unilaterale (RP: accetta solo se x sta nel linguaggio, accetta con prob almeno 1/2) o bilaterale (BPP: giusto con prob almeno 2/3). ZPP = RP ∩ co-RP = Las Vegas con tempo atteso polinomiale. Amplificazione: unilaterale, k ripetizioni indipendenti, errore (1-p)^k ≤ e^(-pk), serve k ≥ ln(1/ε)/p; bilaterale, voto di maggioranza su k esecuzioni, errore binomiale esatto, esponenziale in k (Chernoff, e^(-k/18) per p=2/3) mentre Chebyshev dà solo 8/k. Las Vegas -> Monte Carlo: interrompere a c volte il tempo atteso (Markov, errore ≤ 1/c). Monte Carlo -> Las Vegas: solo se la risposta si verifica in fretta. Esempio: Miller-Rabin, errore ≤ 1/4 per esecuzione.Algoritmi randomizzati - Monte Carlo, Las Vegas e amplificazione →.

Stima Monte Carlo

Se X1,…,XNX_1,\dots,X_N sono i.i.d. con media μ\mu e varianza σ2\sigma^2, la media campionaria μ^=1N∑Xi\hat\mu=\frac1N\sum X_i ha E[μ^]=μE[\hat\mu]=\mu e Var(μ^)=σ2/N\text{Var}(\hat\mu)=\sigma^2/N: l'errore tipico è σ/N\sigma/\sqrt N e per ridurlo di 1010 servono 100100 volte più campioni (legge dei grandi numeri: Legge dei grandi numeri e metodo Monte CarloSe X₁, X₂, ... sono i.i.d. con media μ, la media campionaria X̄ₙ = (X₁ + ... + Xₙ)/n converge a μ: in probabilità (legge debole, dimostrata con Chebyshev se la varianza è finita: P(|X̄ₙ − μ| > ε) ≤ σ²/(nε²)) e quasi certamente (legge forte). Metodo Monte Carlo: ∫ g = E[g(U)] si stima con la media di g(U₁), ..., g(Uₙ) per uniformi indipendenti.Legge dei grandi numeri e metodo Monte Carlo →).

Esempio (stima di π\pi, hit-or-miss). Si lanciano punti uniformi (U,V)(U,V) in [0,1]2[0,1]^2; il quarto di cerchio {u2+v2<1}\{u^2+v^2<1\} ha area π4\tfrac\pi4. Sia I=1[U2+V2<1]∼Bernoulli(p)I=\mathbf 1[U^2+V^2<1]\sim\text{Bernoulli}(p) con p=π4=0,7854p=\tfrac\pi4=0{,}7854. Allora π^=4p^=4N∑Ij\hat\pi=4\hat p=\frac4N\sum I_j ha media π\pi e deviazione standard 4p(1−p)/N=1,64/N4\sqrt{p(1-p)/N}=1{,}64/\sqrt N.

Con N=103,104,105,106N=10^3,10^4,10^5,10^6 la deviazione standard teorica è 0,052; 0,0164; 0,0052; 0,001640{,}052;\ 0{,}0164;\ 0{,}0052;\ 0{,}00164 e le stime ottenute in cinque prove per ciascun NN stanno in 3,123{,}12–3,233{,}23; 3,123{,}12–3,173{,}17; 3,1403{,}140–3,1463{,}146; 3,14053{,}1405–3,14303{,}1430. Tre cifre decimali costano circa un milione di campioni: il metodo è lento, ma non dipende dalla dimensione del problema.

Quanti campioni

Problema. Quanti campioni servono perché ∣p^−p∣≤ε|\hat p-p|\le\varepsilon con probabilità ≥1−δ\ge1-\delta?

  • Hoeffding (variabili in [0,1][0,1]): P(∣p^−p∣≥ε)≤2e−2Nε2≤δ  ⟺  N≥ln⁡(2/δ)2ε2P(|\hat p-p|\ge\varepsilon)\le2e^{-2N\varepsilon^2}\le\delta\iff N\ge\dfrac{\ln(2/\delta)}{2\varepsilon^2}.
  • Chernoff, errore relativo (0<ε≤10<\varepsilon\le1): P(∣p^−p∣≥εp)≤2e−Npε2/3≤δ  ⟺  N≥3ln⁡(2/δ)p ε2P(|\hat p-p|\ge\varepsilon p)\le2e^{-Np\varepsilon^2/3}\le\delta\iff N\ge\dfrac{3\ln(2/\delta)}{p\,\varepsilon^2}. Per pp piccolo il numero di campioni cresce come 1/p1/p: servono circa 1/p1/p per vedere un singolo successo.
  • Chebyshev: P(∣p^−p∣≥ε)≤p(1−p)Nε2≤δ  ⟺  N≥p(1−p)δε2P(|\hat p-p|\ge\varepsilon)\le\dfrac{p(1-p)}{N\varepsilon^2}\le\delta\iff N\ge\dfrac{p(1-p)}{\delta\varepsilon^2} (dipende da 1/δ1/\delta e non da ln⁡(1/δ)\ln(1/\delta)).
  • Teorema del limite centrale: N≥(z1−δ/2 σ/ε)2N\ge\bigl(z_{1-\delta/2}\,\sigma/\varepsilon\bigr)^2, approssimato (nessuna garanzia per NN finito).

Esempio. Per ottenere ∣π^−π∣≤0,01|\hat\pi-\pi|\le0{,}01 con probabilità almeno 0,990{,}99 si deve avere ∣p^−p∣≤ε=0,0025|\hat p-p|\le\varepsilon=0{,}0025 e δ=0,01\delta=0{,}01:

metodo NN
Hoeffding: ln⁡(200)/(2⋅0,00252)\ln(200)/(2\cdot0{,}0025^2) 423 866423\,866
Chebyshev: 0,1686/(0,01⋅0,00252)0{,}1686/(0{,}01\cdot0{,}0025^2) 2 696 7672\,696\,767
Chernoff relativo (εrel=0,01/π\varepsilon_{rel}=0{,}01/\pi): 3ln⁡200/(p εrel2)3\ln200/(p\,\varepsilon_{rel}^2) 1 997 4191\,997\,419
TLC (z=2,576z=2{,}576) 178 928178\,928

(p(1−p)=0,7854⋅0,2146=0,1686p(1-p)=0{,}7854\cdot0{,}2146=0{,}1686.) Su 20 00020\,000 ripetizioni simulate, con N=423 866N=423\,866 la frazione di stime entro 0,010{,}01 è 0,99990{,}9999 (garanzia molto prudente); con N=178 928N=178\,928 è 0,9900{,}990: il TLC è il più economico e qui basta appena, ma non dà una garanzia.

Integrali

Se U∼U(0,1)U\sim\text{U}(0,1), ∫01g(x)dx=E[g(U)]\int_0^1g(x)dx=E[g(U)], quindi I^=1N∑g(Uj)\hat I=\frac1N\sum g(U_j) (Legge dei grandi numeri e metodo Monte CarloSe X₁, X₂, ... sono i.i.d. con media μ, la media campionaria X̄ₙ = (X₁ + ... + Xₙ)/n converge a μ: in probabilità (legge debole, dimostrata con Chebyshev se la varianza è finita: P(|X̄ₙ − μ| > ε) ≤ σ²/(nε²)) e quasi certamente (legge forte). Metodo Monte Carlo: ∫ g = E[g(U)] si stima con la media di g(U₁), ..., g(Uₙ) per uniformi indipendenti.Legge dei grandi numeri e metodo Monte Carlo →). Per g(x)=e−x2g(x)=e^{-x^2}: I=0,746824I=0{,}746824, σ2=∫01e−2x2dx−I2=0,04040\sigma^2=\int_0^1e^{-2x^2}dx-I^2=0{,}04040, σ=0,2010\sigma=0{,}2010. Per un errore ±0,001\pm0{,}001 al 95%95\%: N≥(1,96⋅0,2010/0,001)2=155 200N\ge(1{,}96\cdot0{,}2010/0{,}001)^2=155\,200. Con 10610^6 campioni si ottiene 0,747050{,}74705.

Riduzione della varianza con variabili antitetiche. Si usa 12(g(U)+g(1−U))\frac12\bigl(g(U)+g(1-U)\bigr): se gg è monotona, g(U)g(U) e g(1−U)g(1-U) sono negativamente correlate e la varianza della media crolla. Qui la varianza per campione scende da 0,04040{,}0404 a 0,0008070{,}000807 (due valutazioni di gg per campione: guadagno di circa 2525 volte a parità di costo).

Eventi rari e campionamento per importanza

Se p=P(A)p=P(A) è molto piccola, il metodo ingenuo ha errore relativo (1−p)/(Np)≈1/Np\sqrt{(1-p)/(Np)}\approx1/\sqrt{Np}: per un errore relativo del 10%10\% servono N≈100/pN\approx100/p. Esempio: p=P(Z>4)=3,167⋅10−5p=P(Z>4)=3{,}167\cdot10^{-5} per ZZ normale standard: servono 3 157 0003\,157\,000 campioni per il 10%10\%.

Campionamento per importanza. Per stimare Ef[h(X)]E_f[h(X)] si campiona da un'altra densità qq (con q>0q>0 dove f h≠0f\,h\ne0) e si pesa: Ef[h(X)]=Eq ⁣[h(X)f(X)q(X)]E_f[h(X)]=E_q\!\Bigl[h(X)\dfrac{f(X)}{q(X)}\Bigr], stimato da 1N∑h(Yj) w(Yj)\frac1N\sum h(Y_j)\,w(Y_j) con w=f/qw=f/q e Yj∼qY_j\sim q. Rimane non distorto; la varianza è piccola se qq è concentrata dove h fh\,f è grande.

Per P(Z>4)P(Z>4) si prende q=N(4,1)q=\mathcal N(4,1) (centrata sulla zona rara): w(y)=φ(y)φ(y−4)=e−4y+8w(y)=\dfrac{\varphi(y)}{\varphi(y-4)}=e^{-4y+8} e la stima è la media di 1[Y>4] e−4Y+8\mathbf 1[Y>4]\,e^{-4Y+8}. Con N=105N=10^5 campioni il metodo ingenuo vede 33 successi (stima 3⋅10−53\cdot10^{-5}, inaffidabile); l'importance sampling dà 3,17⋅10−53{,}17\cdot10^{-5} con errore relativo 0,7%0{,}7\% (la varianza relativa per campione è 4,54{,}5 contro 3,2⋅1043{,}2\cdot10^4: circa 70007000 volte meno).

Conteggio approssimato: formule DNF

Una formula DNF è un OR di mm termini, ciascuno AND di letterali. Contare le assegnazioni che la soddisfano (#\#DNF) è difficile in modo esatto, ma si approssima con un metodo Monte Carlo ben progettato (algoritmo di Karp e Luby). Il campionamento ingenuo (assegnazione uniforme, controllare se soddisfa) fallisce quando le soluzioni sono rare: con n=40n=40 variabili e 33 termini di 2020 letterali, la frazione di soluzioni è ≤3⋅220/240=2,9⋅10−6\le3\cdot2^{20}/2^{40}=2{,}9\cdot10^{-6}.

Sia SiS_i l'insieme delle assegnazioni che soddisfano il termine ii; se il termine ha kik_i letterali, ∣Si∣=2n−ki|S_i|=2^{n-k_i} e gli SiS_i si possono campionare uniformemente fissando i letterali. Si vuole ∣U∣|U| con U=⋃iSiU=\bigcup_iS_i.

Algoritmo (Karp-Luby). Ripeti NN volte: scegli ii con probabilità ∣Si∣/∑j∣Sj∣|S_i|/\sum_j|S_j|; scegli x∈Six\in S_i uniformemente; poni Y=1Y=1 se ii è il più piccolo indice tra i termini soddisfatti da xx, altrimenti Y=0Y=0. Restituisci (∑j∣Sj∣)⋅Yˉ\bigl(\sum_j|S_j|\bigr)\cdot\bar Y.

Dimostrazione. La coppia (i,x)(i,x) con x∈Six\in S_i ha probabilità ∣Si∣∑j∣Sj∣⋅1∣Si∣=1∑j∣Sj∣\frac{|S_i|}{\sum_j|S_j|}\cdot\frac1{|S_i|}=\frac1{\sum_j|S_j|}: la scelta è uniforme sulle coppie (i,x)(i,x) con x∈Six\in S_i. Ogni x∈Ux\in U ha esattamente una coppia "canonica" (con ii il più piccolo indice che lo soddisfa), quindi E[Y]=∣U∣∑j∣Sj∣E[Y]=\dfrac{|U|}{\sum_j|S_j|} e la stima è non distorta. Inoltre ∣U∣≥max⁡j∣Sj∣≥1m∑j∣Sj∣|U|\ge\max_j|S_j|\ge\frac1m\sum_j|S_j|, quindi E[Y]≥1mE[Y]\ge\frac1m: il successo non è raro. Con Chernoff relativo, N≥3mln⁡(2/δ)ε2N\ge\dfrac{3m\ln(2/\delta)}{\varepsilon^2} campioni danno errore relativo ≤ε\le\varepsilon con probabilità ≥1−δ\ge1-\delta: tempo polinomiale in mm, nn, 1/ε1/\varepsilon, ln⁡(1/δ)\ln(1/\delta). ■\blacksquare

Esempio. n=4n=4, φ=(x1∧x2)∨(¬x2∧x3)∨(x3∧x4)\varphi=(x_1\wedge x_2)\vee(\neg x_2\wedge x_3)\vee(x_3\wedge x_4): ∣S1∣=∣S2∣=∣S3∣=4|S_1|=|S_2|=|S_3|=4, somma 1212. L'unione è ∣U∣=9|U|=9 (le assegnazioni 00110011 e 10111011 stanno in S2∩S3S_2\cap S_3, e 11111111 in S1∩S3S_1\cap S_3; 12−3=912-3=9), quindi E[Y]=912=0,75E[Y]=\tfrac9{12}=0{,}75. Con 10510^5 campioni si ottiene Yˉ=0,7500\bar Y=0{,}7500 e la stima 9,00059{,}0005. Per m=3m=3, ε=0,05\varepsilon=0{,}05, δ=0,05\delta=0{,}05: N≥3⋅3ln⁡(40)/0,052=13 280N\ge3\cdot3\ln(40)/0{,}05^2=13\,280. L'esercizio completo è in Esercizio - Conteggio delle soluzioni di una formula DNF con l'algoritmo di Karp e Luby.

Generazione di variabili aleatorie

Si assume di avere un generatore di U∼U(0,1)U\sim\text{U}(0,1) (numeri pseudocasuali).

Trasformazione inversa

Teorema. Sia FF una funzione di distribuzione (Funzione di distribuzioneLa funzione di distribuzione (FdD) F_X(x) = P(X ≤ x) è definita per ogni v.a., è crescente, continua a destra, va da 0 a 1 e determina la legge; per una v.a. discreta è a gradini, con salti in corrispondenza dei valori e di altezza pari alla densità.Funzione di distribuzione →) e F−1(u)=min⁡{x:F(x)≥u}F^{-1}(u)=\min\{x:F(x)\ge u\}. Se U∼U(0,1)U\sim\text{U}(0,1) allora X=F−1(U)X=F^{-1}(U) ha funzione di distribuzione FF.

Dimostrazione. F−1(u)≤x  ⟺  u≤F(x)F^{-1}(u)\le x\iff u\le F(x) (definizione di minimo e monotonia di FF). Quindi P(X≤x)=P(U≤F(x))=F(x)P(X\le x)=P(U\le F(x))=F(x). ■\blacksquare

Esempi: esponenziale F(x)=1−e−λxF(x)=1-e^{-\lambda x}, X=−ln⁡(1−U)/λX=-\ln(1-U)/\lambda (o −ln⁡U/λ-\ln U/\lambda, perché 1−U1-U ha la stessa legge di UU). Densità f(x)=3x2f(x)=3x^2 su [0,1][0,1]: F=x3F=x^3, X=U1/3X=U^{1/3} (media 34\tfrac34: la simulazione dà 0,75060{,}7506). Pareto di esponente 33: F=1−x−3F=1-x^{-3} per x≥1x\ge1, X=(1−U)−1/3X=(1-U)^{-1/3} (media 1,51{,}5). Discrete: si calcolano le somme cumulative F(1)<F(2)<…F(1)<F(2)<\dots e si restituisce il primo kk con F(k)≥UF(k)\ge U; per la geometrica X=⌈ln⁡U/ln⁡(1−p)⌉X=\lceil\ln U/\ln(1-p)\rceil (Distribuzione geometricaGeo(p) è il numero della prova in cui arriva il primo successo in prove indipendenti: P(X = n) = (1−p)^(n−1) p per n ≥ 1, P(X > n) = (1−p)^n (lunga attesa), media 1/p, varianza (1−p)/p², ed è senza memoria.Distribuzione geometrica →).

Accettazione-rifiuto

Quando F−1F^{-1} non è calcolabile (per esempio la normale, Distribuzione gaussiana (normale)N(μ, σ²) ha densità e^(−(x−μ)²/(2σ²)) / √(2πσ²), a campana centrata in μ con larghezza σ; media μ, varianza σ²; si standardizza con Z = (X − μ)/σ ~ N(0, 1) e si calcola P(X ≤ x) = Φ((x − μ)/σ), con Φ(−z) = 1 − Φ(z); aX + b è ancora gaussiana, N(aμ + b, a²σ²).Distribuzione gaussiana (normale) →) si usa una densità gg facile da campionare tale che f(x)≤M g(x)f(x)\le M\,g(x) per ogni xx con una costante M≥1M\ge1.

Algoritmo. Ripeti: estrai Y∼gY\sim g e U∼U(0,1)U\sim\text{U}(0,1) indipendenti; se U≤f(Y)M g(Y)U\le\dfrac{f(Y)}{M\,g(Y)} restituisci YY, altrimenti riprova.

Teorema. Il valore restituito ha densità ff; la probabilità di accettare a ogni tentativo è 1M\tfrac1M, quindi il numero di tentativi è geometrico di media MM.

Dimostrazione. A ogni tentativo, per Y=yY=y la probabilità di accettazione è f(y)Mg(y)\frac{f(y)}{Mg(y)}. Quindi P(Y∈dy,accetta)=g(y)f(y)Mg(y)dy=f(y)MdyP(Y\in dy,\text{accetta})=g(y)\dfrac{f(y)}{Mg(y)}dy=\dfrac{f(y)}M dy. Integrando su yy: P(accetta)=1MP(\text{accetta})=\dfrac1M (ff ha integrale 11). Dato "accetta", la densità di YY è f(y)/M1/M=f(y)\dfrac{f(y)/M}{1/M}=f(y). ■\blacksquare

Esempio (Beta(2,2)\text{Beta}(2,2)). f(x)=6x(1−x)f(x)=6x(1-x) su [0,1][0,1] con gg uniforme: il massimo di ff è f(12)=1,5f(\tfrac12)=1{,}5, quindi M=1,5M=1{,}5: si accetta con probabilità 6y(1−y)/1,56y(1-y)/1{,}5 e servono in media 1,51{,}5 tentativi (simulazione: 1,5031{,}503; media 0,50100{,}5010, varianza 0,05000{,}0500 contro 12\tfrac12 e 120\tfrac1{20}).

Esempio (normale). Per la parte positiva ∣Z∣|Z| (f(x)=2/π e−x2/2f(x)=\sqrt{2/\pi}\,e^{-x^2/2} per x≥0x\ge0) si usa g(x)=e−xg(x)=e^{-x}: fg=2/π ex−x2/2\dfrac fg=\sqrt{2/\pi}\,e^{x-x^2/2} ha massimo in x=1x=1, M=2/π e1/2=1,3155M=\sqrt{2/\pi}\,e^{1/2}=1{,}3155, accettazione 1M=0,760\tfrac1M=0{,}760. Il test diventa U≤e−(Y−1)2/2U\le e^{-(Y-1)^2/2}. Si assegna poi un segno ±\pm a caso. Su 3⋅1053\cdot10^5 campioni: 1,3151{,}315 tentativi per campione, P(∣Z∣<1)=0,6834P(|Z|<1)=0{,}6834 (atteso 0,68270{,}6827).

Catene di Markov Monte Carlo (MCMC)

Come campionare da una distribuzione π\pi su un insieme enorme, nota solo a meno di una costante, π(x)=w(x)/Z\pi(x)=w(x)/Z con Z=∑xw(x)Z=\sum_xw(x) non calcolabile (configurazioni di un modello fisico, parametri di un modello bayesiano)? Si costruisce una catena di Markov (Catene di Markov - matrice di transizione, classificazione degli stati e distribuzione stazionariaUna catena di Markov a tempo discreto e stati finiti è descritta da una matrice stocastica P: P(X_{n+1}=j | X_n=i)=P_ij, la legge al tempo n è π_0 P^n. Gli stati si classificano in classi comunicanti (irriducibilità), periodo (aperiodicità) e ricorrenza/transitorietà. Una distribuzione stazionaria soddisfa πP=π; per catene finite irriducibili esiste ed è unica, vale π_i=1/h_ii (h_ii = tempo medio di primo ritorno), e se la catena è anche aperiodica P^n converge a una matrice con tutte le righe uguali a π. Le catene reversibili (π_i P_ij = π_j P_ji) hanno stazionaria immediata.Catene di Markov - matrice di transizione, classificazione degli stati e distribuzione stazionaria →) irriducibile e aperiodica con stazionaria π\pi: per il teorema fondamentale, dopo molti passi XnX_n ha legge vicina a π\pi.

Algoritmo (Metropolis-Hastings). Sia Q(x,y)Q(x,y) una proposta (una matrice stocastica che si sa campionare). Da xx: si propone y∼Q(x,⋅)y\sim Q(x,\cdot) e si accetta con probabilità a(x,y)=min⁡(1, π(y) Q(y,x)π(x) Q(x,y))=min⁡(1, w(y) Q(y,x)w(x) Q(x,y)),a(x,y)=\min\Bigl(1,\ \frac{\pi(y)\,Q(y,x)}{\pi(x)\,Q(x,y)}\Bigr)=\min\Bigl(1,\ \frac{w(y)\,Q(y,x)}{w(x)\,Q(x,y)}\Bigr), altrimenti si resta in xx. La costante ZZ si semplifica. Se QQ è simmetrica (Q(x,y)=Q(y,x)Q(x,y)=Q(y,x)) è l'algoritmo di Metropolis: a=min⁡(1,w(y)/w(x))a=\min(1,w(y)/w(x)).

Teorema. La catena P(x,y)=Q(x,y) a(x,y)P(x,y)=Q(x,y)\,a(x,y) per y≠xy\ne x (e P(x,x)=1−∑y≠xP(x,y)P(x,x)=1-\sum_{y\ne x}P(x,y)) soddisfa il bilancio dettagliato π(x)P(x,y)=π(y)P(y,x)\pi(x)P(x,y)=\pi(y)P(y,x), quindi π\pi è stazionaria.

Dimostrazione. Per x≠yx\ne y, π(x)P(x,y)=π(x)Q(x,y)min⁡(1,π(y)Q(y,x)π(x)Q(x,y))=min⁡(π(x)Q(x,y), π(y)Q(y,x))\pi(x)P(x,y)=\pi(x)Q(x,y)\min\bigl(1,\tfrac{\pi(y)Q(y,x)}{\pi(x)Q(x,y)}\bigr)=\min\bigl(\pi(x)Q(x,y),\ \pi(y)Q(y,x)\bigr), che è simmetrico in (x,y)(x,y). Quindi vale anche π(y)P(y,x)\pi(y)P(y,x) (Catene di Markov - matrice di transizione, classificazione degli stati e distribuzione stazionariaUna catena di Markov a tempo discreto e stati finiti è descritta da una matrice stocastica P: P(X_{n+1}=j | X_n=i)=P_ij, la legge al tempo n è π_0 P^n. Gli stati si classificano in classi comunicanti (irriducibilità), periodo (aperiodicità) e ricorrenza/transitorietà. Una distribuzione stazionaria soddisfa πP=π; per catene finite irriducibili esiste ed è unica, vale π_i=1/h_ii (h_ii = tempo medio di primo ritorno), e se la catena è anche aperiodica P^n converge a una matrice con tutte le righe uguali a π. Le catene reversibili (π_i P_ij = π_j P_ji) hanno stazionaria immediata.Catene di Markov - matrice di transizione, classificazione degli stati e distribuzione stazionaria →). ■\blacksquare

Perché converga a π\pi occorre anche che la catena sia irriducibile e aperiodica (basta che QQ colleghi tra loro tutti gli stati con π>0\pi>0 e che ci siano rifiuti, cioè cappi).

Esempio (cinque stati). Stati 1,…,51,\dots,5, w=(1,2,3,4,5)w=(1,2,3,4,5), quindi π=(115,215,315,415,515)\pi=(\tfrac1{15},\tfrac2{15},\tfrac3{15},\tfrac4{15},\tfrac5{15}) (qui Z=15Z=15 si conosce, ma non serve). Proposta simmetrica: ±1\pm1 con probabilità 12\tfrac12 ciascuno, e se esce dai bordi il passo è rifiutato. Probabilità di accettazione: da xx a x+1x+1 vale 11 (si sale verso pesi più alti), da xx a x−1x-1 vale x−1x\tfrac{x-1}{x} (ww scende). La matrice è P=(12120001414120001316120003818120002535).P=\begin{pmatrix}\tfrac12&\tfrac12&0&0&0\\\tfrac14&\tfrac14&\tfrac12&0&0\\0&\tfrac13&\tfrac16&\tfrac12&0\\0&0&\tfrac38&\tfrac18&\tfrac12\\0&0&0&\tfrac25&\tfrac35\end{pmatrix}. Per esempio da 33 a 22: 12⋅23=13\tfrac12\cdot\tfrac23=\tfrac13; da 44 a 33: 12⋅34=38\tfrac12\cdot\tfrac34=\tfrac38; il resto va sul cappio (P33=1−13−12=16P_{33}=1-\tfrac13-\tfrac12=\tfrac16). Bilancio dettagliato, per esempio tra 22 e 33: π2P23=215⋅12=115\pi_2P_{23}=\tfrac2{15}\cdot\tfrac12=\tfrac1{15} e π3P32=315⋅13=115\pi_3P_{32}=\tfrac3{15}\cdot\tfrac13=\tfrac1{15} ✓. Gli autovalori sono 1; 0,801; 0,412; −0,062; −0,5091;\ 0{,}801;\ 0{,}412;\ -0{,}062;\ -0{,}509: la convergenza decade come 0,801n0{,}801^n. Partendo da 11, la distanza di variazione totale da π\pi vale 0,8000{,}800 (n=1n=1), 0,3220{,}322 (n=5n=5), 0,1090{,}109 (n=10n=10), 0,01190{,}0119 (n=20n=20), 1,4⋅10−41{,}4\cdot10^{-4} (n=40n=40). La simulazione di 2⋅1052\cdot10^5 passi del codice sotto dà frequenze (0,0678; 0,1349; 0,2023; 0,2667; 0,3283)(0{,}0678;\ 0{,}1349;\ 0{,}2023;\ 0{,}2667;\ 0{,}3283) contro π=(0,0667; 0,1333; 0,2; 0,2667; 0,3333)\pi=(0{,}0667;\ 0{,}1333;\ 0{,}2;\ 0{,}2667;\ 0{,}3333) e media 3,6533{,}653 contro 113=3,667\tfrac{11}3=3{,}667: i passi consecutivi sono correlati, quindi l'errore è più grande di quello di 2⋅1052\cdot10^5 campioni indipendenti.

Uso in pratica. Si scartano i primi passi (burn-in) e si media lungo la catena (teorema ergodico). I campioni consecutivi sono correlati: il numero di campioni equivalenti indipendenti è circa NN diviso per il tempo di autocorrelazione, legato al gap spettrale 1−∣λ2∣1-|\lambda_2|. La proposta incide molto: passi troppo piccoli esplorano lentamente, troppo grandi vengono rifiutati quasi sempre.

Codice

python
import random, math
rng = random.Random(1)

# 1) hit-or-miss per pi
N = 10**6
print(4 * sum(rng.random()**2 + rng.random()**2 < 1 for _ in range(N)) / N)

# 2) trasformazione inversa: f(x) = 3 x^2 su [0,1] -> U^(1/3)
xs = [rng.random() ** (1 / 3) for _ in range(10**5)]
print(sum(xs) / len(xs))                         # circa 0.75

# 3) accettazione-rifiuto per Beta(2,2), M = 1.5
def beta22():
    while True:
        y = rng.random()
        if rng.random() <= 6 * y * (1 - y) / 1.5: return y
print(sum(beta22() for _ in range(10**5)) / 10**5)   # circa 0.5

# 4) Metropolis su {1..5} con peso w(x) = x
w = lambda x: x
x, cont = 1, [0] * 6
for _ in range(200000):
    y = x + rng.choice((-1, 1))
    if 1 <= y <= 5 and rng.random() < min(1, w(y) / w(x)): x = y
    cont[x] += 1
print([round(c / 200000, 4) for c in cont[1:]])   # circa [0.0667, 0.1333, 0.2, 0.2667, 0.3333]

Domande d'esame

  1. Quanti campioni servono per stimare con Hoeffding una probabilità con errore 0,010{,}01 e confidenza 95%95\%? N≥ln⁡(2/0,05)2⋅0,012=3,6890,0002=18 444N\ge\dfrac{\ln(2/0{,}05)}{2\cdot0{,}01^2}=\dfrac{3{,}689}{0{,}0002}=18\,444.
  2. Dimostra che la trasformazione inversa genera la legge FF e che l'accettazione-rifiuto genera la densità ff. F−1(u)≤x  ⟺  u≤F(x)F^{-1}(u)\le x\iff u\le F(x); P(accetta)=1/MP(\text{accetta})=1/M, densità condizionata ff.
  3. Perché l'algoritmo di Karp-Luby è efficiente e quello ingenuo no? In Karp-Luby E[Y]≥1/mE[Y]\ge1/m per ogni formula; nell'ingenuo la probabilità di successo può essere 2−Ω(n)2^{-\Omega(n)}.
  4. Dimostra che Metropolis-Hastings ha stazionaria π\pi e fai vedere perché ZZ non serve. Bilancio dettagliato min⁡(π(x)Q(x,y),π(y)Q(y,x))\min(\pi(x)Q(x,y),\pi(y)Q(y,x)); aa dipende solo dal rapporto w(y)/w(x)w(y)/w(x).

Versione ripasso

Esercizi su questo argomento

Teoria collegata