Tutorials › Exam ASTAM - Advanced Short-Term Actuarial Mathematics › Worked Compound-Loss Simulation And Validation

Exam ASTAM · Random Variate Generation · Tutorial 616 of 979

Worked Compound-Loss Simulation And Validation

Work through compound-loss simulations from uniform inputs to aggregate totals, and learn how to check the results against frequency, severity, and aggregate-loss expectations.

Beginner 11 min read

What You'll Learn

  • Convert uniform draws into Poisson claim counts using cumulative probabilities.
  • Generate discrete claim severities with the inverse-CDF method.
  • Aggregate claim payments by policy and calculate simulated portfolio summaries.
  • Derive theoretical compound-loss means and variances for validation.
  • Compare simulated claim counts and aggregate moments with their model benchmarks.
  • Construct an empirical CDF and recognize common simulation errors.

From Uniform Draws to Aggregate Losses

A compound-loss simulation has two linked random components: the number of claims and the amount of each claim. A simulated aggregate is credible only if both components have been generated from the intended models and combined consistently. The checks are not limited to whether the arithmetic is correct: a run should also be compared with theoretical moments and probabilities implied by its assumptions.

Throughout the examples, amounts are hypothetical dollar losses measured at the same valuation date. There is no interest or mortality adjustment. For each simulated policy, let \(N\) be its claim count and let \(X_1,\ldots,X_N\) be its claim severities. The aggregate loss is \(S=\sum_{j=1}^{N}X_j\), with \(S=0\) when \(N=0\).

Definition: A compound frequency-severity model specifies a distribution for the claim count \(N\) and a severity distribution for each claim. Conditional on \(N\), the claim severities are assumed independent and identically distributed, and they are independent of \(N\). The aggregate loss is \(S=\sum_{j=1}^{N}X_j\).

For a discrete distribution, the inverse-CDF method assigns a value by locating a uniform draw in the intervals formed by cumulative probabilities. For example, if the severity is $500 with probability 0.5, $1,000 with probability 0.3, and $2,000 with probability 0.2, the cumulative probabilities are 0.5, 0.8, and 1. A uniform draw below 0.5 selects $500; a draw from 0.5 up to 0.8 selects $1,000; and a draw from 0.8 up to 1 selects $2,000.

1
Generate frequency.
Convert a uniform draw into a claim count using the frequency model’s cumulative probabilities.
2
Generate severities.
For each claim, use a separate uniform draw and the severity distribution’s inverse CDF.
3
Aggregate.
Add the simulated severities for each policy, assigning zero when its claim count is zero.
4
Validate.
Compare simulated counts, moments, and distribution summaries with their theoretical counterparts.

Theoretical Benchmarks for a Compound Model

Suppose the claim count \(N\) has finite mean and variance, and the severities are independent of \(N\), identically distributed, and have finite variance. Write \(m=E[X]\) and \(s^2=\operatorname{Var}(X)\). Conditioning on the count gives \(E[S\mid N]=Nm\) and \(\operatorname{Var}(S\mid N)=Ns^2\).

The law of total expectation gives \(E[S]=E[N]m\). The law of total variance separates variation in severity from variation in the number of claims:

$$ \begin{aligned} \operatorname{Var}(S) &=E[\operatorname{Var}(S\mid N)]+\operatorname{Var}(E[S\mid N])\\ &=E[N]s^2+\operatorname{Var}(N)m^2. \end{aligned} $$

This justification explains why both the frequency variance and severity variation matter. For a Poisson frequency with parameter \(\lambda\), \(E[N]=\operatorname{Var}(N)=\lambda\). Since \(E[X^2]=s^2+m^2\), it follows that \(E[S]=\lambda E[X]\) and \(\operatorname{Var}(S)=\lambda E[X^2]\). The Poisson-specific simplification does not apply to a non-Poisson frequency model; use the general formula instead.

Worked Example: Simulating Six Poisson Policies

A hypothetical portfolio has independent policy claim counts \(N\sim\operatorname{Poisson}(1)\). Claim severities are independent of counts and have the discrete distribution $500 with probability 0.5, $1,000 with probability 0.3, and $2,000 with probability 0.2. Use the frequency uniforms \(0.50,0.20,0.80,0.70,0.95,0.35\). In policy order, use severity uniforms \(0.20;\) none; \(0.55,0.95;\) \(0.75;\) \(0.10,0.65,0.85;\) none. Generate the six aggregate losses and check the total claim count.

Method. Apply inverse CDFs in policy order, using a severity draw only for each claim actually generated. For a Poisson(1) count, the probabilities for counts 0, 1, 2, and 3 are approximately 0.3679, 0.3679, 0.1839, and 0.0613. The cumulative boundaries are therefore 0.3679, 0.7358, 0.9197, and 0.9810.

