Skip to Tutorial Content

Monte-Carlo-Integration

Sei \(f(x)>0\) eine beliebige stetige Funktion mit bekanntem Wertebereich \([0,Y]\). Dann kann \(\int_a^b f(x) dx\) wie folgt approximiert werden:

  • Ziehe \(n\) gleichverteilte Zufallszahlen \(x\) aus \([a,b]\)
  • Ziehe unabhängig davon \(n\) gleichverteilte Zufallszahlen \(y\) aus \([0,Y]\)
  • Berechne den Anteil \(h\) der Punkte \((x_i,y_i)\), die unterhalb der Funktion \(f\) liegen
  • \(\int_a^b f(x) dx \approx h(b-a)Y\)

Beispiel

Als Beispiel für die Monte Carlo-Integration approximieren wir \(\int_0^1 x^2 dx\).

Analytisch ergibt sich

\[ \int_0^1 x^2 dx = \left[\frac{1}{3}x^3\right]_0^1=\frac{1}{3} \]

Hier können Sie Punkte aus dem Einheitsintervall ziehen. Der Anteil der Punkte unterhalb (grün) der Funktion \(f(x)=x^2\) schätzt die Fläche und damit das Integral.

Anzahl Iterationen:

Approximiertes Integral:

Monte-Carlo-Schätzer

Ist \(p(x)\) eine Dichte, so können Integrale der Form

\[ E(g(x))=\int g(x)p(x) dx \]

mit einer Stichprobe \(x_1,\ldots,x_m\) aus \(p(x)\) durch den Stichprobenmittelwert

\[ \bar{g}_m=\frac{1}{m}\sum_{i=1}^mg\left(x_i\right) \]

approximiert werden. Aus dem starken Gesetz der grossen Zahlen folgt \[ \lim \frac{1}{m} \sum_{i=1}^m g(x_i)\to \int g(x)p(x)dx. \]

  • Das Gesetz der großen Zahlen gibt es auch für nicht unabhängige Zufallszahlen (Ergodensatz)

Varianz des Monte-Carlo-Schätzer

Die Varianz des Monte-Carlo-Schätzers \(\bar{g}_m\) ist gegeben durch

\[ Var(\bar{g}_m)=\frac{1}{m}\int\left(g(X)-E(g(x))\right)^2 p(x)dx=\frac{1}{m}Var(g). \]

Der Approximationsfehler verringert sich mit steigendem \(m\). Es folgt sogar aus dem zentralen Grenzwertsatz

\[ \sqrt{m}\left(g_m-E(g(x))\right)\sim N(0,Var(g)). \]

Schätzer für \(Var(\bar{g}_m)\) ist

\[ \widehat{Var(\bar{g}_m)}=\frac{1}{m-1}\sum_{i=1}^m \left(g(x_i)-\bar{g}_m\right)^2 \]

Sampling-Methoden

Um Zufallszahlen aus einer Verteilung zu ziehen, gibt es diverse Methoden.

Inversionsmethode

Gegeben sei die Verteilungsfunktion \(F(x)\) einer Zufallsvariablen \(X\). Sei \(u\sim U[0,1]\). Dann ist

\[ Y = F^{-1}(u) = \inf\{y:F(y)\geq u\} \sim X \]

Beispiel

Die Verteilungsfunktion der Exponentialverteilung ist

\[ F(x)=1-e^{-\lambda x} \]

Die Umkehrfunktion ist

\[ x =F^{-1}(y) = -\frac{1}{\lambda}\ln(1-y) \]

Als Test ziehen wir 10000 Mal aus einer Gleichverteilung auf [0,1]

y <- runif(10000)

und transformieren die gezogenen Zahlen:

lambda <- 2
x <- -log(1-y)/lambda

Ein Histogramm der gezogenen Daten zeigt fast die gleiche Form wie die wahre Dichte der Exponentialverteilung.

Acception-Rejection-Methode

