Skip to Tutorial Content

Binomial-Modell

Bisher haben wir hauptsächlich mit Samplingbasierter Inferenz, insbesondere MCMC gearbeitet. Nun wollen wir eine andere Art ansehen, wie man die Posteriori erhalten kann: Die Laplace-Approximation.

Uns liegen folgende Daten vor.

  • Todesfälle nach Herzoperationen bei Babies
  • Beobachtungen von 12 Krankenhäusern
  • Annahme: Todesrate ist Krankenhausspezifisch
  • Individuelle Raten der Krankenhäuser kommen aus gemeinamer Verteilung

Daten

Hierarchisches Modell

Datenmodell

Sei \(y_i\) die Anzahl der Todesfälle bei \(n_i\) Operationen in Krankenhaus \(i=1,\ldots,p=12\);

\[ \begin{aligned} y_i &\sim B(n_i, \pi_i); i=1,\ldots,p\\[3mm] \pi_i &= \frac{\exp(\theta_i)}{1-\exp(\theta_i)} \end{aligned} \]

Priori-Modell

Für den Effekt des Krankenhauses nehmen wir a priori eine Normalverteilung an:

\[ \theta_i|\tau \sim N\left(\mu,\tau^{-1}\right) \]

  • Die Präzision \(\tau^{-1}\) ist dabei ein Parameter von Interesse: Wie stark weichen die Krankenhäuser voneinander ab?
  • Wir wollen \(\tau^{-1}\) daher nicht vorgeben, sondern mitschätzen.
  • Dafür brauchen wir eine (Hyper-)Priori.

Hyper-Priori

Wie bisher immer bei Präsizionen benutzen wir

\[ \tau \sim Ga(a,b) \]

z.B. mit \(a=b=0.001\).

Außerdem brauchen wir noch eine Hyper-Priori für \(\mu\), z.B. \(\mu\sim N(\mu_0,\sigma^2)\) mit hoher Varianz \(\sigma^2\) (relativ flache Priori).

Approximation

Versuchen wir nun die Posteriori zu approximieren. Wie beginnen ganz allgemein:

Hierarchische Bayes-Modelle

Sei allgemein ein HBM mit drei Stufen gegeben:

  • \(y\sim F(\theta)\), \(\theta=(\theta_1,\ldots,\theta_p)\)
  • \(\theta_j \sim N(\mu_j,\tau_j^{-1}),\, j=1, \ldots, p\)
  • \(\tau_j \propto p(\tau_j),\, j=1,\ldots,p\)

Dabei ist \(F\) eine beliebige Datenverteilung.

Marginale Posteriori

Die marginale Posteriori von \(\theta|\tau\) ist

\[ p(\theta|y) = \int p(\theta|\tau, y) p(\tau| y) \; d\tau\\ \]

Hier brauchen wir für die Berechnung des Integrals die bedingte Posteriori von \(\theta\) und die marginale Posteriori von \(\tau\).

  • Im Normalverteilungsmodell mit semi-konjugierter Priori kennen wir die bedingte Posteriori von \(\theta\) genau.
  • Andernfalls müssten wir sie approximieren.

Die marginale Posteriori von \(\tau\) erhalten wir durch

\[ p(\tau|y) = \int p(\tau|\theta) p(\theta|y) d\theta \]

  • Wir kennen diesen Ansatz aus dem Normalverteilungsmodell mit zwei unbekannten Parametern.
  • In diesem hochdimensionalen Modell ist die Approximation allerdings etwas aufwendiger.

Laplace-Approximation

Betrachten wir erst mal allgemein dieses Problem: Gesucht ist das Integral

\[ \int_{-\infty}^{\infty} \exp(-nh(x))dx \]

Dabei sei \(h(x)\) eine konvexe, zweimal differenzierbare Funktion ist, die ihr Minimum an der Stelle \(x=\tilde{x}\) hat (und damit \(\exp(-nh(x))\) ihr Maximum).

Einfaches Beispiel: \(h(x)=(x-\mu)^2\) ist konvex und zweimal stetig differenzierbar. Dann ist \(\exp(-nh(x))\) proportional zur Dichte der Normalverteilung mit Erwartungswert \(\mu\).

Der Maximum-Likelihood-Schätzer maximiert \(\exp(-nh(x))\) und minimiert damit \(h(x)\).

