Skip to content

Markov-modulated Poisson process

A Markov-modulated Poisson process switches arrival rates through persistent regimes. See why an average of three arrivals can produce variance 5.271 rather than three.

A Markov-modulated Poisson process (MMPP) counts arrivals whose rate changes with the state of an external continuous-time Markov chain. A quiet state produces sparse arrivals; a busy state produces more. For a quant modelling requests reaching an execution service, this gives persistent periods of high demand: two models can have the same average arrival rate yet imply very different short-window load distributions.

Two clocks, with different jobs

Let JtJ_t denote the regime, with generator matrix QQ, initial regime probabilities α\alpha, and nonnegative state-specific arrival rates λi\lambda_i. The intensity, conditional on the regime, is λJt\lambda_{J_t}.
The regime clock controls when the rate switches. The arrival clock controls when the count increases. An arrival does not itself switch the regime, and a regime switch does not count as an arrival. Nor do we independently redraw a rate after each arrival. The current regime persists until its own switching clock rings.
Conditional on the entire regime path over a window, the count follows a Poisson distribution:
AT=∫0TλJs ds,NT∣{Js:0≤s≤T}∼Poisson⁡(AT),N0=0.A_T=\int_0^T\lambda_{J_s}\,ds, \qquad N_T\mid\{J_s:0\le s\le T\}\sim\operatorname{Poisson}(A_T), \qquad N_0=0.
Here ATA_T is the integrated intensity: the rate multiplied by time spent in each regime and added across the window. Given the regime path, disjoint-window counts are independent. Without that conditioning, they generally share information through the persistent regime. This makes the MMPP a particular Cox process, rather than a homogeneous Poisson process with its rate replaced by an average.

An average of three is not a Poisson count of three

Consider a fictional request stream with two regimes:

Q=(−111−1) per second,λquiet=1 per second,λbusy=5 per second.Q=\begin{pmatrix}-1&1\\1&-1\end{pmatrix}\ \text{per second}, \qquad \lambda_{\text{quiet}}=1\ \text{per second}, \quad \lambda_{\text{busy}}=5\ \text{per second}.
Each regime's holding time is exponential, with mean one second. The off-diagonal entries of QQ are switching rates, not probabilities of one. Start the chain in its stationary distribution, π=(1/2,1/2)\pi=(1/2,1/2), so at any fixed clock time each regime has probability one half. The average arrival rate is therefore
λˉ=12(1)+12(5)=3 per second.\bar\lambda=\frac12(1)+\frac12(5)=3\ \text{per second}.

In a one-second window, both this MMPP and a homogeneous rate-three Poisson process have expected count three. Their variances differ because the MMPP's integrated intensity is random. The law of total variance gives

Var(NT)=E[AT]+Var(AT).\text{Var}(N_T) =\mathbb{E}[A_T]+\text{Var}(A_T).

The first term is Poisson arrival noise even after the regime path is known. The second is uncertainty about how much time the window spends in the busy regime.

For these particular stationary parameters, the rate covariance at a lag of uu seconds is 4e−2u4e^{-2u}. Integrating that persistence over a one-second window gives

Var(N1)=3+2∫01(1−u) 4e−2u du=5+2e−2≈5.271.\begin{aligned} \text{Var}(N_1) &=3+2\int_0^1(1-u)\,4e^{-2u}\,du\\ &=5+2e^{-2}\approx5.271. \end{aligned}

The time coordinates in this calculation are measured in seconds. The mean is an event count; the variance is measured in squared-count units. Starting the regime with a different distribution would change these finite-window results.

Fictional two-state MMPP with switching rates one per second in each direction and arrival rates one and five per second. Its one-second count has mean three and variance 5.271, versus mean and variance three for Poisson(3). The probability of no arrivals is 12.45 percent versus 4.98 percent.
Fictional two-state MMPP with switching rates one per second in each direction and arrival rates one and five per second. Its one-second count has mean three and variance 5.271, versus mean and variance three for Poisson(3). The probability of no arrivals is 12.45 percent versus 4.98 percent.
Original exact model comparison with a stationary regime at the start. Filled bars show MMPP count probabilities; outlined bars show Poisson(3). The last bar groups counts of 13 or more; no empirical data or simulation is used.
An empty one-second window has probability 12.45% under the MMPP, versus 4.98% under Poisson(3). The extra variance is not just an abstract correction: persistent quiet periods make empty windows more likely, while busy periods spread probability into larger counts. Matching the mean alone misses this behaviour.

A random time and a random arrival see different regimes

Half the time is spent busy, but the busy state generates arrivals five times as quickly. In the stationary long run, the fraction of arrivals occurring in that state is

πbusyλbusyλˉ=(1/2)53=56≈83.33%.\frac{\pi_{\text{busy}}\lambda_{\text{busy}}}{\bar\lambda} =\frac{(1/2)5}{3} =\frac56\approx83.33\%.
Thus the regime distribution observed at arrivals differs from the one observed at arbitrary clock times. Initialising every inter-arrival calculation with equal regime weights would ignore this selection effect. The cumulative count NtN_t itself is not stationary; it keeps increasing even when the regime and the count increments are stationary.
For the generator, holding-time and routing construction behind the regime clock, see Continuous-Time Markov Chains: The Generator Matrix and the Embedded Jump Chain (public preview; full lesson requires membership).

What would make this the wrong arrival model?

A fixed opening-time surge can be represented by a deterministic time-varying rate in a nonhomogeneous Poisson process. An MMPP instead attributes variation to a random regime that persists. In a Hawkes process, arrivals themselves affect future intensity; the MMPP mechanism above does not do that. More variable counts alone cannot identify which explanation generated the data.

The finite-state MMPP also imposes exponential regime durations and constant arrival rates within each regime. A fitted “busy” state is a model component, not proof of a news event or an economic cause. Finally, an arrival model supplies no service times, queue discipline, order sizes or execution rules. Those need separate specifications before arrival bursts can be translated into latency or fill outcomes.

Sources

Last updated
  • arrival models
  • counting processes
  • markov chains
  • regime switching
  • stochastic intensity
← Back to the glossaryBack to top ↑