Ziel: Wir wollen aus einer Dichtefunktion \(f(x)\) ziehen. Gegeben sei eine Dichtefunktion \(g(x)\), nach der wir problemlos Zufallszahlen ziehen können. Es existiere ein \(c\), so dass

\[ cg(z)\geq f(z) \]

für alle \(z\) mit \(f(z)>0\). Dann können Zufallszahlen gemäß \(f(x)\) wie folgt gezogen werden:

  • ziehe \(Z\) gemäß \(g(z)\)

  • akzeptiere \(Z\) mit Wahrscheinlichkeit \(\frac{f(z)}{g(z)c}\)

  • Wähle \(c\) möglichst klein.

  • Kann auch angewandt werden, falls die Normalisierungskonstante von \(f(x)\) nicht bekannt.

Squezed Acception-Rejection-Sampling

Gegeben sei eine untere Schranke \(s(z) \leq f(z)\).

Für \(u\) Ziehung aus \(U[0,1]\) akzeptiere \(Z\)

  • wenn \(u\leq \frac{s(z)}{cg(z)}\)
  • wenn \(u\leq \frac{f(z)}{cg(z)}\)

Der zweite Schritt kann ausgelassen werden, wenn bereits im ersten Schritt akzeptiert wurde.

Importance Sampling

  • Idee zum bestimmen des Erwartungswerts einer Verteilung mit Dichte \(f(\theta)\)
  • Ziehe aus einer Importance Dichte \(q\), die etwa der gewünschten Dichte entspricht.
  • Benutze dann folgenden Zusammenhang

\[ E(g(\theta))=\int \frac{g(\theta)f(\theta)}{q(\theta)} q(\theta) d\theta = E_q\left(\frac{g(\theta)f(\theta)}{q(\theta)}\right) \]

Mit Ziehungen \(\theta_1,\ldots,\theta_m\) gemäß \(q\) gilt

\[ \hat{g}_{IS}=\frac{1}{m}\sum_{i=1}^m g(\theta_i)\frac{f(\theta_i)}{q(\theta_i)} \]

wobei \(\frac{p(\theta_i|x)}{q(\theta_i)}\) die sogenannten Importancegewichte sind.

Die Berechnung des Importanceschätzers benötigt die normierte Dichte. Die Normierungskonstante kann zuvor ebenfalls mit Importance Sampling geschätzt werden.

Die Varianz des Schätzers ist

\[ Var(\hat{g}_{IS}) = \frac{1}{m}Var_q\left(\frac{g(\theta)p(\theta|x)}{q(\theta)}\right) \]

Markov Chain Monte Carlo

  • Idee: Erzeuge eine Markovkette, deren stationäre Verteilung die Posterioriverteilung ist
  • Ziehungen sind voneinander abhängig
  • Funktioniert für komplexe und hochdimensionale Probleme

Markoveigenschaft

Eine Kette von Zufallszahlen \(Y=\{Y_t,t\in \mathbb{N}_0\}\) mit abzählbarem Zustandsraum \(S\) heisst Markov-Kette, wenn

\[ P(Y_t=k|Y_0=j_0,Y_1=j_1,\ldots,Y_{t-1}=j_{t-1})= P(Y_t=k|Y_{t-1}=j_{t-1}) \]

für alle \(t \geq 0\) und für alle \(k,j_0,\ldots,j_{t-1} \in S\). Das heißt, wenn der nächste Schritt nur vom momentanen Zustand abhängt.

Definitionen

  • \(P(Y_t=k|Y_{t-1}=j)\) heisst Übergangswahrscheinlichkeit
  • die Markovkette ist homogen, wenn \(P(Y_t=k|Y_{t-1}=j)\) nicht von \(t\) abhängt. Dann ist

\[ p_{jk}=P(Y_t=k|Y_{t-1}=j)=P(Y_1=k|Y_0=j) \]

  • Die Matrix \(\mathbf{P}=(p_{jk})\) heisst Übergangsmatrix
  • Eine Markovkette heißt irreduzibel, falls für alle \(j,k\in S\) eine positive Zahl \(1\leq t \leq \infty\) existiert, so dass

