Tutorials › Exam ASTAM - Advanced Short-Term Actuarial Mathematics › FFT Calculation Of Compound Aggregate Probabilities

Exam ASTAM · Aggregate Loss Models · Tutorial 149 of 979

FFT Calculation Of Compound Aggregate Probabilities

Use the discrete Fourier transform to calculate compound aggregate probabilities, while controlling lattice indexing, wraparound, and truncation error.

Intermediate 12 min read

What You'll Learn

  • Represent a lattice severity distribution as a probability-generating polynomial.
  • Evaluate a compound aggregate transform by applying the count model’s probability-generating function.
  • Recover aggregate probabilities with the inverse discrete Fourier transform.
  • Choose a transform length that prevents finite-support probabilities from wrapping around.
  • Distinguish numerical normalization from correction for a truncated count distribution.

Why Use a Fourier Transform for Aggregate Loss?

For a discrete severity distribution, aggregate probabilities can be calculated by repeated convolution. A discrete Fourier transform (DFT) provides another route: it turns convolution into multiplication. This can make calculations efficient when the severity support or the number of convolutions is large. The method is exact for finite-support inputs when the transform is sufficiently padded; if the chosen transform is too short, probabilities wrap around and appear at the wrong aggregate amounts.

Let \(N\) be the claim count, and let \(X_1,X_2,\ldots\) be independent, identically distributed claim severities, independent of \(N\). The aggregate loss is \(S=\sum_{i=1}^{N}X_i\), with \(S=0\) when \(N=0\). Suppose severities lie on a lattice with spacing \(h>0\), so that \(P(X_i=jh)=p_j\). The lattice index \(j\), rather than the monetary amount \(jh\), is the index used in the transform.

Definition: The severity probability-generating polynomial is \(P(z)=\sum_{j=0}^{J}p_jz^j\), where \(p_j\geq 0\) and \(\sum_{j=0}^{J}p_j=1\). If the count probability-generating function is \(G_N(w)=E[w^N]\), then the aggregate probability-generating function is \(G_S(z)=G_N(P(z))\). The coefficient of \(z^k\) in \(G_S(z)\) is \(P(S=kh)\).

A zero severity mass \(p_0\) is allowed, for example when a discretization assigns some probability to zero. The aggregate can also have mass at zero because the count can be zero. These are separate contributions, both included in \(G_N(P(z))\).

The DFT Calculation

For a transform length \(M\), let \(\omega_r=\exp(2\pi i r/M)\), for \(r=0,\ldots,M-1\). The forward DFT evaluates a polynomial at these \(M\) roots of unity. Thus, if \(P(z)\) is the severity polynomial, calculate \(P(\omega_r)\) and then apply the count probability-generating function to each value:

$$ A_r=G_N\!\left(P(\omega_r)\right),\qquad r=0,\ldots,M-1. $$

The aggregate probabilities are recovered by the inverse DFT. If \(a_k\) denotes the resulting probability at lattice index \(k\), the inverse is

$$ a_k=\frac{1}{M}\sum_{r=0}^{M-1}A_r\exp\!\left(-\frac{2\pi i rk}{M}\right), \qquad k=0,\ldots,M-1. $$

In practice, an FFT is an efficient algorithm for carrying out the forward or inverse DFT. The mathematical calculation is the same; the FFT does not change the required padding or remove truncation error.

Why Padding Prevents Wraparound

A DFT of length \(M\) recovers coefficients modulo \(M\). In other words, a true coefficient at index \(k+M\) contributes to the reported index \(k\). This is called wraparound or aliasing. It can yield a probability vector that sums to one and still assigns probabilities to the wrong amounts.

Padding rule: If the aggregate has finite maximum lattice index \(K\), choose \(M>K\). Then the possible aggregate indices \(0,\ldots,K\) are distinct modulo \(M\), so the inverse DFT returns the true coefficients without wraparound. For a severity supported on indices \(0,\ldots,J\) and a count bounded above by \(n_{\max}\), \(K=n_{\max}J\), so \(M\geq n_{\max}J+1\) suffices.

When the count distribution has unbounded support, such as a Poisson distribution, no finite \(M\) can exactly contain the entire aggregate distribution. One approach is to truncate the count at a stated maximum and quantify the omitted count probability. The resulting finite-support calculation is exact for the truncated model, not for the original unbounded model. Padding prevents wraparound within that truncated model; it does not restore the omitted tail.

Worked Example: A Binomial Count and a Short DFT

Worked Example: A Binomial Count and a Short DFT

A hypothetical coverage produces a claim count \(N\sim\operatorname{Binomial}(2,0.5)\). Each claim severity is independently \(0\) or \(1\) lattice unit, each with probability \(0.5\). Calculate the aggregate probabilities using a DFT. Use \(M=4\), and verify the result.

