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 sugli stati (quindi ). La proposta è asimmetrica: da si propone sempre , da si propone o con probabilità , da si propone sempre .
- Calcolare le probabilità di accettazione di Metropolis-Hastings e la matrice della catena.
- Verificare il bilancio dettagliato e che .
- Cosa si ottiene se per errore si usa la regola simmetrica senza il fattore ?
- Distanza di variazione totale da dopo passi partendo da , per ; autovalori; quanti passi per portare la distanza sotto ?
- Stimare con la media lungo la catena.
Soluzione
1. La regola di Metropolis-Hastings è .
- .
- .
- .
- .
Le probabilità di transizione sono per , e il resto va sul cappio: Per esempio , , , , .
2. Bilancio dettagliato: e ✓; e ✓; ✓. Quindi : per esempio la componente di è ✓. La catena è irriducibile (si va ) e aperiodica (cappi in e ): converge a da ogni stato.
3. Con : , , , . Allora , , , , . Anche è una catena nascita-morte e la sua stazionaria si trova dal bilancio dettagliato: e danno , , somma , quindi . L'effetto della proposta non viene compensato e la media di risulta sbagliata ( invece di ). Il fattore serve a compensare le asimmetrie della proposta.
4. Gli autovalori di sono , e . Il secondo in modulo è : l'errore decade come (con oscillazione di segno, perché è negativo). Partendo da :
| 1 | 2 | 3 | 5 | 10 | 15 | 20 | |
|---|---|---|---|---|---|---|---|
| legge di | |||||||
| distanza TV da |
La distanza scende sotto tra () e (): il primo con distanza è ( a , a ). Per un uso pratico si scartano i primi – passi (burn-in).
5. Per in : . Simulando la catena MH per passi (codice sotto) si ottengono le frequenze e la media , in accordo.
Codice di verifica
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 ; , , . : , , , .
- Matrice ; bilancio dettagliato , ; irriducibile e aperiodica.
- Regola senza il fattore : stazionaria sbagliata , invece di .
- Convergenza: autovalori ; TV da partendo da : per ; sotto da .
- Media ergodica: su passi.
- Errori tipici: dimenticare ; usare come probabilità di transizione (manca il fattore ); trascurare il burn-in.