The first frequency draw, 0.50, lies between 0.3679 and 0.7358, so policy 1 has one claim. The second draw, 0.20, is below 0.3679, so policy 2 has no claims. The third draw, 0.80, lies between 0.7358 and 0.9197, so policy 3 has two claims. The fourth draw, 0.70, gives one claim. The fifth draw, 0.95, lies between 0.9197 and 0.9810, giving three claims. The final draw, 0.35, gives no claims. The resulting frequencies are \(1,0,2,1,3,0\), totaling 7 claims.

For severities, the first policy’s draw 0.20 selects $500. Policy 3’s draws 0.55 and 0.95 select $1,000 and $2,000. Policy 4’s draw 0.75 selects $1,000. Policy 5’s draws 0.10, 0.65, and 0.85 select $500, $1,000, and $2,000.

The aggregate losses are therefore \(S_1=500\), \(S_2=0\), \(S_3=1{,}000+2{,}000=3{,}000\), \(S_4=1{,}000\), \(S_5=500+1{,}000+2{,}000=3{,}500\), and \(S_6=0\). Their total is \(8{,}000\), which also equals the sum of the seven generated claim severities. The simulated mean aggregate is \(8{,}000/6=\$1{,}333.33\), rounded to the nearest cent.

Check. The simulated claim count is 7, compared with an expected count of \(6(1)=6\). A difference of one claim is plausible in a run of only six policies; it is not, by itself, evidence of a coding error. The aggregate total agrees with the claim-level sum.

Common mistake avoided: Treating each Poisson probability as a separate interval would misclassify draws. The frequency intervals must use cumulative probabilities; for example, 0.80 selects two claims, not a count chosen by comparing it with the probability of exactly two claims.

Checking Simulated Moments

A sample mean or variance will not generally equal its theoretical value, especially in a small run. The purpose of a moment check is to identify inconsistencies and assess whether a result is broadly plausible, not to demand exact agreement. In a larger simulation, summaries should usually stabilize around their theoretical benchmarks.

Worked Example: Validating a Compound Binomial Run

A hypothetical warranty covers two independent component opportunities per contract. Each opportunity produces a claim with probability 0.5, so \(N\sim\operatorname{Binomial}(2,0.5)\). Each claim independently costs $100 or $300 with equal probability. Four contracts have frequency uniforms \((0.20,0.70)\), \((0.10,0.40)\), \((0.80,0.90)\), and \((0.60,0.30)\). A draw below 0.5 produces a claim. The severity uniforms for the resulting claims, in order, are \(0.80;\ 0.10,0.60;\) none; and \(0.40\). Simulate the aggregates and compare their mean and empirical variance with theoretical values.

Method. The first contract has one claim because only 0.20 is below 0.5; its severity draw 0.80 selects $300. The second has two claims, with severities $100 and $300, for an aggregate of $400. The third has no claims and aggregate zero. The fourth has one claim of $100. The four aggregate losses are thus \(300,400,0,100\), with total $800 and simulated mean \(800/4=\$200\).

For one claim, \(E[X]=(100+300)/2=\$200\), \(E[X^2]=(10{,}000+90{,}000)/2=50{,}000\), and \(\operatorname{Var}(X)=50{,}000-200^2=10{,}000\). For the binomial count, \(E[N]=2(0.5)=1\) and \(\operatorname{Var}(N)=2(0.5)(0.5)=0.5\). The theoretical aggregate mean is \(1(200)=\$200\). Its variance is

$$ \operatorname{Var}(S)=1(10{,}000)+0.5(200)^2=30{,}000. $$

For the simulated empirical variance, use the average squared deviation across the four contracts: \(((300-200)^2+(400-200)^2+(0-200)^2+(100-200)^2)/4=(10{,}000+40{,}000+40{,}000+10{,}000)/4=25{,}000\). The observed mean matches the model mean exactly, while the empirical variance is $25,000 versus the theoretical $30,000. Both calculations are consistent; a four-contract sample need not reproduce the theoretical variance exactly.

Common mistake avoided: Comparing aggregate variance with severity variance alone omits variation in claim counts. Here the frequency contribution is \(0.5(200)^2=20{,}000\), so the aggregate variance is $30,000, not $10,000.

Checking Counts and the Empirical Distribution

Useful validation summaries include the average claim count, the observed proportions of zero-, one-, and multiple-claim policies, the aggregate mean and variance, and the empirical CDF of aggregate losses. The empirical CDF at \(s\) is the fraction of simulated aggregates no greater than \(s\). These summaries reveal different kinds of problems: correct aggregate means can conceal an incorrect frequency distribution, while a wrong empirical zero-loss proportion may point to a frequency-generation or aggregation bug.