Method and padding. The severity polynomial is \(P(z)=0.5+0.5z\). The count probability-generating function is \(G_N(w)=(0.5+0.5w)^2\). The largest possible aggregate index is \(2\), so \(M=4>2\) is sufficient.

The four roots are \(1,i,-1,-i\). The severity transform values are \(P(1)=1\), \(P(i)=(1+i)/2\), \(P(-1)=0\), and \(P(-i)=(1-i)/2\). Applying the count probability-generating function gives

$$ A_0=1,\qquad A_1=\left(\frac{3+i}{4}\right)^2=\frac{1}{2}+\frac{3}{8}i,\qquad A_2=\left(\frac{1}{2}\right)^2=\frac{1}{4},\qquad A_3=\frac{1}{2}-\frac{3}{8}i. $$

For index \(k=0\), the inverse DFT gives \(a_0=(1+1/2+1/4+1/2)/4=9/16\). For \(k=1\), the four terms in the inverse sum are \(1\), \(3/8-1/2i\), \(-1/4\), and \(3/8+1/2i\). Their sum is \(3/2\), so \(a_1=(3/2)/4=3/8=6/16\).

For \(k=2\), the terms are \(1\), \(-1/2-3/8i\), \(1/4\), and \(-1/2+3/8i\). They sum to \(1/4\), giving \(a_2=1/16\). There is no mass at index \(3\). Thus \(P(S=0)=9/16\), \(P(S=1)=6/16\), and \(P(S=2)=1/16\).

Check. The probabilities sum to \((9+6+1)/16=1\). Also, \(G_S(z)=(0.75+0.25z)^2\), whose coefficients are \(9/16,6/16,1/16\), confirming the inverse-transform result. The method avoids explicitly enumerating each possible claim count and severity combination.

Worked Example: Detecting Wraparound

Worked Example: Detecting Wraparound

A hypothetical portfolio has exactly two claims. Each severity is \(1\) or \(2\) dollars, each with probability \(0.5\). Find the aggregate distribution and show what goes wrong if an FFT of length \(M=4\) is used.

Correct support calculation. The severity polynomial is \(P(z)=0.5z+0.5z^2\), and the aggregate polynomial is \(P(z)^2\), because the count is exactly two. Expanding gives

$$ P(z)^2=(0.5z+0.5z^2)^2 =0.25z^2+0.50z^3+0.25z^4. $$

The aggregate probabilities are therefore \(0.25\) at \(2\) dollars, \(0.50\) at \(3\) dollars, and \(0.25\) at \(4\) dollars. The maximum lattice index is \(K=4\), so the padding rule requires \(M\geq5\). A convenient FFT length is \(M=8\).

What an insufficient length does. With \(M=4\), index \(4\) is congruent to index \(0\) modulo \(4\). The inverse DFT therefore reports \(0.25\) at index \(0\), \(0.25\) at index \(2\), and \(0.50\) at index \(3\). The reported probabilities still sum to \(1\), but the \(0.25\) probability at \(4\) dollars has been placed at \(0\) dollars.

Check. With \(M=8\), indices \(2,3,4\) are distinct modulo \(8\), so the inverse transform returns the three correct probabilities. This example shows why probability normalization alone cannot detect wraparound.

Worked Example: Truncating an Unbounded Count

Worked Example: Truncating an Unbounded Count

A hypothetical portfolio has \(N\sim\operatorname{Poisson}(1)\). Each claim has deterministic severity of \(1\) lattice unit. To obtain a finite FFT calculation, condition on \(N\leq3\). Find the conditional aggregate probabilities using \(M=4\), and state the omitted count probability.

Truncation and normalization. For a Poisson random variable with mean \(1\), the probabilities for counts \(0,1,2,3\) are \(e^{-1}, e^{-1}, e^{-1}/2, e^{-1}/6\). Their sum is \(e^{-1}(1+1+1/2+1/6)=8/(3e)\). Dividing each retained probability by this sum gives the conditional probabilities

$$ P(N=0\mid N\leq3)=\frac{3}{8},\quad P(N=1\mid N\leq3)=\frac{3}{8},\quad P(N=2\mid N\leq3)=\frac{3}{16},\quad P(N=3\mid N\leq3)=\frac{1}{16}. $$

The severity polynomial is \(P(z)=z\). Since severity is one unit per claim, the aggregate \(S\) equals \(N\). The maximum retained aggregate index is \(3\), so \(M=4\) is sufficient. At roots \(1,i,-1,-i\), the aggregate transform values are

$$ A_0=1,\qquad A_1=\frac{3}{16}+\frac{5}{16}i,\qquad A_2=\frac{1}{8},\qquad A_3=\frac{3}{16}-\frac{5}{16}i. $$