\[ P(Y_t=k|Y_0=j)>0, \]

also jeder Zustand \(k\) von jedem Zustand \(j\) in endlicher Zeit erreicht werden kann * Die Periode eines Zustands \(k\) ist der größte gemeinsame Teiler der Zeitpunkte \(n\), zu denen eine Rückkehr möglich ist. Falls alle Zustände einer Markov-Kette die Periode 1 haben, ist die Kette aperiodisch.

Invariante Verteilung

  • Eine diskrete Wahrscheinlichkeitsverteilung \(\pi\) heisst invariante Verteilung der homogenen Markovkette \(Y_t\) bzw. ihrer Übergangsmatrix \(\mathbf{P}\), falls gilt

\[ \pi = \pi \mathbf{P} \]

Das heißt, wenn man \(m\)-mal mit der in der Übergangsmatrix \(\mathbf{P}\) vorgegebenen Wahrscheinlichkeiten \(p_{jk}\) jeweils vom Zustand \(j\) zum Zustand \(k\) wechselt, landet man beim Schritt \(m\) mit Wahrscheinlichkeit \(\pi_i\) im Zustand \(i\).

Beispiel:

Gegeben sei die Übergangsmatrix

\[ P=\left(\begin{array}{ccc} 0.1 & 0.7 & 0.2 \\ 0.1 & 0.5 & 0.4 \\ 0.1 & 0.45 & 0.45 \end{array} \right) \]

  • Das heißt, ist man im Zustand 1, springt man mit Wahrscheinlichkeit 0.7 in den Zustand 2, mit Wahrscheinlichkeit 0.2 in den Zustand 3 und mit Wahrscheinlichkeit 0.1 bleibt man im Zustand 1.
  • Man kann leicht nachrechnen, dass mit \(\pi=(0.1, 0.5, 0.4)\) gilt: \(\pi=\pi P\).
  • Erzeugen wir nun eine Markovkette mit diesen Übergangswahrscheinlichkeiten.
  • Wir starten im Zustand 1 (für viele Iterationen ist der Startzustand jedoch irrelevant).
  • Ist die Kette lang genug, dann sind die relativen Häufigkeiten der Zustände gleich der invarianten Verteilung \(\pi\).

Invariante Verteilung

  • Statt eines Startzustandes kann man sich auch eine Startverteilung \(\pi_0\) vorgeben (man startet zufällig in einem Zustand)

  • Eine Markovkette heisst ergodisch, wenn die Zustandsverteilung \(\pi_t\) von \(Y_t\) für jede beliebige Startverteilung \(\pi_0\) gegen die selbe Wahrscheinlichkeitsverteilung \(\pi\) konvergiert:

    \[ \lim_{t \to \infty} \pi_t = \lim_{t \to \infty}\pi_0 \mathbf{P}^t = \pi \]

    • Die Grenzverteilung einer ergodischen Markovkette ist die invariante Verteilung \(\pi\)
    • Eine homogene Markovkette mit Übergangsmatrix \(\mathbf{P}\) ist ergodisch, wenn sie irreduzibel und aperiodisch ist
    • Die Zustandsverteilung einer irreduziblen und aperiodischen, homogenen Markovkette kovergiert daher gegen die stationäre Verteilung \(\pi\)
    • Eine ergodische Markovkette wird asymptotisch stationär, d.h., der Einfluss der Startverteilung geht verloren

  • Hier haben wir nur diskrete Zustände, die Definitionen lassen sich auf stetige Zustände übertragen (statt von der Übergangsmatrix spricht man dann vom Übergangskern)
  • Beim MCMC-Algorithmus müssen wir also eine homogene, irreduzible und aperiodische Markovkette erzeugen.
  • Dies gewährleisten die bekannten MCMC-Methoden.

Metropolis-Hastings-Algorithmus

Im Metropolis-Hastings-Algorithmus wird der Übergangskern der Markovkette erzeugt, in dem ausgehen von \(\theta^{(k-1)}\) eine Ziehung aus einer Vorschlagsdichte \(q(\theta^{*}|\theta^{(k-1)})\) erfolgt.

