Poisson regression

From Wikipedia, the free encyclopedia
Jump to: navigation, search

In statistics, Poisson regression is a form of regression analysis used to model count data and contingency tables. Poisson regression assumes the response variable Y has a Poisson distribution, and assumes the logarithm of its expected value can be modeled by a linear combination of unknown parameters. A Poisson regression model is sometimes known as a log-linear model, especially when used to model contingency tables.

Poisson regression models are generalized linear models with the logarithm as the (canonical) link function, and the Poisson distribution function as the assumed probability distribution of the response.

Regression models[edit]

If \mathbf{x} \in \mathbb{R}^n is a vector of independent variables, then the model takes the form

\log (\operatorname{E}(Y\mid\mathbf{x}))=\alpha + \mathbf{\beta}' \mathbf{x},

where \alpha \in \mathbb{R} and \mathbf{\beta} \in \mathbb{R}^n. Sometimes this is written more compactly as

\log (\operatorname{E}(Y\mid\mathbf{x}))=\boldsymbol{\theta}' \mathbf{x},\,

where x is now an (n + 1)-dimensional vector consisting of n independent variables concatenated to a vector of ones. Here θ is simply α concatenated to β.

Thus, when given a Poisson regression model θ and an input vector x, the predicted mean of the associated Poisson distribution is given by

\operatorname{E}(Y\mid\mathbf{x})=e^{\boldsymbol{\theta}' \mathbf{x}}.\,

If Yi are independent observations with corresponding values xi of the predictor variables, then θ can be estimated by maximum likelihood. The maximum-likelihood estimates lack a closed-form expression and must be found by numerical methods. The probability surface for maximum-likelihood Poisson regression is always concave, making Newton–Raphson or other gradient-based methods appropriate estimation techniques.

Maximum likelihood-based parameter estimation[edit]

Given a set of parameters θ and an input vector x, the mean of the predicted Poisson distribution, as stated above, is given by

\operatorname{E}(Y\mid x)=e^{\theta' x}\,,

and thus, the Poisson distribution's probability mass function is given by

p(y\mid x;\theta) = \frac{[\operatorname{E}(Y\mid x)]^y \times e^{-\operatorname{E}(Y\mid x)}}{y!} = \frac{e^{y  \theta' x} e^{-e^{\theta' x}}}{y!}

Now suppose we are given a data set consisting of m vectors x_i \in \mathbb{R}^{n+1}, \, i = 1,\ldots,m, along with a set of m values y_1,\ldots,y_m \in \mathbb{R}. Then, for a given set of parameters θ, the probability of attaining this particular set of data is given by

p(y_1,\ldots,y_m\mid x_1,\ldots,x_m;\theta) = \prod_{i=1}^m \frac{e^{y_i  \theta' x_i} e^{-e^{\theta' x_i}}}{y_i!}.

By the method of maximum likelihood, we wish to find the set of parameters θ that makes this probability as large as possible. To do this, the equation is first rewritten as a likelihood function in terms of θ:

L(\theta\mid X,Y) = \prod_{i=1}^m \frac{e^{y_i \theta' x_i} e^{-e^{\theta' x_i}}}{y_i!}.

Note that the expression on the right hand side has not actually changed. A formula in this form is typically difficult to work with; instead, one uses the log-likelihood:

\ell(\theta\mid X,Y) = \log L(\theta\mid X,Y) = \sum_{i=1}^m \left( y_i \theta' x_i - e^{\theta' x_i} - \log(y_i!)\right).

Notice that the parameters θ only appear in the first two terms of each term in the summation. Therefore, given that we are only interested in finding the best value for θ we may drop the yi! and simply write

\ell(\theta\mid X,Y) = \sum_{i=1}^m \left( y_i \theta' x_i - e^{\theta' x_i}\right).

To find a maximum, we need to solve an equation \frac{\partial \ell(\theta\mid X,Y)}{\partial \theta} = 0 which has no closed-form solution. However, the negative log-likelihood, -\ell(\theta\mid X,Y), is a convex function, and so standard convex optimization techniques such as gradient descent can be applied to find the optimal value of θ.

Poisson regression in practice[edit]

Poisson regression may be appropriate when the dependent variable is a count, for instance of events such as the arrival of a telephone call at a call centre.[1] The events must be independent in the sense that the arrival of one call will not make another more or less likely, but the probability per unit time of events is understood to be related to covariates such as time of day.

"Exposure" and offset[edit]

Poisson regression may also be appropriate for rate data, where the rate is a count of events occurring to a particular unit of observation, divided by some measure of that unit's exposure. For example, biologists may count the number of tree species in a forest, and the rate would be the number of species per square kilometre. Demographers may model death rates in geographic areas as the count of deaths divided by person−years. More generally, event rates can be calculated as events per unit time, which allows the observation window to vary for each unit. In these examples, exposure is respectively unit area, person−years and unit time. In Poisson regression this is handled as an offset, where the exposure variable enters on the right-hand side of the equation, but with a parameter estimate (for log(exposure)) constrained to 1.