Da \(\tilde{x}\) \(h(x)\) minimiert, gilt:

  • \(h'(\tilde{x})=0\)
  • \(h''(\tilde{x})>0\)

Wir können eine Taylorentwicklung von \(h(x)\) um \(\tilde{x}\) machen,, wobei wir nach dem zweiten Term abbrechen:

\[ \begin{aligned} h(x)& \approx h(\tilde{x})+h'(\tilde{x})(x-\tilde{x})+\frac12 h''(\tilde{x})(x-\tilde{x})^2\\ &= h(\tilde{x})+\frac12 h''(\tilde{x})(x-\tilde{x})^2 \end{aligned} \]

Setzen wir diese Taylor-Entwicklung ind die Exponentialfunktion ein, so erhalten wir

\[ \exp(h(x))\underset{\sim}{\propto}\exp\left(\frac12 h''(\tilde{x})(x-\tilde{x})^2\right) \]

  • Das entspricht der Dichte der Normalverteilung.
  • Alternativ kann man auch weitere Terme der Taylorreihe aufnehmen, z.B. kommt man mit dem dritten Term auf die sogenannte “schiefe Normalverteilung”.

Definition

Die Laplace-Approximation ist definiert als

\[ \begin{aligned} \int_{-\infty}^{\infty}\exp(-nh(x))dx &\approx \exp(-nh(\tilde{x})) \int_{-\infty}^{\infty} \exp\left(-\frac12 nh''(\tilde{x})(x-\tilde{x})^2\right)dx \\[3mm] &=\exp(-nh(\tilde{x}))\sqrt{\frac{2\pi}{nh''(\tilde{x})}} \end{aligned} \]

Der relative Fehler der Laplace-Approximation ist von der Ordnung \(O(\frac1n)\).

Laplace-Approximation des Posteriori-Erwartungswert

Berechnung des Posteriori-Erwartungswerts von \(g(\theta)\):

\[ \begin{aligned} E(g(\theta|x))&=\int_\Theta g(\theta) p(\theta|x) d\theta \\ &=\int_\Theta g(\theta) \frac{f(x|\theta)p(\theta)}{\int_\Theta f(x|\tilde{\theta}) p(\tilde{\theta}) d\tilde{\theta} }d\theta\\ &=\frac{\int_\Theta g(\theta)f(x|\theta)p(\theta)d\theta}{\int_\Theta f(x|\tilde{\theta})p(\tilde{\theta})d\tilde{\theta}} \end{aligned} \]

erfordert die Berechnung des Quotienten zweier ähnlicher Integrale.

Mit

\[ \begin{aligned} -nh(\theta)&=\log f(x|\theta)+\log p(\theta)\\ -nq(\theta)&=\log g(\theta)+\log f(x|\theta)+\log p(\theta) \end{aligned} \]

ist

\[ E(g(\theta)|x)=\frac{\int \exp(-nq(\theta))d\theta)}{\int \exp(-nh(\theta))d\theta)}. \]

Seien \(\hat{\theta}\) und \(\tilde{\theta}\) die Minimumstellen von \(h(\theta)\) und \(q(\theta)\). Dann ist

\[ E(g(\theta)|x)\approx \sqrt{\frac{h''(\hat{\theta})}{q''({\tilde{\theta}})}} \exp \left(-n(q(\tilde{\theta})-h(\hat{\theta})) \right). \]

Die Laplace-Approximation für \(E(g(\theta)|x)\) hat einen relativen Fehler von der Ordnung \(O(1/n^2)\).

Beispiel:Laplace-Approximation für das Poisson-Gamma-Modell

Simulierte Daten mit \(\lambda=25\) und Jeffreys-Priori:

\(n\) Posterior-Erwartungswert Approximation absoluter Fehler
1 27.500 25.703 1.79745
2 28.750 27.801 0.94933
3 30.167 29.522 0.64487
5 26.300 25.909 0.39092
10 25.450 25.252 0.19763
25 25.700 25.620 0.07962
50 25.950 25.910 0.03991
100 26.175 26.155 0.01998

Für größere \(n\) funktioniert die Laplace-Approximation besser, weil die Binomial-Verteilung besser durch die Normalverteilung approximiert werden kann.

INLA

Für hierarchische Modelle kann man die Integrated Nested Laplace Approximation (INLA) benutzen.

Zur Erinnerung:

Sei allgemein ein HBM mit drei Stufen gegeben:

  • \(y\sim F(\theta)\), \(\theta=(\theta_1,\ldots,\theta_p)\)
  • \(\theta_j \sim N(\mu_j,\tau_j^{-1}),\, j=1, \ldots, p\)
  • \(\tau_j \propto p(\tau_j),\, j=1,\ldots,p\)

Dabei ist \(F\) eine beliebige Datenverteilung.

Marginale Posteriori von \(\tau\)

Wir beginnen mit der Schätzung der marginale Posteriori von \(\tau\) und verwenden folgende Formel, die sich aus der Definition der bedingten Dichte ergibt:

\[ p(\tau|y) = \frac{p(\theta,\tau|y)}{p(\theta|\tau,y)} \]

