Salta al contenuto
Note per Studenti Esercizio - Metropolis-Hastings su tre stati con proposta asimmetrica

Esercizio - Metropolis-Hastings su tre stati con proposta asimmetrica

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 →; 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 →.

Testo. Si vuole campionare dalla distribuzione π∝w=(1,3,2)\pi\propto w=(1,3,2) sugli stati 1,2,31,2,3 (quindi π=(16,12,13)\pi=(\tfrac16,\tfrac12,\tfrac13)). La proposta QQ è asimmetrica: da 11 si propone sempre 22, da 22 si propone 11 o 33 con probabilità 12\tfrac12, da 33 si propone sempre 22.

  1. Calcolare le probabilità di accettazione di Metropolis-Hastings e la matrice PP della catena.
  2. Verificare il bilancio dettagliato e che πP=π\pi P=\pi.
  3. Cosa si ottiene se per errore si usa la regola simmetrica a=min⁡(1,w(y)/w(x))a=\min(1,w(y)/w(x)) senza il fattore Q(y,x)/Q(x,y)Q(y,x)/Q(x,y)?
  4. Distanza di variazione totale da π\pi dopo nn passi partendo da 11, per n=1,2,3,5,10,15,20n=1,2,3,5,10,15,20; autovalori; quanti passi per portare la distanza sotto 0,010{,}01?
  5. Stimare Eπ[X]E_\pi[X] con la media lungo la catena.

Soluzione

1. La regola di Metropolis-Hastings è a(x,y)=min⁡(1,w(y) Q(y,x)w(x) Q(x,y))a(x,y)=\min\Bigl(1,\dfrac{w(y)\,Q(y,x)}{w(x)\,Q(x,y)}\Bigr).

  • a(1,2)=min⁡(1,3⋅Q(2,1)1⋅Q(1,2))=min⁡(1,3⋅1/21⋅1)=min⁡(1,1,5)=1a(1,2)=\min\bigl(1,\tfrac{3\cdot Q(2,1)}{1\cdot Q(1,2)}\bigr)=\min\bigl(1,\tfrac{3\cdot1/2}{1\cdot1}\bigr)=\min(1,1{,}5)=1.
  • a(2,1)=min⁡(1,1⋅Q(1,2)3⋅Q(2,1))=min⁡(1,13⋅1/2)=23a(2,1)=\min\bigl(1,\tfrac{1\cdot Q(1,2)}{3\cdot Q(2,1)}\bigr)=\min\bigl(1,\tfrac{1}{3\cdot1/2}\bigr)=\tfrac23.
  • a(2,3)=min⁡(1,2⋅Q(3,2)3⋅Q(2,3))=min⁡(1,2⋅13⋅1/2)=min⁡(1,43)=1a(2,3)=\min\bigl(1,\tfrac{2\cdot Q(3,2)}{3\cdot Q(2,3)}\bigr)=\min\bigl(1,\tfrac{2\cdot1}{3\cdot1/2}\bigr)=\min(1,\tfrac43)=1.
  • a(3,2)=min⁡(1,3⋅Q(2,3)2⋅Q(3,2))=min⁡(1,3⋅1/22⋅1)=34a(3,2)=\min\bigl(1,\tfrac{3\cdot Q(2,3)}{2\cdot Q(3,2)}\bigr)=\min\bigl(1,\tfrac{3\cdot1/2}{2\cdot1}\bigr)=\tfrac34.

Le probabilità di transizione sono P(x,y)=Q(x,y)a(x,y)P(x,y)=Q(x,y)a(x,y) per y≠xy\ne x, e il resto va sul cappio: P=(01013161203414).P=\begin{pmatrix}0&1&0\\\tfrac13&\tfrac16&\tfrac12\\0&\tfrac34&\tfrac14\end{pmatrix}. Per esempio P(2,1)=12⋅23=13P(2,1)=\tfrac12\cdot\tfrac23=\tfrac13, P(2,3)=12⋅1=12P(2,3)=\tfrac12\cdot1=\tfrac12, P(2,2)=1−13−12=16P(2,2)=1-\tfrac13-\tfrac12=\tfrac16, P(3,2)=1⋅34P(3,2)=1\cdot\tfrac34, P(3,3)=14P(3,3)=\tfrac14.