Worked Example: Reading an Empirical Aggregate CDF

A hypothetical insurer simulates five policies with \(N\sim\operatorname{Poisson}(0.5)\), using the frequency uniforms \(0.20,0.70,0.95,0.40,0.88\). Each claim has a fixed severity of $1,000. Find the simulated aggregates, the empirical CDF at $1,000, and the observed zero-claim proportion; compare the latter with the model probability.

Method. For a Poisson(0.5) count, the probabilities for 0, 1, 2, and 3 claims are approximately 0.6065, 0.3033, 0.0758, and 0.0126. The cumulative boundaries are approximately 0.6065, 0.9098, 0.9856, and 0.9982. Thus 0.20 and 0.40 each give zero claims; 0.70 and 0.88 each give one claim; and 0.95 gives two claims. The frequency sequence is \(0,1,2,0,1\), and the aggregate sequence is \(0,1{,}000,2{,}000,0,1{,}000\).

Three of the five aggregates are no greater than $1,000, so the empirical CDF is \(\widehat F_S(1{,}000)=3/5=0.6000\). Two of five policies have zero claims, giving an observed zero-claim proportion of \(2/5=0.4000\). The model probability of zero claims is \(e^{-0.5}\), approximately 0.6065. The small simulated proportion is below that benchmark, but five policies are far too few to establish a model problem.

As an additional check, the simulated aggregate mean is \((0+1{,}000+2{,}000+0+1{,}000)/5=\$800\). The theoretical mean is \(0.5(1{,}000)=\$500\). The empirical variance using divisor 5 is \((0^2+1{,}000^2+2{,}000^2+0^2+1{,}000^2)/5-800^2=\$560{,}000\). The theoretical variance is \(0.5(1{,}000^2)=\$500{,}000\). The differences are plausible for this deliberately small run.

Common mistake avoided: A Poisson(0.5) draw of 0.20 does not indicate one claim merely because it is a positive uniform. It is below the cumulative probability for zero claims, 0.6065, so it must produce zero.

Practical Validation and Common Traps

A disciplined simulation check follows the same order as the model construction. Confirm that the frequency uniforms are mapped to the correct cumulative intervals, that the right number of severity draws is consumed, and that each aggregate equals the sum of its claim amounts. Then compare the run’s count and loss summaries with model-based expectations. If independent uniform streams are used, preserve the intended pairing and reproducibility rather than silently reusing or shifting draws.

  • Using probability masses as interval endpoints. In inverse-CDF sampling, intervals are formed from cumulative probabilities, not from isolated probabilities.
  • Generating severities for zero-claim policies. A policy with \(N=0\) has aggregate loss zero and uses no claim-severity draws.
  • Confusing claim and policy averages. Average severity is calculated over claims; average aggregate loss is calculated over policies. Their denominators and meanings differ.
  • Expecting exact sample agreement. Theoretical moments describe the model distribution. Random finite samples fluctuate around them.
Key takeaway: Validate a compound simulation at multiple levels: frequency generation, claim-level severities, policy-level aggregation, and portfolio summaries. A correct total is useful, but agreement with the model’s count probabilities and moment formulas provides stronger evidence that the simulation is implemented as intended.

Check Your Understanding

For each problem, use the stated model assumptions and keep frequency, severity, and aggregate quantities distinct.

  1. For \(N\sim\operatorname{Poisson}(0.5)\), the cumulative probabilities for zero and one claim are 0.6065 and 0.9098. What count does the uniform draw 0.75 generate? (Answer: 1 claim)
  2. A severity is $200 with probability 0.6 and $500 with probability 0.4. A severity uniform is 0.62. Find the simulated severity, \(E[X]\), and \(\operatorname{Var}(X)\). (Answer: $500; \(E[X]=\$320\); \(\operatorname{Var}(X)=21{,}600\) dollars squared)
  3. A compound Poisson model has \(\lambda=2\), claim severity mean $400, and claim severity variance 90,000 dollars squared. Find the aggregate mean and variance. (Answer: \(E[S]=\$800\); \(\operatorname{Var}(S)=500{,}000\) dollars squared)
  4. Four simulated aggregate losses are \(0,300,300,900\). Find the simulated mean, empirical variance using divisor 4, and empirical CDF at 300. (Answer: Mean = $375; empirical variance = 106,875 dollars squared; \(\widehat F_S(300)=0.7500\))
  5. A frequency simulation for a Poisson(1) count assigns one claim whenever \(U<0.3679\). Explain the error and give the correct interval for one claim, using \(P(N=0)\approx0.3679\) and \(P(N\le1)\approx0.7358\). (Answer: The rule incorrectly maps zero-count draws to one claim; one claim corresponds to \(0.3679\le U<0.7358\))
Clinical Biostats