Quant Memo
Advanced

Characteristic Functions

A complete re-encoding of a distribution as a function of frequency. It turns the messy business of adding independent random variables into plain multiplication, always exists even when the moment generating function does not, and is the machinery behind the central limit theorem.

Prerequisites: Moment Generating Functions, Expectation, Variance & Moments

Adding independent random things is the most common operation in finance — a portfolio is a sum of positions, a monthly return is a sum of daily ones, a desk's PnL is a sum of trades. And it is genuinely awkward. To get the distribution of a sum you must convolve the two distributions: for every possible total, integrate over every way of splitting that total between the two pieces. Do it twice and the algebra is unpleasant. Do it a thousand times and it is hopeless. Characteristic functions make that operation into multiplication.

The trick you already know

Before logarithms, multiplying two seven-digit numbers by hand was a chore. Then someone noticed you could translate each number into its logarithm, add the logs (easy), and translate back. Nothing about multiplication changed. The work moved to a coordinate system where it was trivial.

Characteristic functions do the same thing for probability distributions. Convolution is the hard operation; there is a translation into "frequency space" where convolution becomes ordinary multiplication; and the translation is reversible, so you can always come home with your answer. Same idea as logarithms, one level up.

laws of X, Y the hard side law of X + Y what you want φX(t), φY(t) the easy side φX(t)·φY(t) one product convolution multiply E[e^itX] invert
The detour is shorter than the direct road. Translating both distributions into characteristic functions, multiplying, and translating back beats computing a convolution — and for sums of many pieces it is not close.

The definition, one symbol at a time

The characteristic function of a random variable XX is

φX(t)=E ⁣[eitX],tR.\varphi_X(t) = E\!\left[ e^{itX} \right], \qquad t \in \mathbb{R}.

Four symbols to name. φ\varphi (phi) is the function itself. tt is a plain real number you get to choose — think of it as a dial, a "frequency". ii is the imaginary unit, the number with i2=1i^2 = -1. And E[]E[\cdot] is the ordinary expected value.

The only unfamiliar piece is eitXe^{itX}, and it is more concrete than it looks. Euler's identity says eiθ=cosθ+isinθe^{i\theta} = \cos\theta + i\sin\theta, which is exactly a unit arrow rotated by the angle θ\theta. So eitXe^{itX} says: take the value XX came out as, multiply it by your dial setting tt, and spin an arrow of length one by that many radians.

In plain English, φX(t)\varphi_X(t) is the average of all those arrows, one per possible outcome, weighted by probability.

That reading gives you two properties for free. Set t=0t = 0: every arrow points the same way (angle zero), so the average arrow has full length and φX(0)=1\varphi_X(0) = 1. For any other tt, you are averaging arrows of length one, so the result can never be longer than one: φX(t)1|\varphi_X(t)| \le 1. If the outcomes are tightly bunched, small dials leave the arrows nearly aligned and φ|\varphi| stays near 1; if the outcomes are spread out, even a modest dial fans the arrows around the circle and they cancel.

small t: arrows agree large t: arrows cancel |φ| close to 1 |φ| close to 0
The characteristic function is the average of unit arrows spun by angle tX. The thick arrow is that average. Turning the dial t up spreads the arrows, and how fast |φ| decays is a direct read-out of how spread out the distribution is.

The property that does the work

If XX and YY are independent, then

φX+Y(t)=φX(t)φY(t).\varphi_{X+Y}(t) = \varphi_X(t)\,\varphi_Y(t).

The characteristic function of a sum is the product of the characteristic functions. The reason is one line: E[eit(X+Y)]=E[eitXeitY]E[e^{it(X+Y)}] = E[e^{itX} e^{itY}], and independence lets the expectation of a product split into the product of expectations. Convolution on the hard side, a single multiplication on the easy side.

The other property that makes this useful is uniqueness: two random variables with the same characteristic function have the same distribution, full stop. So if you multiply two characteristic functions and recognise the answer, you have identified the sum's distribution without ever touching an integral.

