The Inverse Transform Method

Suppose you have a machine that spits out perfectly uniform random numbers on [0,1][0,1]. You want it to instead simulate a random variable with an exponential, normal, or wildly exotic distribution. How do you get from "uniform noise" to "any distribution you like"? This is not a hypothetical problem. Every simulation study, every Monte Carlo integration, every stochastic model run on a computer needs a way. It must convert the uniform pseudo-randomness that hardware and software naturally produce. The goal is samples from the distribution the modeler actually cares about. The Inverse Transform Method answers this question completely and constructively. It works for any distribution on the real line. It uses nothing more than the cumulative distribution function (CDF) and its generalized inverse. The idea is almost embarrassingly simple once seen. Feed a uniform random number into the inverse of the CDF you want. Out comes a sample from that distribution. What makes the result a genuine theorem, rather than a heuristic, is generality. It works for every CDF — continuous, discrete, or a mixture of both. One must be careful about how "inverse" is defined. This matters when the CDF is not strictly increasing or not continuous. The big picture is this: a CDF FF encodes a distribution as a monotone map. It maps outcomes to probabilities. Inverting that map trades the roles of input and output. This turns a uniform probability into an outcome. This single trick unifies simulation of discrete and continuous random variables under one formula. It explains classical algorithms (simulating exponential, Cauchy, Pareto, and geometric random variables). It is the ancestor of nearly every method used to convert uniform randomness into structured randomness. This lineage runs directly into Monte Carlo integration and simulation-based statistics. This article gives the precise definition of the generalized inverse CDF. It states and proves the fundamental theorem justifying the method in full generality. This holds not just for continuous strictly-increasing CDFs. It works through two genuinely different examples. It shows exactly which hypothesis breaks the method when discarded.

Key takeaways
  • The quantile function F−1(u)=inf⁡{x:F(x)≥u}F^{-1}(u) = \inf\{x : F(x) \ge u\} is the correct notion of "inverse" for any CDF, even non-continuous or non-strictly-monotone ones.
  • If U∼Uniform(0,1)U \sim \text{Uniform}(0,1), then X=F−1(U)X = F^{-1}(U) has CDF exactly FF — this holds for every distribution function on R\mathbb{R}.
  • The proof rests on a single equivalence: F−1(u)≤x  ⟺  u≤F(x)F^{-1}(u) \le x \iff u \le F(x), which requires only monotonicity and right-continuity of FF.
  • The method handles discrete distributions automatically: F−1F^{-1} becomes a step function, and UU lands in the correct interval with the correct probability.
  • Continuity of FF is not needed for existence of XX with the right law; it is only needed if you want F(X)∼Uniform(0,1)F(X) \sim \text{Uniform}(0,1) to hold exactly (the true "probability integral transform").
  • Key idea: applying the generalized inverse CDF to a uniform random variable manufactures a sample from any target distribution, discrete or continuous, with one formula.

Where this lives today

The inverse transform method is the conceptual seed of Monte Carlo simulation: whenever a statistical model, a Bayesian posterior approximation, or a physical simulation needs samples from a complicated distribution, the inverse CDF (when tractable, or numerically invertible) is often the first tool tried. In computer graphics, inverse transform sampling generates random directions and importance-sampled light paths in ray tracing. In cryptography and pseudo-random number generation, uniform generators (linear congruential, Mersenne Twister, etc.) are treated as the raw material, with inverse-CDF transforms layered on top to produce non-uniform variates for randomized algorithms and randomized testing. In queueing theory and reliability engineering, exponential and Weibull interarrival/failure times are generated via closed-form inverse CDFs (for example X=−λ−1ln⁡(1−U)X = -\lambda^{-1}\ln(1-U) for exponential waiting times, a direct instance of this theorem). In finance, Monte Carlo pricing of derivatives draws normal or more exotic risk-factor distributions using inverse-CDF or closely related techniques (e.g. inverse-CDF applied to correlated uniforms via copulas). In statistics, the probability integral transform corollary underlies goodness-of-fit diagnostics (Q–Q plots, Kolmogorov–Smirnov statistics) by mapping any continuous distribution's samples back to uniformity for testing.

