# Calibrating Jump Diffusion Models using Differential Evolution Determining the correct parameter values to be used in a Jump-Diffusion model is not a trivial process (as outlined here).  In this blog post we will be using the biologically inspired differential evolution technique to calibrate a Jump-Diffusion model using simulated share price data.

# The Jump Diffusion Transition Density

As discussed in a previous blog post, Jump-diffusion models are continuous-time stochastic processes.These models are used to reproduce stylized facts observed in asset price dynamics, such as the long tailed nature of return distributions. The Merton Jump-diffusion model's SDE is given as

$dln(S_t) = \mu dt+ \sigma dW_t +dJ_t� . . . (1)$

where $\mu$ and $\sigma$ are the constant drift and the diffusion volatility, and $dJ_t$ is the jump processes. The jump process that we will be focusing on is the compound Poisson process. That is, $dJ_t = d(\sum_{i=0}^{N_t}(Y_i-1))$, where $N_t$ is a Poisson process with constant rate $\lambda$ and $Y_i$ is the $i$th jump size. In this blog post we will assume that $log(Y_i )$ is normally distributed with constant mean $\mu_j$ and constant variance $\sigma_j^2.$

The transition density, which will be used in calculating the likelihood function, of this jump diffusion model can be derived as follows:

Conditioning equation (1) on $N(t) = n$ jumps, the increment of  $\ln S(t)$ is $N(\mu \tau+n\mu_j, \sigma^2 \tau+n\sigma_j^2)$ (that is, the increment has a normal distribution), where $\tau$ is a time increment. It then follows that:

$P(\ln(S(t+\tau)/S(t)=x |N(t)=n) = \frac{\phi \left( \frac{x-(\mu \tau+n \mu_j)}{\sqrt{\sigma^2\tau + n\sigma_j^2}}\right)}{\sqrt{\sigma^2\tau + n\sigma_j^2}}$

thus the transition density is given as

$P(\ln(S(t+\tau)/S(t)=x ,N(t)) = \sum_{n=0}^{\infty} \frac{\phi \left( \frac{x-(\mu \tau+n \mu_j)}{\sqrt{\sigma^2\tau + n\sigma_j^2}}\right)}{\sqrt{\sigma^2\tau + n\sigma_j^2}} ....(2)$

where $\phi(w)$ is the standard normal distribution evaluated at $w$.

The Likelihood function , which is to be maximized to find the parameters of the model, for this Jump-diffusion model is than given as :

$L(\mu,\sigma,\lambda,\mu_j,\sigma_j|X)= \large\prod_{i=1}^{m} \sum_{n=0}^{\infty} \frac{\phi \left( \frac{x_i-(\mu \tau+n \mu_j)}{\sqrt{\sigma^2\tau + n\sigma_j^2}}\right)}{\sqrt{\sigma^2\tau + n\sigma_j^2}} ....(3)$

where $X$ is the vector of observations and $m$ is the total number of observations. Note that since equation (3) involves an infinite sum, we cut it of at 10  in this blog post. The code, written in R, for the negative log-likelihood function is given below:

Equation (2) shows that the transition density of the Jump-diffusion model is an infinite, possibly unbounded, mixture of normal distributions. This then implies that the distribution is multi-modal. This makes equation (3) ideal for optimizing using Differential Evolution.

Differential Evolution

Differential Evolution (DE) is a stochastic, population-based optimization algorithm. The algorithm uses biology-inspired operations mutation, selection and crossover of successive generations. DE is used for real-valued functions which have real valued parameters. It does not use the gradient of the function being optimized and thus makes minimal assumptions about the problem being solved. More information about  DE can be found in this book.

DE is ideal for being applied to the optimization of the Likelihood function in equation (3) because it has many local minimum. This is due to the transition density in (2) being a mixture of normal distributions.

In this blog post we will be using the DE implementation that is available in the R package DEoptim in order to find the parameters that maximize the likelihood function in equation (3).

# Simulation Study

In order to asses the how well the DE optimization works for calibrating a Jump-diffusion model, we performed a simulation study. In this study, we simulated returns from a Jump-diffusion model using various combinations of parameters, over 50 years of daily return data, and we tried to reproduce these parameters using the  DE calibration approach. A 100 simulations of the paths we made and the DE estimate was calculated for each simulated path.

The DE estimate was limited to 200 iterations.The convergence profile for the negative log-likelihood function for one of the paths is shown below:

The results of the simulation study are as follows:

 Parameter $\mu$ $\sigma$ $\lambda$ $\mu_j$ $\sigma_j$ True value 0.05 0.3 25 0.01 0.1 DE Estimate 0.0582 (0.041) 0.2997 (0.0024) 25.2561 (1.098) 0.00967 (0.003) 0.0975 (0.002)

The table above summaries the distribution of the estimate parameters. The DE estimate in the above table is the mean from the from the 100 simulations. The number in the brackets in the standard deviation.

The full distributions (for the 100 simulations) for the DE estimates  are shown the figures below:

The above results show that DE produces estimates that are distributed around the true value with small standard deviations as well. The parameter that seems to not have been estimated correctly, although only marginally, is the jump size standard deviation. This can be seen by looking at the distribution of the estimates around the true value.

The main drawbacks of using DE is that it can be slow, and convergence is not guaranteed.

## 2 Replies to “Calibrating Jump Diffusion Models using Differential Evolution”

1. Y on said:

Hi,

There's a typo in equations (2) and (3). Multiplying by the Poission distribution part is missing (it is correctly included in the code though).

Thanks for the wonderful post.

Best,

Y

2. Y on said:

Hi,

In the DE optimization code do you need to simulate the jump path? It seems like it not used and is not needed for the actual optimization. Also why is it differenced?

Best,

Y