Worked example 1: adding two normal returns

A strategy's annual return XX is normal with mean 0.050.05 and standard deviation 0.200.20. An independent strategy YY is normal with mean 0.030.03 and standard deviation 0.150.15. What is the distribution of the combined return X+YX + Y?

The characteristic function of a normal with mean μ\mu and variance σ2\sigma^2 is

φ(t)=exp ⁣(iμt12σ2t2).\varphi(t) = \exp\!\left( i\mu t - \tfrac{1}{2}\sigma^2 t^2 \right).

Fill in the two variances: 0.202=0.040.20^2 = 0.04 and 0.152=0.02250.15^2 = 0.0225. So

φX(t)=exp ⁣(0.05it0.02t2),φY(t)=exp ⁣(0.03it0.01125t2).\varphi_X(t) = \exp\!\left( 0.05\,i t - 0.02\,t^2 \right), \qquad \varphi_Y(t) = \exp\!\left( 0.03\,i t - 0.01125\,t^2 \right).

Multiply them. Multiplying exponentials means adding exponents:

φX+Y(t)=exp ⁣((0.05+0.03)it(0.02+0.01125)t2)=exp ⁣(0.08it0.03125t2).\varphi_{X+Y}(t) = \exp\!\left( (0.05 + 0.03)\,i t - (0.02 + 0.01125)\,t^2 \right) = \exp\!\left( 0.08\,it - 0.03125\,t^2 \right).

Compare with the template: the mean is 0.080.08 and 12σ2=0.03125\tfrac{1}{2}\sigma^2 = 0.03125, so σ2=0.0625\sigma^2 = 0.0625 and σ=0.0625=0.25\sigma = \sqrt{0.0625} = 0.25.

The sum is normal with mean 0.080.08 and standard deviation 0.250.25. Notice what did not happen: the standard deviations did not add, since 0.20+0.15=0.350.20 + 0.15 = 0.35, not 0.250.25. Variances add; volatilities do not. The characteristic function makes that visible in one line, because the variance sits in the exponent where addition happens.

Drag the standard deviation slider below and watch the density widen. The characteristic function moves the opposite way — a wider distribution in xx gives a faster-decaying φ\varphi in tt, because spread-out outcomes fan the arrows apart sooner.

Distribution · normal
-2.000.002.00μvalue →
Within ±1σ 68.3%mean μ 0.00std σ 1.00

Worked example 2: reading moments off the curve

Characteristic functions also store the moments. Differentiate at t=0t = 0:

