Was ist die Verbindung zwischen Markov-Kette und Markov-Kette Monte Carlo

15

Ich versuche Markov-Ketten mit SAS zu verstehen. Ich verstehe, dass ein Markov-Prozess ein Prozess ist, bei dem der zukünftige Zustand nur vom aktuellen und nicht vom vergangenen Zustand abhängt und es eine Übergangsmatrix gibt, die die Übergangswahrscheinlichkeit von einem Zustand in einen anderen erfasst.

Aber dann bin ich auf diesen Begriff gestoßen: Markov Chain Monte Carlo. Ich möchte wissen, ob Markov Chain Monte Carlo in irgendeiner Weise mit dem oben beschriebenen Markov-Prozess zusammenhängt.

Sieger
quelle

Antworten:

9

Nun ja, es gibt eine Beziehung zwischen den beiden Begriffen, da die Draws von MCMC eine Markov-Kette bilden. Aus Gelman, Bayesian Data Analysis (3. Aufl.), P. 265

Die Markov-Kettensimulation (auch Markov-Ketten-Monte-Carlo oder MCMC genannt) ist eine allgemeine Methode, die darauf basiert, Werte von aus geeigneten Verteilungen zu ziehen und diese Zeichnungen dann zu korrigieren, um die hintere Zielverteilung p ( θ | y ) besser zu approximieren . Die Abtastung erfolgt nacheinander, wobei die Verteilung der abgetasteten Ziehungen vom zuletzt gezogenen Wert abhängt. Daher bilden die Draws eine Markov-Kette.θp(θ|y)

Sycorax sagt Reinstate Monica
quelle
Umm ok, aber warum muss ich zufällige Stichproben aus einem Markov-Prozess ziehen, es gibt so viele andere Arten von Prozessen wie normal, Bernoulli, Besitz usw.
Victor
2
@ Victor Ich glaube, Sie haben den Anwendungsfall von MCMC aus den Augen verloren . Wir verwenden MCMC in der Bayes'schen Statistik, wenn es keine analytische Form der posterioren Verteilung gibt.
Sycorax sagt Reinstate Monica
3
+1 Bayes'sche Statistik ist vielleicht die offensichtlichste Anwendung von MCMC (bei der die Zielverteilung eine gemeinsame posteriore ist), aber nicht die einzig mögliche.
Glen_b
18

Die Verbindung zwischen beiden Konzepten besteht darin, dass Markov-Ketten-Monte-Carlo-Methoden (auch bekannt als MCMC-Methoden) auf der Basis der Markov-Ketten-Theorie Simulationen und Monte-Carlo-Approximationen aus einer komplexen Zielverteilung erstellen .π

In der Praxis geben diese Simulationsmethoden eine Sequenz , die eine Markov-Kette ist, dh so, dass die Verteilung von X i in der gesamten Vergangenheit { X i - 1 , , X 1 } nur von X abhängt i - 1 . Mit anderen Worten, X i = f ( X i - 1 , ϵ i ) wobei fX1,,XNXi{Xi1,,X1}Xi1

Xi=f(Xi1,ϵi)
fπϵiXiπi

Das einfachste Beispiel eines MCMC - Algorithmus ist der Slice - Sampler : bei der Iteration i diesen Algorithmus tun

  1. ϵi1U(0,1)
  2. XiU({x;π(x)ϵi1π(Xi1)})ϵi2

N(0,1)

  1. ϵi1U(0,1)
  2. XiU({x;x22log(2πϵi1}), i.e., Xich=±ϵich2{-2Log(2πϵich1)φ(Xich-1)}1/2 mit ϵich2U(0,1)

oder in R

T=1e4
x=y=runif(T) #random initial value
for (t in 2:T){
  epsilon=runif(2)#uniform white noise 
  y[t]=epsilon[1]*dnorm(x[t-1])#vertical move       
  x[t]=sample(c(-1,1),1)*epsilon[2]*sqrt(-2*#Markov move from
        log(sqrt(2*pi)*y[t]))}#x[t-1] to x[t]

Hier ist eine Darstellung der Ausgabe mit der richtigen Anpassung an die N(0,1) Ziel und die Entwicklung der Markov-Kette (Xich). top: Histogram of 10⁴ iterations of the slice sampler and normal N(0,1) fit; bottom: sequence $(X_i)$

Und hier ist ein Zoom auf die Entwicklung der Markov-Kette (Xich,ϵich1π(Xich)) in den letzten 100 Iterationen, erhalten von

curve(dnorm,-3,3,lwd=2,col="sienna",ylab="")
for (t in (T-100):T){
lines(rep(x[t-1],2),c(y[t-1],y[t]),col="steelblue");
lines(x[(t-1):t],rep(y[t],2),col="steelblue")}

Dies folgt vertikalen und horizontalen Bewegungen der Markov-Kette unter der Zieldichtekurve.100 last moves of the slice sampler

Xi'an
quelle