Quant Memo
Core

Poisson and Count Regression

When the thing you're predicting is a count — trades per minute, defaults per quarter, order cancellations per hour — ordinary linear regression breaks its own assumptions, and Poisson regression is the model built for exactly this kind of data.

Prerequisites: The Poisson Distribution, Logistic Regression

Try to predict "number of order cancellations in the next minute" with ordinary linear regression and you inherit problems the model was never built for: predictions that go negative (a count can't be -2), a target that's always a non-negative integer while the model assumes a continuous, symmetric error, and variance that tends to grow with the mean rather than staying constant. Poisson regression is a model purpose-built for count data — it never predicts a negative number and it naturally reflects how count variability scales with the count's own size.

The analogy: counting rare events in a fixed window

Think of a Geiger counter clicking during a fixed time interval — you can't say "negative 3 clicks," clicks arrive as whole numbers, and if the click rate is higher, the clicks also tend to be more variable in absolute terms (10 clicks with some spread versus 1000 clicks with much more spread). That's exactly the shape of order cancellations, customer complaints, or trade fills in a fixed window: non-negative integers, more variable when busier. Poisson regression assumes the count in each window follows a Poisson distribution whose rate is allowed to depend on features — busier market conditions raise the underlying rate, and everything else about the count's shape follows from that one number.

The model

Poisson regression models the expected count μ\mu as an exponential function of a linear combination of features, guaranteeing μ>0\mu > 0 always:

log(μ)=β0+β1x1++βpxp,μ=eβ0+β1x1+\log(\mu) = \beta_0 + \beta_1 x_1 + \dots + \beta_p x_p, \qquad \mu = e^{\beta_0 + \beta_1 x_1 + \dots}

Plain English: instead of modeling the count directly (which could go negative under a linear model), Poisson regression models its logarithm linearly — since ee raised to any real number is always positive, the predicted count can never be negative, no matter what the features say. Each coefficient βj\beta_j means: a one-unit increase in xjx_j multiplies the expected count by eβje^{\beta_j}, not adds to it — Poisson regression is inherently multiplicative, not additive.

Worked example 1: predicting cancellations from volatility

Suppose cancellations per minute are modeled as log(μ)=0.5+0.3vol\log(\mu) = 0.5 + 0.3 \cdot \text{vol}, where vol is realized volatility in percent. At vol=1: μ=e0.5+0.3=e0.82.23\mu = e^{0.5+0.3} = e^{0.8} \approx 2.23 expected cancellations per minute. At vol=3: μ=e0.5+0.9=e1.44.06\mu = e^{0.5+0.9}=e^{1.4}\approx4.06. Tripling volatility from 1 to 3 didn't triple cancellations — it multiplied expected cancellations by e0.3×2=e0.61.82e^{0.3 \times 2} = e^{0.6} \approx 1.82, an 82% increase, exactly the multiplicative interpretation of β1=0.3\beta_1 = 0.3: each 1-unit rise in vol multiplies μ\mu by e0.31.35e^{0.3}\approx1.35.

Worked example 2: checking the mean-variance link

Poisson regression assumes Var(y)=μ\text{Var}(y) = \mu — variance equals the mean, no separate parameter for spread. Suppose real trade-fill count data has sample mean 5.0 fills per minute but sample variance 14.2 — nearly three times the mean. Fitting plain Poisson regression here would understate uncertainty (predicted intervals too narrow) because it forces variance to equal 5.0 no matter what the data shows. This mismatch, called overdispersion, is diagnosed by comparing the model's residual deviance to its degrees of freedom (a ratio well above 1 signals overdispersion) and is typically fixed by switching to a negative binomial regression, which adds a free dispersion parameter instead of locking variance to the mean.

Distribution · poisson
mean 3.001234567891011outcomes (k) →
mean 3.00std dev 1.73peak at k = 2

Slide the rate parameter λ\lambda up and watch the distribution both shift right and spread out simultaneously — that coupled shift-and-spread is the mean-variance link Poisson regression assumes for every prediction, and it's exactly what breaks when the real data is overdispersed.

volatility feature x expected count μ
Because $\mu = e^{\beta_0+\beta_1 x}$, the fitted curve stays above zero for every value of $x$ and rises multiplicatively — it can never dip into a nonsensical negative count.

What this means in practice

Poisson (and its overdispersion-robust cousin, negative binomial) regression is the standard tool for modeling order-book event counts, trade arrival rates, corporate default counts per period, or margin-call frequency — anywhere the target is a non-negative integer count rather than a continuous measurement. Fitting ordinary linear regression to such targets instead is a common, quiet mistake: it can produce negative predicted counts and understates how uncertainty grows in busy periods, both of which distort downstream risk calculations that consume the predicted rate.

Poisson regression models the log of an expected count as a linear function of features, guaranteeing non-negative predictions and building in the count-data property that variance grows with the mean — it is the right default model whenever the target is "how many events in a fixed window," not a continuous quantity.

The single most common Poisson-regression mistake is not checking the equidispersion assumption (Var(y)=μ\text{Var}(y)=\mu) before trusting the model's standard errors and confidence intervals. Real count data — especially in finance, where event clustering is the norm (a market-stress period spikes both the mean and the variance of cancellations well beyond what a shared rate parameter predicts) — is very often overdispersed. Using plain Poisson regression on overdispersed data produces standard errors that are too small, making everything look more statistically significant than it actually is; always check the dispersion ratio and switch to negative binomial regression if it's well above 1.

Related concepts

Practice in interviews

Further reading

  • Cameron & Trivedi, Regression Analysis of Count Data (2013)
  • McCullagh & Nelder, Generalized Linear Models (1989)
ShareTwitterLinkedIn