\log{(\operatorname{E}(Y\mid x))} = \log{(\text{exposure})} + \theta' x

which implies

\log{(\operatorname{E}(Y\mid x))} - \log{(\text{exposure})} = 
       \log{\left(\frac{\operatorname{E}(Y\mid x)}{\text{exposure}}\right)} = \theta' x

Offset in the case of a GLM in R can be achieved using the offset() function:

glm(y ~ offset(log(exposure)) + x, family=poisson(link=log) )

Overdispersion and zero inflation[edit]

A characteristic of the Poisson distribution is that its mean is equal to its variance. In certain circumstances, it will be found that the observed variance is greater than the mean; this is known as overdispersion and indicates that the model is not appropriate. A common reason is the omission of relevant explanatory variables, or dependent observations. Under some circumstances, the problem of overdispersion can be solved by using quasi-likelihood estimation or a negative binomial distribution instead.[2][3]

Another common problem with Poisson regression is excess zeros: if there are two processes at work, one determining whether there are zero events or any events, and a Poisson process determining how many events there are, there will be more zeros than a Poisson regression would predict. An example would be the distribution of cigarettes smoked in an hour by members of a group where some individuals are non-smokers.

Other generalized linear models such as the negative binomial model or zero-inflated model may function better in these cases.

Use in survival analysis[edit]

Poisson regression creates proportional hazards models, one class of survival analysis: see proportional hazards models for descriptions of Cox models.


Regularized Poisson regression[edit]

When estimating the parameters for Poisson regression, one typically tries to find values for θ that maximize the likelihood of an expression of the form

\sum_{i=1}^m \log(p(y_i;e^{\theta' x})),

where m is the number of examples in the data set, and p(y_i;e^{\theta' x}) is the probability mass function of the Poisson distribution with the mean set to e^{\theta' x}. Regularization can be added to this optimization problem by instead maximizing

\sum_{i=1}^m \log(p(y_i;e^{\theta' x})) - \lambda \left\|\theta\right\|_2^2,

for some positive constant \lambda. This technique, similar to ridge regression, can reduce overfitting.


Some statistics packages include implementations of Poisson regression.

  • Analytica: Provided by the built-in function PoissonRegression.
  • GenStat: Poisson regression is a standard option of the regression section, using the "MODEL", "FIT" and associated commands; it is also available in the "Stats > Regression Analysis > Generalized Linear Models" menu.
  • MATLAB Statistics Toolbox: Poisson regression can be performed using the "glmfit" and "glmval" functions.[4]
  • Microsoft Excel: Excel is not capable of doing Poisson regression by default. One of the Excel Add-ins for Poisson regression is XPost
  • mPlus: mPlus allows for Poisson regression using the command COUNT IS when specifying the data
  • R: The function for fitting a generalized linear model in R is glm(), and can be used for Poisson regression.[5][6]
  • SAS: Poisson regression in SAS is done by using GENMOD, HPGENSELECT, COUNTREG, GLIMMIX, and NLMIXED
  • SPSS: In SPSS, Poisson regression is done by using the GENLIN command
  • Stata: Stata has a procedure for Poisson regression named poisson,[7] and for panel data xtpoisson.[8]
  • CrimeStat: CrimeStat has Poisson, Poisson NB1, Poisson-Gamma(negative binomial), and Poisson-Lognormal regression models.

See also[edit]


  1. ^ Greene, William H. (2003). Econometric Analysis (Fifth ed.). Prentice-Hall. pp. 740–752. ISBN 0130661899. 
  2. ^ Paternoster R, Brame R (1997). "Multiple routes to delinquency? A test of developmental and general theories of crime". Criminology 35: 45–84. doi:10.1111/j.1745-9125.1997.tb00870.x. 
  3. ^ Berk R, MacDonald J (2008). "Overdispersion and Poisson regression" (PDF). Journal of Quantitative Criminology 24 (3): 269–284. doi:10.1007/s10940-008-9048-4. 
  4. ^ http://www.mathworks.com/help/toolbox/stats/glmfit.html
  5. ^ Dalgaard, Peter (2008). "Rates and Poisson Regression". Introductory Statistics with R. New York: Springer. pp. 259–274. doi:10.1007/978-0-387-79054-1_15. ISBN 978-0-387-79053-4. 
  6. ^ Faraway, Julian J. (2005). "Count Regression". Extending the Linear Model with R. CRC Press. pp. 61–75. ISBN 0-203-49228-5. 
  7. ^ Poisson regression
  8. ^ Fixed-effects, random-effects, and population-averaged Poisson models

Further reading[edit]