Open main menu

Wikibooks β

R Programming/Count Data Models

< R Programming

The Poisson modelEdit

Fake data simulationsEdit

We assume that y follows a poisson distribution with mean exp(1 + 1 * x). We store the data in the "df" dataframe.

N <- 1000
x <- rnorm(N)
alpha <- c(1,1)
y <- rpois(N,exp(alpha[1] + alpha[2] * x))
df <- data.frame(x,y)

Maximum likelihoodEdit

We estimate this simple model using the glm() function with family = poisson as option.

fit <- glm(y ~ x, family = poisson, data = df)

Bayesian estimationEdit

The model can also be estimated using bayesian methods with the MCMCpoisson() function which is provided in the MCMCpack.

posterior <- MCMCpoisson(y ~ x, data = df)

Overdispersion testEdit

  • dispersiontest() (AER package) provides a test for equidispersion.

Zero inflated modelEdit

See the zic package[1]

Bivariate poisson regressionEdit

  • bivpois package for bivariate poisson regression.


  1. Markus Jochmann (2010). zic: Bayesian Inference for Zero-Inflated Count Models. R package version 0.5-3.
  2. Cameron, A.C. and Trivedi, P.K. (1998). Regression Analysis of Count Data. Cambridge: Cambridge University Press.
  3. Christian Kleiber and Achim Zeileis (2008). Applied Econometrics with R. New York: Springer-Verlag. ISBN 978-0-387-77316-2. URL