Skip to content
A toolbox of Hawkes processes
Branch: master
Clone or download
HongtengXu Batch optimization of multiple Hawkes
Learning Multiple Hawkes process with shared impact function
Latest commit 2548a41 Feb 15, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
Analysis Update prediction HP Feb 14, 2018
BasicFunc Upload basic functions Aug 17, 2017
Data Add files via upload Jan 17, 2018
Learning Batch optimization of multiple Hawkes Feb 14, 2018
Simulation Update simulation methods Sep 27, 2017
Visualization Upload visualization functions Aug 17, 2017
LICENSE Initial commit Jul 11, 2017 Update Sep 5, 2017
Test_Causality.m Update Test_Causality.m Jan 12, 2018
Test_Clustering.m Add comments for Test_Clustering.m Aug 21, 2017
Test_Learning_HP_ArbitraryKernel.m Update Test_Learning_HP_ArbitraryKernel.m Jan 12, 2018
Test_Learning_HP_ExpKernel.m Update Test_Learning_HP_ExpKernel.m Jan 12, 2018
Test_Learning_TVHP_SyntheticData.m Update Test_Learning_TVHP_SyntheticData.m Aug 22, 2017
Test_MLE_SHP.m Add files via upload Jan 17, 2018
Test_Simulation_ArbitraryKernel.m Update Test_Simulation_ArbitraryKernel.m Jan 12, 2018
Test_Simulation_Runtime.m Update Test_Simulation_Runtime.m Aug 21, 2017
Test_Simulation_TVHP.m Update Test_Simulation_TVHP.m Aug 21, 2017
Test_batchVSonline.m Upload comparisons for batchHP and onlineHP Jan 12, 2018
Test_superpose_syn_K_WLS_D5.m Add files via upload Jan 17, 2018
setup.m Add files via upload Aug 16, 2017

THAP: A matlab Tool for HAwkes Processes

THAP is a pure matlab toolbox for modeling and analysis of Hawkes process and its variants. The license is shown in LICENSE.

The project was started in 2017 by Hongteng Xu and Hongyuan Zha at the School of Computational Science and Engineering of Georgia Institute of Technology, Atlanta, USA.

Quick description

The focus of THAP is on learning a special kind of point processes called Hawkes process (HP). This toolbox is composed of multiple simulators, models, learning algorithms, and analytic and visualization tools of Hawkes processes and their variants. Typical functions achieved by the toolbox include:

  • Simulate (multi-dimensional) Hawkes processes with smooth kernels like exponential and Gaussian kernels.
  • Segment or stitch asynchronous event sequences.
  • Learn parametric or nonparametric Hawkes models by maximun likelihood estimation (MLE) and least-square estimation (LS).
  • Learn typical variants of traditional Hawkes processes, e.g., mixtures of Hawkes processes (MixHP) and time-varying Hawkes processes (TVHP).
  • Construct the Granger causality graph of events.
  • Caculate distance between marked point processes.
  • Visualize asynchronous event sequences, their intensity functions and the impact functions of Hawkes processes.
  • Predict future events based on historical observations and learned models.

A set of examples can be found at

The paper associated to this toolbox can be found at

If you use THAP in publications, we would appreciate citations of related papers.

Typical applications

The typical applications of THAP include, but not limited to:


  • Construct disease networks from patients' admission history.
  • Model and predict the transitions of patients between different care units.

Social science:

  • IPTV user behavior analysis: find clusters of IPTV users according to their TV program viewing records.
  • Social network analysis: model user infectivity on social networks according to users' social behaviors.
  • Talent flow modeling: model the job hopping behaviors between companies.

Requirements and installation

THAP is compatible on Windows/Linux/OSX systems and only requires MatlabR2016a or newer. To use THAP, you just need to open your Matlab and run the "setup.m" file to add paths of necessary functions.

References and citation

According to the functions used in your work, you may want to cite the following papers:

Simulation methods of Hawkes processes:

Learning algorithms of Hawkes processes:

Time-varying Hawkes processes:

Granger causality analysis of event sequences:

Clustering analysis of event sequences:

The usage of data:

You can’t perform that action at this time.