# Vasicek Model With Jumps

I'm trying to calibrate a mean-reverting, jump diffusion model using the outline provided on page 11 here:

The pdf is:

$$f(r(s)|r(t)) = (1-q)\cdot e^{-(r(s) - r(t) - k(\theta - r(t))\Delta t)^2/2(v^2\Delta t)} + q \cdot e^{-(r(s) - r(t) - k(\theta - r(t))\Delta t-\mu)^2/2(v^2\Delta t+\gamma^2)}$$

It models the process using a gaussian mixture with two distributions, one with a jump and one without. I've implemented an EM algorithm to find the latent $$q$$ variable. However, the likelihood does not always increase. The original paper on the EM algorithm showed that the likelihood should always increase. Instead, my likelihood is concave as I iterate through the algorithm.

I'm wondering if this is because the parameters of my jump distribution (the one with gamma and mu) are dependent on the parameters of my diffusion distribution. That is, first I find $$q$$ in my E step. Then I find my diffusion parameters ($$\theta, k, v^2)$$ in the first part of my M step. Then I update my jump distribution with the new diffusion parameters and find my jump-mean and jump-variance ($$\mu, \gamma^2$$).

So my question is two-fold:

(1) Is this a legitimate way to iterate over the EM algorithm?

(2) Does it make sense to simply stop my process where the log-likelihood has reach its max? Normally, one iterates through the EM algorithm until the change in the loglikelihood is arbitrarily close to 0, with the guarantee it will never drop.