For example, \(A_1=3/8+(3/16)i-(1/16)i=3/16+5i/16\), using the probabilities at indices \(0,1,2,3\). Applying the inverse DFT gives \(a_0=3/8\): the sum of the four transform values is \(3/2\), and \((3/2)/4=3/8\). For \(a_1\), the inverse-sum terms are \(1\), \(5/16-3i/16\), \(-1/8\), and \(5/16+3i/16\); their sum is \(3/2\), so \(a_1=3/8\).

For \(a_2\), the alternating sum is \(1-A_1+A_2-A_3=3/4\), giving \(a_2=3/16\). The remaining inverse coefficient is \(a_3=1/16\). These probabilities sum to \(1\), as required for the conditional model.

The omitted probability under the original Poisson model is \(P(N>3)=1-e^{-1}(1+1+1/2+1/6)=1-8/(3e)\), approximately \(0.0190\) to four decimal places. The FFT has calculated the distribution conditional on \(N\leq3\); it has not allocated this omitted probability to any aggregate amount.

Normalization, Checks, and Common Traps

For a correctly specified severity distribution, \(P(1)=\sum_jp_j=1\). Therefore the aggregate transform at the zero-frequency root is \(A_0=G_N(1)=1\), provided the count probabilities sum to one. This is a useful input check. After inversion, the probabilities should be real, nonnegative apart from negligible numerical roundoff, and sum to one when the calculation has full support or is for a normalized truncated model.

Small imaginary parts or tiny negative values can arise from finite-precision arithmetic. They may be numerical noise, but material negative probabilities or a substantial normalization discrepancy call for investigation: check the input probabilities, the forward and inverse transform conventions, padding, and the count model before changing the output.

1
Set the lattice and input probabilities.
Specify the lattice spacing \(h\), the severity indices \(j\), and probabilities \(p_j\). Check that the probabilities sum to one.
2
Choose the transform length.
For a bounded count and bounded severity, find the maximum aggregate index \(K\) and take \(M>K\). For an unbounded count, state the truncation and its omitted probability.
3
Transform and compound.
Evaluate the severity polynomial at the \(M\) roots of unity, then apply the count probability-generating function to each value.
4
Invert and check.
Use the inverse DFT, map each index \(k\) to amount \(kh\), and check support, total probability, and numerical artifacts.

Common exam trap: treating a sum of one as proof that the answer is correct. With too-short padding, the inverse transform can fold a positive-index probability into index zero while preserving the total. For example, using \(M=4\) in the preceding wraparound example assigns \(0.25\) to index \(0\) instead of index \(4\); the mistaken vector still sums to \(1\). The correction is to calculate the maximum aggregate index first and require \(M>K\).

A second trap is to renormalize a truncated Poisson calculation and then describe it as the exact original aggregate distribution. Normalizing retained count probabilities makes them a valid conditional model, but it does not represent the omitted tail. State whether the output is conditional on the truncation, and report the omitted count probability when approximating the unbounded model.

Key takeaway: The DFT compounds a discrete severity distribution by evaluating its probability-generating polynomial at roots of unity and applying the count probability-generating function. The inverse transform gives the aggregate probabilities only when the transform length prevents wraparound; for an unbounded count, truncation and its error must be stated separately.

Check Your Understanding

For each problem, identify the relevant support or truncation before interpreting the FFT output.

  1. A claim count is \(\operatorname{Binomial}(2,0.5)\). Each claim is zero lattice units with probability \(0.2\) and one unit with probability \(0.8\). Give the aggregate probabilities and a sufficient minimum integer transform length. (Answer: \(P(S=0)=0.36\), \(P(S=1)=0.48\), \(P(S=2)=0.16\); \(M=3\).)
  2. Exactly two claims have independent severities of \(1\) or \(3\) dollars, each with probability \(0.5\). Give the aggregate distribution and the smallest integer \(M\) that prevents wraparound. (Answer: \(P(S=2)=0.25\), \(P(S=4)=0.50\), \(P(S=6)=0.25\); \(M=7\).)
  3. A count is \(\operatorname{Binomial}(3,0.2)\), and each claim has deterministic severity \(2\) dollars. Give the aggregate probabilities and the smallest sufficient integer transform length when the lattice spacing is \(2\) dollars. (Answer: \(P(S=0)=0.512\), \(P(S=2)=0.384\), \(P(S=4)=0.096\), \(P(S=6)=0.008\); \(M=4\).)
  4. A count is \(\operatorname{Poisson}(0.5)\), with deterministic severity of \(1\) unit. If the calculation retains only counts \(0,1,2\), what is the omitted count probability? Does increasing the FFT length alone eliminate it? (Answer: \(P(N>2)=1-e^{-0.5}(1+0.5+0.5^2/2)\approx0.0144\); no, increasing \(M\) does not restore omitted count mass.)
Clinical Biostats