E[X]=φ(0)i,E[X2]=φ(0).E[X] = \frac{\varphi'(0)}{i}, \qquad E[X^2] = -\,\varphi''(0).

Each derivative at zero pulls out one more moment, with factors of ii to keep track of. Test it on a fair coin scored as X=1X = 1 for heads and X=0X = 0 for tails.

Step 1, build φ\varphi from the definition. Two outcomes, each with probability 0.50.5:

φ(t)=0.5eit0+0.5eit1=0.5+0.5eit.\varphi(t) = 0.5\,e^{it \cdot 0} + 0.5\,e^{it \cdot 1} = 0.5 + 0.5\,e^{it}.

Step 2, check the sanity condition: φ(0)=0.5+0.5=1\varphi(0) = 0.5 + 0.5 = 1. ✓

Step 3, differentiate once. The derivative of eite^{it} with respect to tt is ieiti e^{it}, so φ(t)=0.5ieit\varphi'(t) = 0.5\,i\,e^{it} and φ(0)=0.5i\varphi'(0) = 0.5\,i. Then E[X]=0.5i/i=0.5E[X] = 0.5i / i = 0.5. ✓ — a fair coin scores half a point on average.

Step 4, differentiate again: φ(t)=0.5i2eit=0.5eit\varphi''(t) = 0.5\,i^2 e^{it} = -0.5\,e^{it}, so φ(0)=0.5\varphi''(0) = -0.5 and E[X2]=0.5E[X^2] = 0.5. That is right, because XX is 0 or 1 so X2=XX^2 = X.

Step 5, assemble the variance: Var(X)=E[X2](E[X])2=0.50.25=0.25\operatorname{Var}(X) = E[X^2] - (E[X])^2 = 0.5 - 0.25 = 0.25, giving a standard deviation of 0.50.5. ✓ Everything matches the answers you would get directly, but obtained by differentiating a single function.

Worked example 3: the distribution that laughs at averaging

Here is the payoff for using characteristic functions instead of moment generating functions. The Cauchy distribution has such fat tails that its mean does not exist and its moment generating function is infinite for every t0t \ne 0. Its characteristic function exists and is beautifully simple:

φ(t)=et.\varphi(t) = e^{-|t|}.

Take nn independent Cauchy draws and average them: Mn=1n(X1++Xn)M_n = \tfrac{1}{n}(X_1 + \cdots + X_n). Scaling a variable by 1/n1/n replaces tt with t/nt/n inside φ\varphi, and independence turns the sum into a product, so

φMn(t)=[φ ⁣(tn)]n=[et/n]n=et=φ(t).\varphi_{M_n}(t) = \left[ \varphi\!\left( \tfrac{t}{n} \right) \right]^{n} = \left[ e^{-|t|/n} \right]^{n} = e^{-|t|} = \varphi(t).

Three symbols of algebra and the conclusion is startling: the average of a million Cauchy draws has exactly the same distribution as a single draw. Averaging buys you nothing at all. The law of large numbers fails, error bars never shrink, and no amount of data helps. This is not an exotic curiosity — it is the clean warning about what fat tails do to estimation.

φX(t)=E[eitX]\varphi_X(t) = E[e^{itX}] is the distribution rewritten in frequency coordinates. It always exists (you are averaging arrows of length 1), it determines the distribution uniquely, and for independent variables it turns sums into products. Those three facts are the whole toolkit.

What this means in practice

  • Proving the central limit theorem. Expand φ\varphi for a standardised sum, multiply nn copies, and the expression collapses to et2/2e^{-t^2/2} — the characteristic function of a standard normal. Lévy's continuity theorem turns that pointwise limit into convergence in distribution. That is the whole proof of the CLT, in about six lines.
  • Pricing under jumps and stochastic vol. Heston, Variance-Gamma and Merton jump-diffusion have no closed-form density but a clean closed-form characteristic function. Carr-Madan and COS pricing transform the payoff, multiply, and invert numerically — the diagram above, run on a computer. See Heston and jump diffusion.
  • Building distributions from parts. Compound Poisson losses, sums of factors and mixture models are all assembled by manipulating characteristic functions and inverting once at the end.
  • Fat-tail diagnostics. How fast φ(t)|\varphi(t)| decays near zero encodes tail behaviour; a kink at the origin, as in ete^{-|t|}, signals tails so heavy the mean is undefined.

The product rule needs independence, and it runs one way only. Applying φX+Y=φXφY\varphi_{X+Y} = \varphi_X \varphi_Y to correlated variables is simply wrong: for correlated normals the variance is σX2+σY2+2ρσXσY\sigma_X^2 + \sigma_Y^2 + 2\rho\sigma_X\sigma_Y, and the naive product silently drops the covariance term. The reverse trap is subtler — φX+Y=φXφY\varphi_{X+Y} = \varphi_X\varphi_Y does not prove independence; dependent pairs exist that satisfy it. The other frequent slip is treating characteristic and moment generating functions as interchangeable. A moment generating function can be infinite (Cauchy, lognormal past a point), so a proof leaning on it quietly assumes tails your data may not have. The characteristic function never has that problem.

When a problem says "find the distribution of a sum", reach for characteristic functions before attempting the convolution integral. Recognising the product as a known template — normal, Poisson, gamma, Cauchy — usually finishes the question outright.

Related concepts

Practice in interviews

Further reading

  • Billingsley, Probability and Measure (ch. 26)
  • Durrett, Probability: Theory and Examples (ch. 3.3)
ShareTwitterLinkedIn