Codice
0.50 | 0.50 | 0.00 | 0.00 | 0.00 | 0.00 |
0.25 | 0.50 | 0.25 | 0.00 | 0.00 | 0.00 |
0.00 | 0.25 | 0.50 | 0.25 | 0.00 | 0.00 |
0.00 | 0.00 | 0.25 | 0.50 | 0.25 | 0.00 |
0.00 | 0.00 | 0.00 | 0.25 | 0.50 | 0.25 |
0.00 | 0.00 | 0.00 | 0.00 | 0.50 | 0.50 |
Per introdurre il concetto di catena di Markov, supponiamo che una persona esegua una passeggiata casuale sulla retta dei numeri naturali considerando solo i valori 1, 2, 3, 4, 5, 6.1 Se la persona è collocata su un valore interno dei valori possibili (ovvero, 2, 3, 4 o 5), nel passo successivo è altrettanto probabile che rimanga su quel numero o si sposti su un numero adiacente. Se si muove, è ugualmente probabile che si muova a sinistra o a destra. Se la persona si trova su uno dei valori estremi (ovvero, 1 o 6), nel passo successivo è altrettanto probabile che rimanga rimanga su quel numero o si sposti nella posizione adiacente.
Questo è un esempio di una catena di Markov discreta. Una catena di Markov descrive il movimento probabilistico tra un numero di stati. Nell’esempio ci sono sei possibili stati, da 1 a 6, i quali corrispondono alle possibili posizioni della passeggiata casuale. Data la sua posizione corrente, la persona si sposterà nelle altre posizioni possibili con delle specifiche probabilità. La probabilità che si sposti in un’altra posizione dipende solo dalla sua posizione attuale e non dalle posizioni visitate in precedenza.
È possibile descrivere il movimento tra gli stati nei termini delle cosiddette probabilità di transizione, ovvero le probabilità di movimento tra tutti i possibili stati in un unico passaggio di una catena di Markov. Le probabilità di transizione sono riassunte in una matrice di transizione
0.50 | 0.50 | 0.00 | 0.00 | 0.00 | 0.00 |
0.25 | 0.50 | 0.25 | 0.00 | 0.00 | 0.00 |
0.00 | 0.25 | 0.50 | 0.25 | 0.00 | 0.00 |
0.00 | 0.00 | 0.25 | 0.50 | 0.25 | 0.00 |
0.00 | 0.00 | 0.00 | 0.25 | 0.50 | 0.25 |
0.00 | 0.00 | 0.00 | 0.00 | 0.50 | 0.50 |
La prima riga della matrice di transizione
Si notino alcune importanti proprietà di questa particolare catena di Markov.
Un’importante proprietà di una catena di Markov irriducibile e aperiodica è che il passaggio ad uno stato del sistema dipende unicamente dallo stato immediatamente precedente e non dal come si è giunti a tale stato (dalla storia). Per questo motivo si dice che un processo markoviano è senza memoria. Tale “assenza di memoria” può essere interpretata come la proprietà mediante cui è possibile ottenere un insieme di campioni casuali da una distribuzione di interesse. Nel caso dell’inferenza bayesiana, la distribuzione di interesse è la distribuzione a posteriori,
La matrice di transizione che si ottiene dopo un enorme numero di passi di una passeggiata casuale markoviana si chiama distribuzione stazionaria. Se una catena di Markov è irriducibile e aperiodica, allora ha un’unica distribuzione stazionaria
Un metodo per dimostrare l’esistenza della distribuzione stazionaria di una catena di Markov è quello di eseguire un esperimento di simulazione. Iniziamo una passeggiata casuale partendo da un particolare stato, diciamo la posizione 3, e quindi simuliamo molti passaggi della catena di Markov usando la matrice di transizione
Senza entrare nei dettagli della simulazione, la Figura E.1 mostra i risultati ottenuti in 10,000 passi di una passeggiata casuale markoviana. Si noti che, all’aumentare del numero di iterazioni, le frequenze relative approssimano sempre meglio le probabilità nella distribuzione stazionaria
set.seed(123)
s <- vector("numeric", 10000)
s[1] <- 3
for (j in 2:10000) {
s[j] <- sample(1:6, size = 1, prob = P[s[j - 1], ])
}
S <- data.frame(
Iterazione = 1:10000,
Location = s
)
S %>%
mutate(
L1 = (Location == 1),
L2 = (Location == 2),
L3 = (Location == 3),
L4 = (Location == 4),
L5 = (Location == 5),
L6 = (Location == 6)
) %>%
mutate(
Proporzione_1 = cumsum(L1) / Iterazione,
Proporzione_2 = cumsum(L2) / Iterazione,
Proporzione_3 = cumsum(L3) / Iterazione,
Proporzione_4 = cumsum(L4) / Iterazione,
Proporzione_5 = cumsum(L5) / Iterazione,
Proporzione_6 = cumsum(L6) / Iterazione
) %>%
dplyr::select(
Iterazione, Proporzione_1, Proporzione_2, Proporzione_3,
Proporzione_4, Proporzione_5, Proporzione_6
) -> S1
gather(S1, Outcome, Probability, -Iterazione) -> S2
ggplot(S2, aes(Iterazione, Probability)) +
geom_line() +
facet_wrap(~Outcome, ncol = 3) +
ylim(0, .4) +
ylab("Frequenza relativa") +
# theme(text=element_text(size=14)) +
scale_x_continuous(breaks = c(0, 3000, 6000, 9000))
Il metodo di campionamento utilizzato dagli algoritmi MCMC consente di creare una catena di Markov irriducibile e aperiodica, la cui distribuzione stazionaria equivale alla distribuzione a posteriori
Seguiamo qui la presentazione fornita da Bob Carpenter.↩︎