# Hawkes process parameter estimation

I have a long time series of a clustered point process. I would like to make predictions, and I was trying to model such a process with an Hawkes process.

The Hawkes process is a double stochastic Poisson process:

$$P(N = n) = \frac{\lambda(t)^{n} \exp[-\lambda(t)]}{n!},$$

where $\lambda(t)$ is itself a stochastic process defined as:

$$\lambda(t) = \mu + \sum_{t_{i} < t}\alpha \exp[-\beta(t - t_{i})],$$

where $\mu$ can be considered as the baseline intensity, whereas $\alpha$ and $\beta$ regulate the growth and the decay of the intensity depending on the observed data.

The big problem that I have is that the computation of the likelihood (to estimate parameters via MLE) is computationally expensive, and I would need fast estimates updates.

Any feasible solution?

• This paper seems to be exactly what you're looking for: arxiv.org/pdf/1507.02822.pdf Commented Sep 20, 2016 at 5:01

Da Fonseca and Zaatour (2014) provide the following likelihood function which I use to estimate $\mu$, $\alpha$ and $\beta$ (p. 555, Equation (26)):
$L=T-T\lambda_\infty-\sum\limits_{i=1}^{N_T}\frac{\alpha}{\beta}\left(1-e^{-\beta\left(T-t\right)}\right)+\sum\limits_{i=1}^{N_T}\ln\left(\lambda_\infty+\alpha A\left(i\right)\right)$,
where $A\left(i\right)=\sum\limits_{t_j-t_i}e^{-\beta\left(t_i-t_j\right)}$.
In section 2.3.2 the authors acknowledge that estimation on the basis of $L$ may be time-consuming and present an alternative estimation procedure based on generalized method of moments (GMM). I haven't tried it but maybe that's what you're looking for.
It depends on which parameters you are trying to estimate. In the particulare case of exponential kernels, the likelihood functional can be computed in linear time using the trick mentionned, which has to do with the fact that $$(N,\lambda)$$ is a Markovian system in this case. But despite this increase of speed in the computation of the objective, the estimation of the decay rate $$\beta$$ is a notoriously hard problem in the Hawkes litterature.
A very common approach to mimic the estimation of $$\beta$$ is by decomposing your exponential kernel on a basis of exponentials $$\lambda_t=\mu+\sum_{l=1}^r \alpha_l \beta_l \exp(-\beta_l t),$$ and you only try to estimate $$( \mu, (\alpha_l)_l )$$. You can find a rationale for this decomposition in Section 3.1 of Lemonnier and Vayatis 2014, where the authors use a Weierstrass argument to decompose their kernels on a basis of Bernsetein polynomials. to the best of my knowledge, the fastest estimation procedure is currently the one proposed in Bompaire et al. 2018 based on the SDCA procedure. The authors propose an implementation of their method in their (very well documented) Python library Tick with a fast C++ core.