1. Normal approximation around a posterior mode
Assume we have already:
- Found (or approximated) a posterior mode $\hat{\theta}$
- Maybe after using a boundary-avoiding prior as in the previous section.
We want to approximate the posterior density $p(\theta \mid y)$ with a multivariate normal centered at the mode.
Construction
Define:
- $L(\theta) = \log p(\theta \mid y)$
- Compute the Hessian (matrix of second derivatives) at the mode:
- $H = \left.\frac{d^2 \log p(\theta \mid y)}{d\theta^2}\right|_{\theta=\hat{\theta}}$
- Then the covariance of the normal approximation is:
- $V_\theta = (-H)^{-1}$ (assuming the posterior is locally concave around $\hat{\theta}$, so $-H$ is positive definite).
So the normal approximation is:
$p_{\text{normal approx}}(\theta) = N(\theta \mid \hat{\theta}, V_\theta)$
To compute $H$ and $V_\theta$:
- You can derive the second derivative analytically, or
- Approximate numerically with finite differences.
Parameter transformation
Before applying the normal approximation, it’s often a good idea to:
- Transform parameters to be unconstrained and roughly symmetric:
- positive → log,
- (0,1) → logit, etc.
- Then:
- Work in the transformed space,
- Add the Jacobian term to the log posterior,
- Approximate that transformed posterior by a normal distribution.
This usually produces a better Gaussian approximation.
2. Laplace’s method for approximating expectations
Instead of approximating just $p(\theta \mid y)$ itself, we often want:
$E[h(\theta) \mid y]$
for some smooth function $h(\theta)$.
Laplace’s method approximates integrals of the form:
$\int h(\theta)\,p(\theta \mid y)\, d\theta$
Define:
- $u(\theta) = \log\{h(\theta) p(\theta \mid y)\}$
- Let $\theta_0$ be the maximizer of $u(\theta)$:
- $\theta_0 = \arg\max_\theta u(\theta)$
- Let $d$ be the dimension of θ.
Then Laplace’s approximation yields:
$\int h(\theta)\, p(\theta \mid y)\, d\theta \approx h(\theta_0)p(\theta_0 \mid y)\,(2\pi)^{d/2} \left| -u”(\theta_0) \right|^{-1/2}$
and, after dividing by$\int p(\theta \mid y) d\theta$, we get an approximation to:
$E[h(\theta) \mid y]$
When is this reasonable?
- When $p(\theta \mid y)$ is approximately normal around its main mass (large sample size, central limit behavior).
- When $h(\theta)$ is smooth and doesn’t change too wildly near the high-density region.
Best use cases:
- Unimodal posteriors,
- Or applied separately to each mode of a multimodal posterior.
They mention: Laplace’s method is later used to compute relative masses of modes in a normal mixture approximation.
Laplace with unnormalized densities
Often you only know the posterior up to a constant:
- You can compute $q(\theta \mid y) \propto p(\theta \mid y)$ (unnormalized).
We can still approximate:
$E[h(\theta)\mid y] = \frac{\int h(\theta) q(\theta \mid y)\, d\theta}{ \int q(\theta \mid y)\, d\theta }$
Apply Laplace’s method:
- Once to the numerator $\int h(\theta) q(\theta \mid y)d\theta$,
- Once to the denominator$\int q(\theta \mid y)d\theta$,
Then take the ratio of the two approximations. No need to know the normalizing constant.
3. Mixture of normals for multimodal posterior densities
If the posterior has multiple modes, say $K$ modes, we can approximate $p(\theta \mid y)$ as a mixture of K multivariate normals.
Assume we have:
- Modes: $\hat{\theta}_1, \dots, \hat{\theta}_K$
- Local covariance matrices: $V_{\theta 1}, \dots, V_{\theta K}$ derived from Hessians at each mode.
We want:
$p_{\text{normal approx}}(\theta) \propto \sum_{k=1}^K \theta_k\, N(\theta \mid \hat{\theta}_k, V_{\theta k})$
where $\theta_k$ are the relative weights (masses) of each component.
How to choose the weights $\theta_k$
Let $q(\theta \mid y)$ be the unnormalized posterior density. At each mode:
$q(\hat{\theta}_k \mid y)$
For a multivariate normal density:
- The height at its mode is proportional to $|V_{\theta k}|^{-1/2}.$
So if we match the approximation to the true (unnormalized) posterior at the mode, we get:
$\hat{\theta}_k = q(\hat{\theta}_k \mid y) \, |V_{\theta k}|^{1/2}$
This leads to a mixture approximation:
$p_{\text{normal approx}}(\theta) \propto \sum_{k=1}^K q(\hat{\theta}_k \mid y)\, \exp\left\{ -\frac{1}{2} (\theta – \hat{\theta}_k)^T V_{\theta k}^{-1} (\theta – \hat{\theta}_k) \right\}$
After normalization, this defines a K-component Gaussian mixture approximating the posterior.
Assumptions:
- Modes are well separated, so local normal approximations don’t overlap too badly.
- Each mode is “locally normal”.
4. Using multivariate t instead of normal
Sometimes the posterior has heavier tails than a normal distribution or is not well captured by a Gaussian locally.
In that case, we can replace each normal component with a multivariate t distribution with small degrees of freedom ν:
$p_{t\text{ approx}}(\theta) \propto \sum_{k=1}^K q(\hat{\theta}_k \mid y)\, \left[ \nu + (\theta – \hat{\theta}_k)^T V_{\theta k}^{-1} (\theta – \hat{\theta}_k) \right]^{-(d+\nu)/2}$
where:
- $d$ = dimension of θ,
- ν is small (e.g. ν = 4), giving a distribution with heavier tails.
Properties:
- t-mixture is more robust in tails,
- Matches posterior better when it’s broader or heavy-tailed.
5. Improving approximations beyond local modes
They briefly mention other refinements:
- Fit the approximation not only at modes, but also at:
- saddle points,
- tail regions,
- Partially integrate out some components analytically or numerically,
- Use more advanced approximate methods:
- Variational Bayes,
- Expectation Propagation (EP),
which are introduced later.
6. Sampling from the approximate posterior
Once we have a mixture approximation (normal or t), it’s easy to sample from it.
To draw a sample θ from the mixture approximation:
- Select a component k:
- Draw k from {1,…,K} with probabilities proportional to $\theta_k$ (or $\hat{\theta}_k$ after normalization).
- Sample from that component:
- If normal: $\theta \sim N(\hat{\theta}_k, V_{\theta k})$
- If t: $\theta \sim t_\nu(\hat{\theta}_k, V_{\theta k})$
You can implement this with:
- Multinomial random draw for the component index,
- Then standard methods (e.g., via Cholesky factorization) to sample from the chosen multivariate normal or t.
Appendix A (of the book) describes:
- How to sample from a multivariate normal or t using the Cholesky decomposition of the covariance / scale matrix.
7. Using the approximate samples for importance sampling / resampling
Once you can sample from the approximate posterior, you can use these samples to improve inference for the true posterior.
Two main techniques:
- Importance sampling
- Treat the mixture approximation as the proposal distribution, say $g(\theta)$.
- For each draw $\theta^{(s)} \sim g(\cdot)$, compute an importance weight:
- $w^{(s)} \propto \frac{p(\theta^{(s)} \mid y)}{g(\theta^{(s)})}$
- Approximate expectations:
- $E[h(\theta) \mid y] \approx \frac{\sum_s w^{(s)} h(\theta^{(s)})}{\sum_s w^{(s)}}$
- Importance resampling (a.k.a. sampling-importance-resampling, SIR)
- Draw many candidates from the approximation,
- Weight them by importance weights,
- Then resample according to these weights to get a set of approximately unweighted draws from the true posterior.
This can give better approximations than just using the mixture directly, especially if the mixture is only approximate.