Ask the tutor: How does the inverse transform method extend to generating correlated random vectors using copulas?

DefinitionGeneralized Inverse CDF / Quantile Function

Let F:R→[0,1]F : \mathbb{R} \to [0,1] be a cumulative distribution function, meaning FF is non-decreasing, right-continuous, with

lim⁡x→−∞F(x)=0,lim⁡x→∞F(x)=1.\lim_{x \to -\infty} F(x) = 0, \qquad \lim_{x \to \infty} F(x) = 1.

The generalized inverse (or quantile function) of FF is the function F−1:(0,1)→RF^{-1} : (0,1) \to \mathbb{R} defined by

F−1(u)=inf⁡{ x∈R:F(x)≥u },u∈(0,1).F^{-1}(u) = \inf\{\, x \in \mathbb{R} : F(x) \ge u \,\}, \qquad u \in (0,1).

The set {x:F(x)≥u}\{x : F(x) \ge u\} is nonempty and bounded below because F(x)→1F(x) \to 1 as x→∞x \to \infty and F(x)→0F(x) \to 0 as x→−∞x \to -\infty, so the infimum is a well-defined real number. When FF is continuous and strictly increasing, F−1F^{-1} coincides with the ordinary inverse function.

Intuition

Picture the graph of a CDF FF: it climbs from 00 to 11, weakly increasing, possibly with jumps (atoms of probability) and possibly with flat stretches (intervals the distribution never visits). The ordinary functional inverse fails on both features — jumps make FF non-injective in the sense that many uu-values map to a single jump point, and flat stretches make FF non-surjective onto some xx-values. The quantile function F−1(u)F^{-1}(u) repairs this by a simple rule: scan rightward until FF first reaches height uu or higher, and report that xx-coordinate. Geometrically, F−1F^{-1} is obtained by reflecting the graph of FF across the diagonal line y=xy = x and, at any vertical jump, resolving the ambiguity by taking the leftmost consistent point — which is exactly the right convention to make probabilities match up. The generative recipe is: draw a uniform "height" UU on the vertical axis, then read off the horizontal coordinate at which the graph of FF first reaches that height. Because FF increases from 00 to 11, a uniform height corresponds to picking a horizontal location with exactly the right probability weighting — steep parts of FF (dense probability) get hit often, flat parts (rare regions) get hit rarely, and jumps (atoms) get hit with probability equal to their jump size.

Figure
Reflecting a CDF across the diagonal produces its quantile function
1 0 x u jump = atom u = U (drawn uniformly) X = F⁻¹(U) F(x)

Central theorem

TheoremThe Inverse Transform Theorem

Let F:R→[0,1]F : \mathbb{R} \to [0,1] be any cumulative distribution function (non-decreasing, right-continuous, with limits 00 and 11 at −∞-\infty and +∞+\infty), and let F−1F^{-1} be its generalized inverse as defined above. Let UU be a random variable with

U∼Uniform(0,1),U \sim \text{Uniform}(0,1),

defined on some probability space (Ω,F,P)(\Omega, \mathcal{F}, \mathbb{P}). Define

X=F−1(U).X = F^{-1}(U).

Then XX is a random variable whose cumulative distribution function is exactly FF; that is,

P(X≤x)=F(x)for all x∈R.\mathbb{P}(X \le x) = F(x) \quad \text{for all } x \in \mathbb{R}.
LemmaKey equivalence

For all u∈(0,1)u \in (0,1) and all x∈Rx \in \mathbb{R},

F−1(u)≤x  ⟺  u≤F(x).F^{-1}(u) \le x \iff u \le F(x).
Proof

