Sampling MCMC
Squeezed Rejection Sampling
An optimization of rejection sampling that adds a cheap lower bound (squeeze function) to avoid expensive target density evaluations when the sample clearly falls in the accept or reject region.
Prerequisites
Why This Matters
Standard rejection sampling requires evaluating the target density for every proposed sample. When is expensive to compute (think multivariate posteriors, normalizing constants involving special functions, or densities defined through numerical integration), each evaluation dominates the runtime.
Squeezed rejection sampling reduces the number of expensive evaluations by adding a cheap lower bound. If the proposal clearly falls in the accept region or clearly falls in the reject region, you skip the expensive evaluation entirely.
Mental Model
In standard rejection sampling, you have an envelope and you accept a proposal with probability . You always need to evaluate .
Now add a squeeze function satisfying for all . Draw and . If , accept without evaluating . If , reject without evaluating (this never happens by construction). If , then and only then evaluate and accept if .
The squeeze handles the easy cases. You only pay for when the sample lands in the uncertain strip between and .
Formal Setup
Squeeze Function
Given a target density and an envelope , a squeeze function is any function such that:
The squeeze must be cheap to evaluate relative to .
Squeezed Rejection Sampling Algorithm
- Draw from the proposal distribution.
- Draw .
- If , accept (no evaluation of ).
- Else if , accept (evaluate ).
- Else reject (evaluate ).
- Return to step 1.
Main Theorems
Correctness of Squeezed Rejection Sampling
Statement
Squeezed rejection sampling produces independent samples distributed exactly according to the target density proportional to . The acceptance probability is identical to standard rejection sampling: .
Intuition
The squeeze only determines when you evaluate . It never changes the accept/reject decision. When you do evaluate , the decision is identical to standard rejection sampling. So the output distribution is unchanged.
Proof Sketch
Partition the probability space into three events for a proposal where :
Event A: . Accept. Since , we have , so standard rejection sampling would also accept.
Event B: . Accept after evaluating . Same decision as standard.
Event C: . Reject after evaluating . Same decision as standard.
In all three events, the accept/reject decision matches standard rejection sampling. The squeeze only changes which event triggers the evaluation.
Why It Matters
The fraction of proposals requiring -evaluation is:
A tight squeeze (close to ) means most proposals are resolved cheaply.
Failure Mode
If the squeeze is loose (), nearly every proposal falls in the uncertain strip and you evaluate anyway. The overhead of computing then makes squeezed rejection sampling slower than standard rejection sampling. The squeeze must be both cheap and tight.
Canonical Examples
Squeeze for the normal distribution
Suppose and the proposal is a double exponential (Laplace) distribution. A common squeeze for the standard normal is the piecewise linear function that interpolates at a grid of points, staying below everywhere. For example, between grid points and , the squeeze is the linear function connecting and . Since is log-concave, the linear interpolant stays below . With 10-20 grid points, this squeeze resolves over 95% of proposals without evaluating .
Common Confusions
The squeeze does not change the acceptance rate
Adding a squeeze does not accept more proposals. The overall acceptance probability remains . The squeeze only reduces the number of proposals that require evaluating . It trades -evaluations for cheaper -evaluations.
The squeeze need not be a density
The squeeze is not required to integrate to 1 or even to be a proper density. It is just a lower bound on . Any non-negative function that stays below works.
Summary
- Add a cheap lower bound to skip expensive evaluations
- Correctness is immediate: the squeeze never changes the accept/reject decision, only when is evaluated
- Savings depend on the tightness of the squeeze:
- If is cheap to evaluate, the overhead of computing is not worth it
- Log-concave densities admit natural piecewise linear squeezes
Exercises
Problem
Suppose the squeeze resolves 90% of proposals without evaluating , and evaluating takes 100 times longer than evaluating . What is the approximate speedup of squeezed rejection sampling over standard rejection sampling?
Problem
For a log-concave density , explain why a piecewise linear interpolant through points lies below between grid points. State the precise condition on that makes this work.
References
Canonical:
- Devroye, Non-Uniform Random Variate Generation (1986), Chapter 7
- von Neumann, "Various Techniques Used in Connection with Random Digits" (1951), original rejection sampling paper
Current:
-
Robert & Casella, Monte Carlo Statistical Methods (2004), Chapter 2.3
-
Gelman et al., Bayesian Data Analysis (2013), Chapters 10-12
-
Brooks et al., Handbook of MCMC (2011), Chapters 1-5
Next Topics
- Adaptive rejection sampling: automatically refine the envelope and squeeze for log-concave densities
- Importance sampling: reweight samples instead of rejecting them
Last reviewed: April 2026
Prerequisites
Foundations this topic depends on.
- Rejection SamplingLayer 1