Poisson Process

Table of Contents

1. Summary

The Poisson process is the point process whose conditional intensity is a constant \(\lambda\). Events arrive at random, at a steady average rate, and what has happened so far tells nothing about what happens next. The gap between two events follows the exponential law with mean \(1/\lambda\). It is the simplest model of random arrivals, and it is the baseline against which clustering is measured: a stream that is more bursty than a Poisson process of the same rate needs a model that has memory, such as the Hawkes process.

2. Layperson's mental model

Think of raindrops on a roof. The rain has an average rate, but each drop ignores the last one. Sometimes two drops land close together and sometimes there is a long dry gap, and that is all the variation there is. A gap that has already lasted ten seconds is no more likely to end in the next second than a gap that has just begun. That is the memoryless property.

// the wait to the next event, from one uniform draw u in (0, 1]
double gap = -std::log(u) / rate;

3. Detail

3.1. The definition

With a constant intensity \(\lambda\), the count \(N(t)\) of events in \((0, t]\) follows the Poisson law with mean \(\lambda t\):

\begin{equation} P(N(t) = k) = \frac{(\lambda t)^k}{k!}\, e^{-\lambda t} \end{equation}

Counts in separate time windows are independent. The gaps between events are independent and follow \(\text{Exp}(\lambda)\).

3.2. The exact simulation

The exponential law has an inverse in closed form, so a gap needs one uniform draw \(U\): \(\Delta = -\ln(U)/\lambda\). No rejection is needed. This is the inversion method of the point process note. Summing the gaps gives the event times.

3.3. The test of dispersion

Mean and variance of the count in a window are both \(\lambda t\). So the Fano factor, the variance divided by the mean, is one. A real tick stream usually shows a Fano factor above one over windows of seconds to minutes, because ticks cluster. A measured value above one is the sign that a Poisson model is too smooth. For a stationary Hawkes process with branching ratio \(n\), the long-window Fano factor is \(1/(1-n)^2\), which gives a way to pick \(n\) from data.

3.4. When the rate follows the clock

If \(\lambda\) depends on the time of day, \(\lambda(t)\), the process is inhomogeneous. A busy session and a quiet night then differ in rate while each tick still ignores the previous one. Thinning (see the point process note) simulates it. An intraday profile for a feed is the case of this.

4. See also

4.1. Further reading

  • Kingman, J. F. C. (1993). Poisson Processes. Oxford University Press.
  • Daley, D. J., & Vere-Jones, D. (2003). An Introduction to the Theory of Point Processes, vol. 1, 2nd ed. Springer.
  • Wikipedia: Poisson point process.

Emacs 29.3 (Org mode 9.6.15)