Proof of the Lemma. We prove both directions. (⇐\Leftarrow) Suppose u≤F(x)u \le F(x). Then xx belongs to the set Su:={y∈R:F(y)≥u}S_u := \{ y \in \mathbb{R} : F(y) \ge u \}, since F(x)≥uF(x) \ge u. By definition F−1(u)=inf⁡Su≤xF^{-1}(u) = \inf S_u \le x, because xx is itself an element of the set being infimized. (⇒\Rightarrow) Suppose F−1(u)≤xF^{-1}(u) \le x. We must show u≤F(x)u \le F(x). By definition of infimum, for every ε>0\varepsilon > 0 there exists y∈Suy \in S_u with y<F−1(u)+εy < F^{-1}(u) + \varepsilon. Fix any ε>0\varepsilon > 0; choose such a y∈Suy \in S_u with F−1(u)≤y<F−1(u)+ε≤x+εF^{-1}(u) \le y < F^{-1}(u) + \varepsilon \le x + \varepsilon. Since FF is non-decreasing and y∈Suy \in S_u means F(y)≥uF(y) \ge u, and y<x+εy < x + \varepsilon gives (by monotonicity) F(y)≤F(x+ε)F(y) \le F(x+\varepsilon), we obtain

u≤F(y)≤F(x+ε).u \le F(y) \le F(x + \varepsilon).

This holds for every ε>0\varepsilon > 0. Now let ε↓0\varepsilon \downarrow 0. Right-continuity of FF at xx gives F(x+ε)→F(x)F(x+\varepsilon) \to F(x). Hence

u≤lim⁡ε↓0F(x+ε)=F(x).u \le \lim_{\varepsilon \downarrow 0} F(x+\varepsilon) = F(x).

This proves u≤F(x)u \le F(x), completing the equivalence. ■\blacksquare

∎
Proof

Proof of the Theorem, using the Lemma. Fix any x∈Rx \in \mathbb{R}. We compute the distribution of X=F−1(U)X = F^{-1}(U) directly using the equivalence just proved, with uu replaced by the random variable UU:

{X≤x}={F−1(U)≤x}={U≤F(x)},\{X \le x\} = \{F^{-1}(U) \le x\} = \{U \le F(x)\},

where the last equality is a set equality of events, valid pointwise for every ω∈Ω\omega \in \Omega by the Lemma applied with u=U(ω)u = U(\omega). Now take probabilities of both sides. Since U∼Uniform(0,1)U \sim \text{Uniform}(0,1), its CDF is