\(p(\theta,\tau|y)\) ist bekannt bis auf die Normierungskonstante.

Für ein festes \(\tau\) können wir \(p(\theta|\tau,y)\) bestimmen:

  • Für normalverteilten Daten kennen wir diese vollständig bedingte Posterior sogar (Normalverteilung).
  • Andernfalls können wir sie mit der Laplace-Approximation approximieren (Notation: \(\tilde{p}(\theta|\tau,y)\)).
  • Aus \(\tilde{p}(\theta|\tau,y)\) können wir einen Punktschätzer (Posteriori-Erwartungswert wie oben) für \(\theta^{*}(\tau)\) bestimmen und in die Formel einsetzen (damit die Approximation im vorherigen Schritt gut funktioniert).

Damit ergibt sich insgesamt als Approximation von \(p(\tau|y)\):

\[ \tilde{p}(\tau|y) = \left.\frac{p(\theta,\tau|y)}{\tilde{p}(\theta|\tau,y)}\right|_{\theta=\theta^*(\tau)} \]

  • Ähnlich wie beim CDF-Sampler können wir nun auf einem diskretisierten Gitter von \(\tau\) die Werte von \(\tilde{p}(\tau|y)\) bis auf die Normalisierungskonstante berechnen.

  • Daraus kann man die Normalisierungskonstante numerisch approxiomieren.

  • Oft haben wir mehrdimensionales \(\tau\), siehe z.B. Autofahrerbeispiel in den vorherigen Abschnitten.

  • Auch dann ist Diskretisierung möglich.

  • Rechenaufwand wächst jedoch exponential mit der Dimension, da Anzahl der Gitterpunkte exponential steigt.

  • Das ist der “Flaschenhals” der Methode.

Einige numerische Tricks können helfen, den Rechenaufwand zu minimieren:

  • Gitter rund um grob geschätzes Maximum von \(p(\tau)\) aufbauen.
  • Geschickt gewählte Gitterpunkte (Rotation der Dimensionen, möglichst Gitterpunkte mit hohem \(p(\tau)\) auswählen).
  • Interpolation an Gitterpunkten statt expliziert Berechnung

Marginale Posteriori von \(\theta\)

Für die marginale Posteriori von \(\theta|y\) gilt nun:

\[ p(\theta|y) = \int p(\theta|\tau, y) p(\tau| y) d\tau \]

  • Im vorherigen Schritt haben wir \(p(\tau| y)\) approximiert an festen \(\tau\).
  • Dabei haben wir auch \(p(\theta|\tau, y)\) schon approximiert.

Damit können wir insgesamt die marginale Posteriori wie folgt maximieren:

\[ \tilde{p}(\theta|y)=\sum_\tau \tilde{p}(\theta|\tau,y)\tilde{p}(\tau|y) \]

R-INLA

Die INLA-Software kann die Approximation der Posteriori mit dem beschriebenen Verfahren durchführen. Wir benutzen das R-Paket INLA, welches die eigentliche Software an R anbindet.

Die Spezifikation des Modells ist ähnlich wie bei BayesX:

  • Die Funktion f übernimmt dabei die Rolle der Modellierung der Priori.
  • Hier ist hospital wieder die Nummer des Krankenhauses.
  • “iid” steht für unabhängig und identisch verteilte Effekte pro Krankenhaus
  • param=c(0.001,0.001) spezifiziert die Hyperparameter der Gamma-Priori (andere Prioris sind möglich)

Die Funktion inla führt den Algorithmus aus. family=“binomial” spezifiziert die Datenverteilung, Ntrials den Parameter \(n\) in der Binomialverteilung.

Ergebnisse

Wir erhalten aus dem Algorithmus die approximierte Posteriori

  • des Intercepts
  • der Effekte der einzelnen Krankenhäuser
  • und der Präzision zwischen den Krankenhäusern

## Time used:
##     Pre = 1.35, Running = 2.92, Post = 0.0275, Total = 4.3 
## Fixed effects:
##               mean    sd 0.025quant 0.5quant 0.975quant   mode kld
## (Intercept) -2.554 0.153     -2.877   -2.547     -2.267 -2.548   0
## 
## Random effects:
##   Name     Model
##     hospital IID model
## 
## Model hyperparameters:
##                        mean    sd 0.025quant 0.5quant 0.975quant mode
## Precision for hospital 9.91 11.38       1.67     6.92      34.97 4.23
## 
## Marginal log-Likelihood:  -46.15 
##  is computed 
## Posterior summaries for the linear predictor and the fitted values are computed
## (Posterior marginals needs also 'control.compute=list(return.marginals.predictor=TRUE)')

Weiter

INLA