Der Wert \(\theta^*\) wird mit Wahrscheinlichkeit

\[ \alpha=\min\left(1,\frac{p(\theta^*|x)q(\theta^{(k-1)}|\theta^*)}{p(\theta^{(k-1)}|x)q(\theta^*|\theta^{(k-1)})}\right) \] akzeptiert, also \(\theta^{(k)}=\theta^*\) gesetzt. Andernfalls wird \(\theta^{(k-1)}\) beibehalten, also \(\theta^{(k)}=\theta^{(k-1)}.\)

Der Metropolis-Hastings-Algorithmus erzeugt eine homogene Markovkette.

Vorschlagsdichten

  • Independence Proposal: Vorschlagsverteilung ist unabhängig vom aktuellen Wert

  • Symetrisches Proposal: \(q(\theta^*|\theta^{(k-1)})=q(\theta^{(k-1)}|\theta^*)\), die Vorschlagsdichte kürzt sich aus der Akzeptanzwahrscheinlichkeit (Metropolis-Algorithmus):

    \[ \alpha=\frac{p(\theta^*|x)}{p(\theta^{(k-1)}|x)} \]

    Jeder Vorschlag mit \(p(\theta^*|x)>p(\theta^{(k-1)}|x)\) wird angenommen!

    • Random Walk Proposal: Vorschlagsverteilung ist ein Random Walk

\[ \theta^* = \theta^{(k-1)}+\epsilon, \epsilon\sim f \]

also \(q(\theta^*|\theta^{(k-1)})=f(\theta^*-\theta^{(k-1)})\).

Random Walk

Random Walk wird in der Regel mit Normalverteilung konstruiert:

\[ \theta^* \sim N(\theta^{(k-1)},C) \]

mit vorgegebener Kovarianzmatrix \(C\).

  • Eine zu kleine Varianz führt zu hohen Akzeptanzraten, aber ineffizienten, da stark autokorrelierten Ziehungen. Im Extremfall \(C\to 0\) führt zu \(\alpha = 1\), \(\tau \to \infty\).
  • Eine zu große Varianz führt zu zu großen Schritten, Vorschläge liegen in den Enden der Posterioriverteilung, sehr kleine Akzeptanzraten.
  • Tuning der Kovarianzmatrix notwendig

Multivariate Verteilung

  • Metropolis-Hastings-Algorithmus kann für \(\theta\)-Vektoren durchgeführt werden

  • Akzeptanzraten jedoch i.d.R. geringer mit höherer Dimension

  • Alternative ist der komponentenweise Metropolis-Hastings: Jede Komponente des Parameters wird einzeln (skalar oder blockweise) aufdatiert. Sei \(\theta=(\theta_1,\theta_2)\):

    \[ \alpha=\min\left(1,\frac{p(\theta_1^*|x,\theta_2^{(k-1)})q(\theta^{(k-1)}_1|\theta_1^*)}{p(\theta^{(k-1)}_1|x,\theta_2^{(k-1)})q(\theta^*_1|\theta_1^{(k-1)})}\right) \]

    • Updates können in fester oder zufälliger Weise erfolgen

Gibbs-Sampling

Für multivariate Parameter bietet es sich beim Gibbs-Sampler an, die vollständig bedingte Posteriori (full conditional) als Proposalverteilung zu benutzen - wenn es sich um eine Standardverteilung handelt

\[ q(\theta^*_1)\propto p(\theta^*_1|x,\theta^{(k-1)}_2). \]

Damit wird die Akzeptanzwahrscheinlichkeit gleich 1.

Gibbs-Block-Algorithmus

Allgemeiner können die Komponenten des Parametervektors in Blöcke zerlegt: \(\mathbf\theta=(\mathbf\theta_1,\ldots,\mathbf\theta_p)\). Jeder Block wird dann aus der vollständig bedingten Dichte \(p(\mathbf\theta_j|\mathbf{x},\mathbf\theta_{-j})\) gezogen.

Sampling