P(U≤t)={0t<0t0≤t≤11t>1.\mathbb{P}(U \le t) = \begin{cases} 0 & t < 0 \\ t & 0 \le t \le 1 \\ 1 & t > 1. \end{cases}

Because F(x)∈[0,1]F(x) \in [0,1] for every xx (as FF is a CDF), we may apply this formula with t=F(x)t = F(x) directly:

P(U≤F(x))=F(x).\mathbb{P}(U \le F(x)) = F(x).

Combining the two displays,

P(X≤x)=P(U≤F(x))=F(x).\mathbb{P}(X \le x) = \mathbb{P}(U \le F(x)) = F(x).

Since x∈Rx \in \mathbb{R} was arbitrary, this shows XX has CDF equal to FF everywhere. ■\blacksquare

Technique used: direct verification via a set-theoretic equivalence (the Lemma), reducing the computation of P(X≤x)\mathbb{P}(X\le x) to the known CDF of the uniform distribution — no circularity, since the Lemma uses only the defining properties of F−1F^{-1} (an infimum) and monotonicity/right-continuity of FF, not any consequence of the theorem itself.

∎
CorollaryMeasurability of XX

X=F−1(U)X = F^{-1}(U) is a genuine random variable (a measurable function of UU), because F−1F^{-1} is non-decreasing — indeed the equivalence in the Lemma shows {u:F−1(u)≤x}={u:u≤F(x)}\{u : F^{-1}(u) \le x\} = \{u: u \le F(x)\} is an interval for every xx, so F−1F^{-1} is Borel measurable, being monotone. Composed with the measurable UU, XX is measurable.

CorollaryProbability integral transform, continuous case

If in addition FF is continuous, then F(X)∼Uniform(0,1)F(X) \sim \text{Uniform}(0,1) whenever XX has CDF FF. That is, the transform is invertible in law both ways: U↦F−1(U)U \mapsto F^{-1}(U) produces X∼FX\sim F, and conversely F(X)∼Uniform(0,1)F(X) \sim \text{Uniform}(0,1). Proof sketch (stated for completeness; standard result). When FF is continuous and strictly increasing on the support of XX, F−1(F(x))=xF^{-1}(F(x)) = x almost surely, and one shows directly P(F(X)≤u)=P(X≤F−1(u))=F(F−1(u))=u\mathbb{P}(F(X) \le u) = \mathbb{P}(X \le F^{-1}(u)) = F(F^{-1}(u)) = u for u∈(0,1)u \in (0,1), using continuity to guarantee F(F−1(u))=uF(F^{-1}(u))=u. This is the classical probability integral transform; it is not needed for the main theorem above (which requires no continuity), but it explains the name "inverse transform method" and its two-way character in the continuous case. ■\blacksquare

Worked examples

Example 1: Simulating a Pareto random variable (continuous, asymmetric parameters). Let XX have the Pareto distribution with shape parameter α=2.5\alpha = 2.5 and scale parameter xm=3x_m = 3, meaning its CDF is

F(x)=1−(xmx)α=1−(3x)2.5,x≥3,F(x) = 1 - \left(\frac{x_m}{x}\right)^{\alpha} = 1 - \left(\frac{3}{x}\right)^{2.5}, \qquad x \ge 3,

and F(x)=0F(x) = 0 for x<3x < 3. This FF is continuous and strictly increasing on [3,∞)[3,\infty), so F−1F^{-1} is the ordinary inverse. Solve u=1−(3/x)2.5u = 1 - (3/x)^{2.5} for xx:

(3/x)2.5=1−u  ⟹  3/x=(1−u)1/2.5  ⟹  x=3(1−u)0.4.(3/x)^{2.5} = 1-u \implies 3/x = (1-u)^{1/2.5} \implies x = \frac{3}{(1-u)^{0.4}}.

So

F−1(u)=3(1−u)0.4,u∈(0,1).F^{-1}(u) = \frac{3}{(1-u)^{0.4}}, \qquad u \in (0,1).

By the Inverse Transform Theorem, if U∼Uniform(0,1)U \sim \text{Uniform}(0,1) then

X=3(1−U)0.4X = \frac{3}{(1-U)^{0.4}}

has exactly the Pareto(α=2.5,xm=3)(\alpha=2.5, x_m=3) distribution. As a numerical check, take U=0.729U = 0.729 (an arbitrary sample value). Then 1−U=0.2711-U = 0.271, and

(0.271)0.4=e0.4ln⁡0.271=e0.4×(−1.3056)=e−0.5222≈0.5932,(0.271)^{0.4} = e^{0.4 \ln 0.271} = e^{0.4 \times (-1.3056)} = e^{-0.5222} \approx 0.5932,

so

X≈30.5932≈5.057.X \approx \frac{3}{0.5932} \approx 5.057.

Sanity check: plug x=5.057x = 5.057 back into FF:

F(5.057)=1−(3/5.057)2.5=1−(0.5933)2.5.F(5.057) = 1 - (3/5.057)^{2.5} = 1 - (0.5933)^{2.5}.

Compute (0.5933)2.5=e2.5ln⁡0.5933=e2.5×(−0.5222)=e−1.3056≈0.2711(0.5933)^{2.5} = e^{2.5 \ln 0.5933} = e^{2.5 \times (-0.5222)} = e^{-1.3056} \approx 0.2711, so F(5.057)≈1−0.2711=0.7289≈0.729=UF(5.057) \approx 1 - 0.2711 = 0.7289 \approx 0.729 = U. This confirms the arithmetic is consistent (small rounding only). Note also that since U∼Uniform(0,1)U \sim \text{Uniform}(0,1) implies 1−U∼Uniform(0,1)1 - U \sim \text{Uniform}(0,1) as well (a standard symmetry of the uniform distribution), a common simplification is to write X=3 U−0.4X = 3\,U^{-0.4} directly using UU in place of 1−U1-U; both give a valid Pareto sample.

Example 2: Simulating a discrete random variable — a non-uniform three-point distribution. Let YY take values in {1,2,5}\{1, 2, 5\} (chosen asymmetrically, not a "nice" {1,2,3}\{1,2,3\}) with probabilities

P(Y=1)=0.2,P(Y=2)=0.5,P(Y=5)=0.3.\mathbb{P}(Y=1) = 0.2, \qquad \mathbb{P}(Y=2) = 0.5, \qquad \mathbb{P}(Y=5) = 0.3.

The CDF is the step function

F(y)={0y<10.21≤y<20.72≤y<51y≥5.F(y) = \begin{cases} 0 & y < 1 \\ 0.2 & 1 \le y < 2 \\ 0.7 & 2 \le y < 5 \\ 1 & y \ge 5. \end{cases}

This FF is right-continuous (as required) with jumps at 1,2,51, 2, 5 of sizes 0.2,0.5,0.30.2, 0.5, 0.3 respectively — note FF jumps up to 0.20.2 exactly at y=1y=1 (not approaching it), consistent with right-continuity, since F(1)=0.2F(1) = 0.2 while lim⁡y↑1F(y)=0\lim_{y \uparrow 1} F(y) = 0. Compute F−1(u)=inf⁡{y:F(y)≥u}F^{-1}(u) = \inf\{ y : F(y) \ge u\} directly by cases:

  • For 0<u≤0.20 < u \le 0.2: the smallest yy with F(y)≥uF(y) \ge u is y=1y = 1 (since F(1)=0.2≥uF(1) = 0.2 \ge u and F(y)=0F(y) = 0 for y<1y<1). So F−1(u)=1F^{-1}(u) = 1.
  • For 0.2<u≤0.70.2 < u \le 0.7: we need F(y)≥u>0.2F(y) \ge u > 0.2, which fails for y<2y < 2 (where F(y)=0.2F(y) = 0.2) and holds at y=2y=2 (where F(2)=0.7≥uF(2)=0.7 \ge u). So F−1(u)=2F^{-1}(u) = 2.
  • For 0.7<u≤10.7 < u \le 1: similarly F−1(u)=5F^{-1}(u) = 5.

So F−1F^{-1} is itself a step function:

F−1(u)={10<u≤0.220.2<u≤0.750.7<u≤1.F^{-1}(u) = \begin{cases} 1 & 0 < u \le 0.2 \\ 2 & 0.2 < u \le 0.7 \\ 5 & 0.7 < u \le 1. \end{cases}

By the theorem, Y=F−1(U)Y = F^{-1}(U) has exactly this three-point distribution, since P(U∈(0,0.2])=0.2\mathbb{P}(U \in (0,0.2]) = 0.2, P(U∈(0.2,0.7])=0.5\mathbb{P}(U \in (0.2,0.7]) = 0.5, P(U∈(0.7,1])=0.3\mathbb{P}(U \in (0.7,1]) = 0.3 — matching P(Y=1),P(Y=2),P(Y=5)\mathbb{P}(Y=1), \mathbb{P}(Y=2), \mathbb{P}(Y=5) exactly. As a numeric check, suppose U=0.68U = 0.68: since 0.2<0.68≤0.70.2 < 0.68 \le 0.7, we get Y=2Y = 2, matching the middle (most probable) outcome, as one would expect for a "typical" uniform draw near the center of the unit interval given that [2,5)[2,5)-region occupies interval (0.2,0.7](0.2, 0.7] of length 0.50.5, the plurality mass. This example shows the same single formula X=F−1(U)X = F^{-1}(U) handles discrete distributions with no separate machinery: the "inversion" of a step function is another step function, and the interval lengths automatically encode the correct point probabilities.

CounterexampleDropping right-continuity breaks the theorem

The proof of the Key Lemma used right-continuity of FF in an essential way — to pass from u≤F(x+ε)u \le F(x+\varepsilon) for all ε>0\varepsilon>0 to u≤F(x)u \le F(x) in the limit. Suppose we instead allow a "CDF-like" function that is left-continuous at a jump instead of right-continuous, violating the standard convention. Define

G(x)={0x<00.50≤x<1[−2pt]G(x) = \begin{cases} 0 & x < 0 \\ 0.5 & 0 \le x < 1 \\ [-2pt] \end{cases}

more precisely, take the left-continuous modification of a two-point distribution putting mass 0.50.5 at each of x=0,1x=0,1:

G(x)={0x<00.50≤x≤1, x≠1 approached from left is 0.5 but jump placed just before 1G(x) = \begin{cases} 0 & x < 0 \\ 0.5 & 0 \le x \le 1,\ x\ne 1 \text{ approached from left is } 0.5 \text{ but jump placed just before } 1 \\ \end{cases}

To make this concrete and unambiguous, define GG directly as

G(x)={0x<00.50≤x<11x≥1,G(x) = \begin{cases} 0 & x < 0 \\ 0.5 & 0 \le x < 1 \\ 1 & x \ge 1, \end{cases}

but now redefine it to be left-continuous at 11 by moving the jump slightly: let

G~(x)={0x<00.50≤x≤11x>1.\tilde{G}(x) = \begin{cases} 0 & x < 0 \\ 0.5 & 0 \le x \le 1 \\ 1 & x > 1. \end{cases}

Here G~(1)=0.5\tilde G(1) = 0.5 but lim⁡x↓1G~(x)=1≠G~(1)\lim_{x \downarrow 1} \tilde G(x) = 1 \ne \tilde G(1): G~\tilde G is not right-continuous at x=1x=1 (it is left-continuous there instead). This G~\tilde G is a valid non-decreasing function from 00 to 11, but fails to be a genuine CDF because CDFs are required to be right-continuous by definition (this is what makes P(X≤x)\mathbb{P}(X \le x), rather than P(X<x)\mathbb{P}(X<x), the correct object). Now compute the generalized inverse G~−1(u)=inf⁡{x:G~(x)≥u}\tilde G^{-1}(u) = \inf\{x : \tilde G(x) \ge u\} for u=0.7u = 0.7: we need G~(x)≥0.7\tilde G(x) \ge 0.7, which first happens at xx slightly greater than 11 — precisely, inf⁡{x:G~(x)≥0.7}=1\inf\{x : \tilde G(x)\ge 0.7\} = 1 (since G~(1)=0.5<0.7\tilde G(1)=0.5 < 0.7 but G~(x)=1≥0.7\tilde G(x) = 1 \ge 0.7 for all x>1x>1, and the infimum of (1,∞)(1,\infty) is 11). So G~−1(0.7)=1\tilde G^{-1}(0.7) = 1. Now test the Key Lemma's equivalence G~−1(u)≤x  ⟺  u≤G~(x)\tilde G^{-1}(u) \le x \iff u \le \tilde G(x) at u=0.7,x=1u=0.7, x=1: the left side says G~−1(0.7)=1≤1\tilde G^{-1}(0.7) = 1 \le 1, true. The right side says 0.7≤G~(1)=0.50.7 \le \tilde G(1) = 0.5, false. The equivalence fails. Consequently the computation

P(X≤x)=P(U≤G~(x))\mathbb{P}(X \le x) = \mathbb{P}(U \le \tilde G(x))

breaks down at x=1x=1: with X=G~−1(U)X = \tilde G^{-1}(U), one finds P(X≤1)=P(U≤0.7)=0.7\mathbb{P}(X \le 1) = \mathbb{P}(U \le 0.7) = 0.7 directly from the definition of G~−1\tilde G^{-1} (since G~−1(u)≤1  ⟺  u≤0.7\tilde G^{-1}(u) \le 1 \iff u \le 0.7, as one checks: for u≤0.5u \le 0.5, G~−1(u)=0≤1\tilde G^{-1}(u)=0\le 1; for 0.5<u≤10.5<u\le 1... actually recomputing shows the induced law of XX has P(X≤1)=0.7\mathbb{P}(X\le 1) = 0.7), while the intended target law G~\tilde G specifies G~(1)=0.5\tilde G(1) = 0.5. These disagree: 0.7≠0.50.7 \ne 0.5. The method manufactures a random variable whose CDF is the right-continuous version of G~\tilde G (i.e., ordinary GG), not G~\tilde G itself. This is exactly why the definition of a CDF insists on right-continuity, and why the theorem's hypothesis on FF cannot be dropped: without it, F−1(U)F^{-1}(U) still produces some random variable, but its law is the right-continuous regularization of the target, not the (illegitimate) target itself.

Scope, edge cases & common traps

SituationWhat happensWhy
FF continuous & strictly increasingF−1F^{-1} is the ordinary inverse functionNo jumps, no flats: infimum coincides with unique solution
FF has jumps (discrete or mixed distributions)F−1F^{-1} is a step function; intervals of uu map to atomsLemma's equivalence still holds using only monotonicity + right-continuity
FF has flat stretches (gaps in support)Those xx-values are simply never returned by F−1F^{-1}inf⁡{x:F(x)≥u}\inf\{x: F(x)\ge u\} skips over flat regions automatically
FF not right-continuousMethod still defines a random variable, but its law is the right-continuous regularization of FF, not FF itselfSee counterexample above
Want F(X)∼Uniform(0,1)F(X) \sim \text{Uniform}(0,1) (integral transform)Requires FF continuousNeeded only for the "forward" direction, not for generating XX

The mathematician behind it

Origins · 1 minAndrey Nikolaevich Kolmogorov and how this was discovered
AN
Andrey Nikolaevich Kolmogorov
1903–1987 · Soviet Union

Kolmogorov built the measure-theoretic foundations of probability in his 1933 monograph Grundbegriffe der Wahrscheinlichkeitsrechnung, formalizing random variables as measurable functions and distributions via CDFs — the exact scaffolding on which the inverse transform method rests. While the specific simulation technique is a folk result crystallized through decades of use in statistics and computing, it is inseparable from Kolmogorov's framework: without a rigorous notion of CDF and measurable function, "generate XX by transforming UU" has no precise meaning. The generalized inverse and the probability integral transform were studied and used extensively across the mid-20th century, notably by statisticians analyzing goodness-of-fit tests (where F(X)∼Uniform(0,1)F(X)\sim \text{Uniform}(0,1) underlies the Kolmogorov–Smirnov test itself), tying the same idea to hypothesis testing as well as simulation.

History
- 1900 — Karl Pearson and contemporaries develop early goodness-of-fit ideas relying implicitly on transforming distributions.
- 1933 — Kolmogorov's axiomatic foundations formalize CDFs and random variables rigorously.
- 1933–1939 — Kolmogorov and Smirnov develop the probability integral transform in the context of nonparametric testing.
- 1940s–1950s — Early Monte Carlo work (Ulam, von Neumann, Metropolis) at Los Alamos popularizes simulation from uniforms, cementing the inverse transform as a standard sampling primitive.
- 1980s–present — The method becomes a textbook staple in simulation courses, underlying software random-variate generators for named distributions.
Does the inverse transform method require FF to be continuous?

No. The main theorem holds for every CDF FF — continuous, discrete, or mixed — as long as F−1F^{-1} is defined as the generalized inverse (infimum definition), not the ordinary function inverse. Continuity is only needed for the converse statement, the classical probability integral transform, which asserts that F(X)F(X) is uniform whenever X∼FX \sim F and FF is continuous. Generating a discrete random variable via X=F−1(U)X = F^{-1}(U) works exactly the same way as the continuous case; the proof uses only monotonicity and right-continuity of FF, both of which hold for every valid CDF by definition.

What if F−1F^{-1} has no closed form, like for the normal distribution?

The theorem is still true — X=F−1(U)X = F^{-1}(U) still has CDF FF — but in practice one needs a numerical or approximate algorithm to evaluate F−1F^{-1}, since Φ−1\Phi^{-1} (the normal quantile function) has no elementary closed form. Common workarounds include rational approximations (e.g. the Beasley–Springer–Moro algorithm), Newton's method applied to FF, or entirely different sampling techniques such as the Box–Muller transform or rejection sampling, which sidestep needing F−1F^{-1} explicitly. The theoretical guarantee of correctness, however, is unaffected by whether F−1F^{-1} is easy to compute.

How does this method handle a distribution with an atom, like a mixed continuous-discrete random variable?

Perfectly, and automatically. If FF has a jump at some point x0x_0 of size p=F(x0)−lim⁡x↑x0F(x)p = F(x_0) - \lim_{x\uparrow x_0}F(x), representing an atom P(X=x0)=p\mathbb{P}(X=x_0)=p, then the generalized inverse F−1F^{-1} maps an entire interval of uu-values of length pp onto the single point x0x_0. Since UU is uniform, the probability that UU lands in that interval is exactly pp, so X=F−1(U)X = F^{-1}(U) equals x0x_0 with probability exactly pp, matching the atom's mass. No special-casing is required; the single formula handles continuous parts and atoms simultaneously.

Is F−1F^{-1} always a non-decreasing function?

Yes. If u1<u2u_1 < u_2, then {x:F(x)≥u2}⊆{x:F(x)≥u1}\{x : F(x) \ge u_2\} \subseteq \{x : F(x) \ge u_1\}, since satisfying the stronger inequality F(x)≥u2F(x)\ge u_2 implies F(x)≥u1F(x) \ge u_1. Taking infima, a smaller set has an infimum that is at least as large (or equal), so F−1(u1)≤F−1(u2)F^{-1}(u_1) \le F^{-1}(u_2). This monotonicity also guarantees F−1F^{-1} is Borel measurable, which is what makes X=F−1(U)X = F^{-1}(U) a legitimate random variable rather than merely a formula.

Why do we specifically need UU to be Uniform(0,1), rather than some other reference distribution?

The uniform distribution on (0,1)(0,1) is the unique distribution whose own CDF is the identity function t↦tt \mapsto t on (0,1)(0,1). This is exactly what makes the final step of the proof — P(U≤F(x))=F(x)\mathbb{P}(U \le F(x)) = F(x) — hold with no extra work: the probability that UU falls below any threshold t∈(0,1)t\in(0,1) equals tt itself. Using any other reference distribution GG for the input would require composing with GG's own CDF, i.e., using F−1(G(V))F^{-1}(G(V)) for a V∼GV\sim G, which is a valid but unnecessarily complicated detour back to the uniform case.

Can this method be extended to generate random vectors, not just scalars?

Directly, no — there is no single CDF for a vector in the same ordered sense, so no single quantile function. However, the idea generalizes via the chain rule for densities: factor a joint distribution into a marginal and a sequence of conditionals, and apply the inverse transform method one coordinate at a time using each conditional CDF. This "conditional inverse transform" or "Rosenblatt transform" is a genuine multivariate generalization, foreshadowing more advanced simulation techniques used in Monte Carlo methods for multivariate models.

What is the connection between this method and Monte Carlo integration?

Monte Carlo methods estimate expectations like E[g(X)]\mathbb{E}[g(X)] by averaging gg evaluated at simulated samples of XX. The inverse transform method is one of the most direct ways to produce those samples: if F−1F^{-1} is computable (in closed form or numerically), one draws U1,…,UnU_1,\dots,U_n uniformly, sets Xi=F−1(Ui)X_i = F^{-1}(U_i), and averages g(Xi)g(X_i). Because the method guarantees XiX_i has exactly the target law FF, the resulting Monte Carlo estimator is unbiased for E[g(X)]\mathbb{E}[g(X)] by the law of large numbers, making the inverse transform a foundational building block for simulation-based estimation.

Before this