[Skip to content]

Sign up for our daily newsletter
The Actuary The magazine of the Institute & Faculty of Actuaries

Darwin to the rescue!

Modelling a life insurance contract using the method of Monte Carlo simulation is now familiar territory to many actuaries. The advantage of this approach is that it allows us to value complex investments or liabilities that cannot usefully be assessed using deterministic models. The disadvantage is that it involves running complex models thousands of times 5,000 scenarios is typical which can tie up banks of computers for days at a time. As well as being expensive, there are times (M&A exercises spring to mind) when we can’t wait that long for the results. It is therefore advantageous to reduce the number of scenarios to be simulated if this can be done without compromising the outputs. A number of ‘variance reduction’ techniques exist to do just this.
One such technique is to carefully choose a relatively small number of scenarios (eg 1,000) from a much larger set of randomly generated scenarios, ensuring that the subset has the same statistical properties as the larger set, particularly the arbitrage free property. But how to find such a subset? We can quickly work out whether a particular subset has the desired characteristics (this takes around a tenth of a second). The problem is that we may have to try many thousands of subsets before we find one that meets our criteria.

An optimisation problem
For this problem, there are nCr possible (or ‘trial’) solutions where n is the size of the larger set, and r is the size of the subset. In the example below, where n=2,000 and r=1,000, there are approximately10,600 possible trial solutions (using Stirling’s approximation). Clearly, even at 0.1 seconds per evaluation, it is not practical to systematically search through all of these. In addition, for any single trial solution (ie a subset of 1,000 scenarios), its immediate neighbourhood consists of the 1,000,000 subsets reachable by changing a single scenario. Hence, optimisation methods which rely on evaluating the immediate neighbourhood, such as gradient search methods or simulated annealing, are likely to be slow. We have therefore developed an approach using genetic algorithms (GAs), which are generally better at searching large and complex search spaces.

Genetic algorithms
The theoretical foundations for GAs were laid by John H Holland in the early 1970s. These optimisation routines were inspired by the process of Darwinian evolution. They use the same mechanisms used by nature to find ever fitter (better adapted) creatures:
– reproduction, using the rule of ‘survival of the fittest’;
– recombination of material using a crossover operator; and
– random mutation.
Our ‘environment’ is the search space for the optimisation problem this is made up of the nCr possible combinations of r scenarios selected from the set of n. Each creature is represented by a ‘chromosome’ or string of ‘genes’, which itself represents a possible solution to the problem, ie a single subset of r scenarios. To each chromosome we ascribe a value of ‘fitness’ in our case, a measure of how well the statistical properties of the r-size subset conform to those of the larger set.
The GA starts with a randomly generated ‘population’ of creatures or chromosomes. It then creates successive generations by selecting ‘parents’, where the selection is biased so that fitter parents are more likely to be selected, and recombining the genetic material of those parents using a crossover operator to create ‘offspring’. The idea is that groups of genes that are associated with greater fitness will be preserved through the generations. Furthermore, they will be recombined with other groups of genes that are associated with greater fitness, and so (we hope) create new creatures with even greater fitness.

Adapting the genetic algorithm
GAs have been used in many different fields to find near-optimal solutions to large and/or complex optimisation problems, including combinatorial problems such as the travelling salesman problem, job shop scheduling, the layout of a keyboard for east Asian languages, and nuclear fuel management.
However, these applications are concerned with either finding a near-optimal permutation of a number of objects, or near-optimal groupings of a number of objects. To our knowledge, GAs have not been applied to the type of combinatorial optimisation task contemplated here, where the goal is to select a representative sample from a large set of objects.
Therefore, we have made a few adaptations to the basic GA as conceived by Holland, the most important of which is the design of a new crossover operator. This has been designed to ensure that each offspring produced contains at most one copy of any one gene (scenario) and, most importantly, that ‘successful’ groups of genes are preserved from one generation to the next.
The results shown in figure 1 are typical of the results obtained using our GA. The vertical axis is the value of the ‘objective function’, which is our measure of success anything less than 2% is adequate, but the lower the value the better. The horizontal axis is the number of trial solutions evaluated (a proxy for computer time). The lines show the objective function value for the best solution found by the GA and by a random search (RND) after that number of evaluations.
It can be seen that for the run shown, after around a million evaluations the random search has only found a solution that is within 3% of the ideal whereas the GA has found one which is within 2% of the ideal fit after only 500,000 evaluations.
We get a different result from both the GA and random search each time we try. So in figure 2, we show the results from 20 runs of the GA compared to the same number of random searches. This time, we have only run the searches for 375,000 evaluations (about 10 hours) and show that, on average, the GA finds adequate solutions within this time while the random search does not. To give a sense of the variation in performance, the dotted lines show the upper and lower bounds (ie average performance plus and minus two standard deviations).

Was it worth the effort?
Ten hours may seem a lot of computing time to expend on identifying a set of scenarios. However, it can be done before the life company simulation model is run and, more importantly, by reducing the number of scenarios we need to run from 5,000 to 1,000, we can significantly reduce the time required to produce results which will be welcome on many time-sensitive projects such as M&A work and regulatory reporting. Further, the same scenarios can be used for several different models and sensitivity runs.
We have applied the techniques in the field of life insurance, but the method could be equally useful for wider fields, such as general insurance, or asset-liability matching for pension funds.