I am currently using a univariate Hawkes-process for modeling the behaviour of agents in a social network. For example, the likelihood that a user will tweet in the next period is defined by the intensity $\lambda$ of a Hawkes-Process such as:

  • $\lambda_t = \mu + \sum_{t_i < t}\alpha e^{-\beta (t-t_i)}$

For a counting-process defined $(N(t): t>0)$ with the associated filtration $(\mathcal{F}(t): t>0)$ on $[0, T]$ with $t_1 ... t_N$ the realizations of $(N_t)_{t>0}$

My problem is that I would like to apply the same methodology on non-binary variables, let's say retweet counts for example. If the user as been retweeted 180 times at time $t$ I would that to have a higher impact on my intensity than it has been retweeted only 2 times.

To clarify, I am able to have the model for a time-series like this one, for a user that got retweeted at time $t_1$, $t_4$, $t_5$ and $t_7$ on $[0,T]$ for T=8:

  • $[0, 1, 0, 0, 1, 1, 0, 1, 0]$

I would like to have a model that takes into account the fact that simultaneous events occured at a given discrete time, 3 retweets at time $t_1$, 180 retweets at time $t_4$, 2 retweets at time $t_5$ and 90 retweets at time $t_7$ represented by the below sparse vector:

  • $[0, 3, 0, 0, 180, 2, 0, 90, 0]$

The problem with the Hawkes-Process framework as I understand it, is that it only takes binary events into consideration and I don't see how to apply it to my problema.

One might actually suggest that 'slicing' my time series of occurring event at a high enough frequency will eventually lead to a binary vector of occurrences. That's true, but since this has to be applied to big data, I can't afford to multiply my data length by 1000 or even more.

I don't really need a solution here, even just a paper dealing with such issue might be of great help.



One approach to answer your question is to use a multivariate Hawkes process to handle events associated with different volumes (or counts in your case). Instead of considering a one-dimensional Hawkes process for all events, you could group your counts into intervals. For instance, consider

  • $I_1=[1, 50]$,
  • $I_2 = [51, 100]$,
  • $I_3 = [101, 150]$,
  • $I_4 = [150, 200]$.

You can now model your data with a 4-dimensional Hawkes process $(N^1_t, N^2_t, N^3_t, N^4_t)$, each component of the process $N^j_t$ corresponding a point process that counts events whose number of retweets belong to $I_j$. This article uses that trick to model arrivals of trades with different sizes.

For the inference of such multivariate Hawkes process, I would recommend you to use the open-source library tick developed by smart guys of my team. This example may be helpful.

  • $\begingroup$ Interesting paper. Are you working at X? I planed on contacting Stéphane with this matter, but wanted to sand-down a bit more first. Thanks for your answer. $\endgroup$ – ylnor Apr 19 '17 at 15:49
  • $\begingroup$ Yes, I'm one of his PhD student. I read your question again, and I may have missed some point: do you work with regular or irregular sampled data ? If you work with regular sampled data, AR processes can do the job as well. $\endgroup$ – L2ODA Apr 19 '17 at 16:06
  • $\begingroup$ I work with regular sampled data. But the choice of Hawkes-process was due to the strong sparsity and clustering nature of the time-series. $\endgroup$ – ylnor Apr 19 '17 at 16:10
  • $\begingroup$ @L20DA, Is there anybody who installed 'tick' on windows? I installed it on MacOS with no issues, but on Windows, I tried using GCC instead of VS14 as a compiler, even tried to patch distutil, but no solution... Is there a tip for instaling the package on Python? Thanks. $\endgroup$ – ylnor May 9 '17 at 14:20
  • $\begingroup$ @ylnor No, nobody installed it on windows. You should prefer MacOs or Linux. If you don't have the choice, one of the main developper advised to use docker to get rid of windows related issues. $\endgroup$ – L2ODA May 9 '17 at 16:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.