2. Bilancio dettagliato: π1P12=16⋅1=16\pi_1P_{12}=\tfrac16\cdot1=\tfrac16 e π2P21=12⋅13=16\pi_2P_{21}=\tfrac12\cdot\tfrac13=\tfrac16 ✓; π2P23=12⋅12=14\pi_2P_{23}=\tfrac12\cdot\tfrac12=\tfrac14 e π3P32=13⋅34=14\pi_3P_{32}=\tfrac13\cdot\tfrac34=\tfrac14 ✓; π1P13=0=π3P31\pi_1P_{13}=0=\pi_3P_{31} ✓. Quindi πP=π\pi P=\pi: per esempio la componente 33 di πP\pi P è 12⋅12+13⋅14=14+112=13\tfrac12\cdot\tfrac12+\tfrac13\cdot\tfrac14=\tfrac14+\tfrac1{12}=\tfrac13 ✓. La catena è irriducibile (si va 1↔2↔31\leftrightarrow2\leftrightarrow3) e aperiodica (cappi in 22 e 33): converge a π\pi da ogni stato.

3. Con a′(x,y)=min⁡(1,w(y)/w(x))a'(x,y)=\min(1,w(y)/w(x)): a′(1,2)=1a'(1,2)=1, a′(2,1)=13a'(2,1)=\tfrac13, a′(2,3)=23a'(2,3)=\tfrac23, a′(3,2)=1a'(3,2)=1. Allora P′(2,1)=12⋅13=16P'(2,1)=\tfrac12\cdot\tfrac13=\tfrac16, P′(2,3)=12⋅23=13P'(2,3)=\tfrac12\cdot\tfrac23=\tfrac13, P′(2,2)=12P'(2,2)=\tfrac12, P′(3,2)=1P'(3,2)=1, P′(3,3)=0P'(3,3)=0. Anche P′P' è una catena nascita-morte e la sua stazionaria π′\pi' si trova dal bilancio dettagliato: π1′⋅1=π2′⋅16\pi'_1\cdot1=\pi'_2\cdot\tfrac16 e π2′⋅13=π3′⋅1\pi'_2\cdot\tfrac13=\pi'_3\cdot1 danno π1′=16π2′\pi'_1=\tfrac16\pi'_2, π3′=13π2′\pi'_3=\tfrac13\pi'_2, somma 32π2′=1\tfrac32\pi'_2=1, quindi π′=(19,23,29)≠(16,12,13)\pi'=(\tfrac19,\tfrac23,\tfrac29)\ne(\tfrac16,\tfrac12,\tfrac13). L'effetto della proposta non viene compensato e la media di XX risulta sbagliata (1+12+69=2,111\tfrac{1+12+6}{9}=2{,}111 invece di 2,1672{,}167). Il fattore Q(y,x)/Q(x,y)Q(y,x)/Q(x,y) serve a compensare le asimmetrie della proposta.

4. Gli autovalori di PP sono 11, 0,11870{,}1187 e −0,7020-0{,}7020. Il secondo in modulo è 0,7020{,}702: l'errore decade come 0,702n0{,}702^n (con oscillazione di segno, perché è negativo). Partendo da 11:

nn 1 2 3 5 10 15 20
legge di XnX_n (0,1,0)(0,1,0) (0,333;0,167;0,5)(0{,}333;0{,}167;0{,}5) (0,056;0,736;0,208)(0{,}056;0{,}736;0{,}208) (0,112;0,616;0,272)(0{,}112;0{,}616;0{,}272) (0,176;0,480;0,344)(0{,}176;0{,}480;0{,}344) (0,165;0,503;0,332)(0{,}165;0{,}503;0{,}332) (0,1669;0,4994;0,3336)(0{,}1669;0{,}4994;0{,}3336)
distanza TV da π\pi 0,50{,}5 0,3330{,}333 0,2360{,}236 0,1160{,}116 0,01980{,}0198 0,00340{,}0034 0,000580{,}00058

La distanza scende sotto 0,010{,}01 tra n=10n=10 (0,01980{,}0198) e n=15n=15 (0,00340{,}0034): il primo nn con distanza <0,01<0{,}01 è 1212 (0,01390{,}0139 a n=11n=11, 0,00980{,}0098 a n=12n=12). Per un uso pratico si scartano i primi ≈12\approx12–2020 passi (burn-in).

5. Per XX in {1,2,3}\{1,2,3\}: Eπ[X]=16+2⋅12+3⋅13=136=2,1667E_\pi[X]=\tfrac16+2\cdot\tfrac12+3\cdot\tfrac13=\tfrac{13}6=2{,}1667. Simulando la catena MH per 3⋅1053\cdot10^5 passi (codice sotto) si ottengono le frequenze (0,1658; 0,4993; 0,3349)(0{,}1658;\ 0{,}4993;\ 0{,}3349) e la media 2,1692{,}169, in accordo.

Codice di verifica

python
import numpy as np
w = np.array([1., 3., 2.]); pi = w / w.sum()
Q = np.array([[0, 1, 0], [.5, 0, .5], [0, 1, 0]])

def matrice(regola):
    P = np.zeros((3, 3))
    for x in range(3):
        for y in range(3):
            if x != y and Q[x, y] > 0: P[x, y] = Q[x, y] * regola(x, y)
        P[x, x] = 1 - P[x].sum()
    return P

mh = lambda x, y: min(1, w[y] * Q[y, x] / (w[x] * Q[x, y]))
sbagliata = lambda x, y: min(1, w[y] / w[x])
P, Ps = matrice(mh), matrice(sbagliata)
print(P, "\npi P == pi:", np.allclose(pi @ P, pi), " autovalori:", np.sort(np.linalg.eigvals(P).real))
v = np.linalg.eig(Ps.T)[1][:, np.argmax(np.linalg.eig(Ps.T)[0].real)].real
print("stazionaria della regola sbagliata:", v / v.sum())
x0 = np.array([1., 0, 0])
for n in (1, 2, 3, 5, 10, 12, 15, 20):
    d = x0 @ np.linalg.matrix_power(P, n)
    print(n, np.round(d, 4), "TV =", round(0.5 * np.abs(d - pi).sum(), 5))

rng = np.random.default_rng(1); x, cont = 0, np.zeros(3)
for _ in range(300_000):
    y = rng.choice(3, p=Q[x])
    if rng.random() < mh(x, y): x = y
    cont[x] += 1
print(cont / 300_000, (cont / 300_000) @ [1, 2, 3], pi @ [1, 2, 3])

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 →; 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 →.

  • Target π∝(1,3,2)=(16,12,13)\pi\propto(1,3,2)=(\tfrac16,\tfrac12,\tfrac13); Q(1,2)=1Q(1,2)=1, Q(2,1)=Q(2,3)=12Q(2,1)=Q(2,3)=\tfrac12, Q(3,2)=1Q(3,2)=1. a(x,y)=min⁡(1,w(y)Q(y,x)w(x)Q(x,y))a(x,y)=\min\bigl(1,\frac{w(y)Q(y,x)}{w(x)Q(x,y)}\bigr): a(1,2)=1a(1,2)=1, a(2,1)=23a(2,1)=\tfrac23, a(2,3)=1a(2,3)=1, a(3,2)=34a(3,2)=\tfrac34.
  • Matrice P=(01013161203414)P=\begin{pmatrix}0&1&0\\\tfrac13&\tfrac16&\tfrac12\\0&\tfrac34&\tfrac14\end{pmatrix}; bilancio dettagliato π1P12=π2P21=16\pi_1P_{12}=\pi_2P_{21}=\tfrac16, π2P23=π3P32=14\pi_2P_{23}=\pi_3P_{32}=\tfrac14; irriducibile e aperiodica.
  • Regola senza il fattore QQ: stazionaria sbagliata (19,23,29)(\tfrac19,\tfrac23,\tfrac29), E[X]=2,111E[X]=2{,}111 invece di 136=2,167\tfrac{13}6=2{,}167.
  • Convergenza: autovalori 1; 0,1187; −0,70201;\,0{,}1187;\,-0{,}7020; TV da π\pi partendo da 11: 0,5; 0,333; 0,236; 0,116; 0,0198; 0,00340{,}5;\,0{,}333;\,0{,}236;\,0{,}116;\,0{,}0198;\,0{,}0034 per n=1,2,3,5,10,15n=1,2,3,5,10,15; sotto 0,010{,}01 da n=12n=12.
  • Media ergodica: 2,1692{,}169 su 3⋅1053\cdot10^5 passi.
  • Errori tipici: dimenticare Q(y,x)/Q(x,y)Q(y,x)/Q(x,y); usare aa come probabilità di transizione (manca il fattore QQ); trascurare il burn-in.

Teoria collegata