Zero-Inflated Poisson Models for Count Outcomes

There are quite a few types of outcome variables that will never meet ordinary linear model’s assumption of normally distributed residuals.  A non-normal outcome variable can have normally distribued residuals, but it does need to be continuous, unbounded, and measured on an interval or ratio scale.   Categorical outcome variables clearly don’t fit this requirement, so it’s easy to see that an ordinary linear model is not appropriate.  Neither do count variables.  It’s less obvious, because they are measured on a ratio scale, so it’s easier to think of them as continuous, or close to it.  But they’re neither continuous or unbounded, and this really affects assumptions.

Continuous variables measure how much.  Count variables measure how many.  Count variables can’t be negative—0 is the lowest possible value, and they’re often skewed–so severly that 0 is by far the most common value.  And they’re discrete, not continuous.  All those jokes about the average family having 1.3 children have a ring of truth in this context.

Count variables often follow a Poisson or one of its related distributions.  The Poisson distribution assumes that each count is the result of the same Poisson process—a random process that says each counted event is independent and equally likely.  If this count variable is used as the outcome of a regression model, we can use Poisson regression to estimate how predictors affect the number of times the event occurred.

But the Poisson model has very strict assumptions.  One that is often violated is that the mean equals the variance.  When the variance is too large because there are many 0s as well as a few very high values, the negative binomial model is an extension that can handle the extra variance.

But sometimes it’s just a matter of having too many zeros than a Poisson would predict.  In this case, a better solution is often the Zero-Inflated Poisson (ZIP) model.  (And when extra variation occurs too, its close relative is the Zero-Inflated Negative Binomial model).

ZIP models assume that some zeros occurred by a Poisson process, but others were not even eligible to have the event occur.  So there are two processes at work—one that determines if the individual is even eligible for a non-zero response, and the other that determines the count of that response for eligible individuals.

The tricky part is either process can result in a 0 count.   Since you can’t tell which 0s were eligible for a non-zero count, you can’t tell which zeros were results of which process.  The ZIP model fits, simultaneously, two separate regression models.  One is a logistic or probit model that models the probability of being eligible for a non-zero count.  The other models the size of that count.

Both models use the same predictor variables, but estimate their coefficients separately.  So the predictors can have vastly different effects on the two processes.

But a ZIP model requires it be theoretically plausible that some individuals are ineligible for a count.  For example, consider a count of the number of disciplinary incidents in a day in a youth detention center.  True, there may be some youth who would never instigate an incident, but the unit of observation in this case is the center.  It is hard to imagine a situation in which a detention center would have no possibility of any incidents, even if they didn’t occur on some days.

Compare that to the number of alcoholic drinks consumed in a day, which could plausibly be fit with a ZIP model.  Some participants do drink alcohol, but will have consumed 0 that day, by chance.   But others just do not drink alcohol, so will never have a non-zero response.  The ZIP model can determine which predictors affect the probability of being an alcohol consumer and which predictors affect how many drinks the consumers consume.  They may not be the same predictors for the two models, or they could even have opposite effects on the two processes.


Poisson and Negative Binomial Regression for Count Data
Learn when you need to use Poisson or Negative Binomial Regression in your analysis, how to interpret the results, and how they differ from similar models.

Reader Interactions


  1. Yitagesu Habtu says

    How, I can perform ” Zero inflated poisson regression , Zero inflated negative binomial regression” the Generalized Poisson Regression Using SPSS ?

  2. Jon says

    I have been searching everywhere to answer what is hopefully a simple question. Maybe you have an answer?

    The question is: Are the excess zeroes included when calculating the second model? To say it another way: If the logit models predicts you are not a candidate for a non-zero count, are your data included in the subsequent Poisson model?

  3. Isha says

    Hi Karen ,

    I am a student . I am doing my thesis GLM for non life insurance data set . i am using a simulated and a real motor insurance dataset to estimate number of claims, claims severity and total payment.
    to model number of claims which is a count process i have tried first poisson regression and found inappropriate because of overdispersion and then i tried Negative Binomial which give scale close to 1.
    i have a questions that is my dummy data set contains 35 records and contains 3 zero for number of claims variable out 35 . these 3 observation have 0 claims , 0 premium and they have some amount for actual premium. so do i need to use ZINB or NB model is fine with this analysis.
    I have gone through your videos and The analysis factor pages , it very help to understand poisson and NB. But for ZINB and ZIP i am still confuse . can you give me some suggestions on this topic.
    Thankyou very much.

    Best Regards
    Isha Kamboj

  4. aziz says

    Dear karen
    how can i know the data is zero inflated apart from descriptive statistics? is there any test statistic to commit the zero-inflated?


  5. Cara says

    Hi Karen,

    I have started following your webinars and have found your information to be very helpful and remarkably straightforward compared to many other sources out there. I was wondering about fitting ZINB and ZIP models as compared to their negative binomial and Poisson counterparts. I have data that could conceivably work with a ZINB model and indeed the goodness of fit metrics indicate that it works better than a standard negative binomial (AIC, Vuong’s test, Likelihood Ratio Test). However, my predictor variables are not significant in predicting the logistic part of the model. How is it possible for the model to be a better fit if my predictors cannot predict the added part of the model?

    Are there any models that use a negative binomial regression with an added on function that is just a constant probability of zero? Is that what I should be considering?


  6. Brian Chen says

    Dear Karen,

    How’ve you been? I am one of your students who are very thankful for your excellence online stats courses. I have a question from this article. Based on your words below:

    “But the Poisson model has very strict assumptions. One that is often violated is that the mean equals the variance. When the variance is too large because there are many 0s as well as a few very high values, the negative binomial model is an extension that can handle the extra variance…….”

    Due to the different level or degree of variance, are there rule of thumbs that can help researchers to choose for count data (particularly, I am most interested in hospital visit or inpatient/outpatient visit):
    (1) Poisson model,
    (2) Negative binomial model,
    (3) Zero-inflated Poisson model
    (4) Other model that can fit hospital visit well

    Thank you very much.

    Best wishes,

    • Karen says

      Hi Brian,

      Thanks for the kind words about my workshops. I’m glad you found it helpful.

      There aren’t really rules of thumb. There is a scale parameter that can either be set to 1 (this is often the default) or allowed to be estimated. Allow it to be estimated in a Poisson. If it’s much >1, you are violating Poisson assumptions and need to use either NB or ZIP (or even ZINB).

      Also keep an eye on model fit statistics like -2LL.

      As for whether to fit NB or ZIP, take a look at the frequency of zeros. If you’re running NB and still have many more zeros than the model is accounting for (this will happen if say 50% or more of observations are 0–but I’m making up 50%. It could be even lower), then you’ll need a zero inflated model.

      There are a few good books on this, one by J Scott Long and one by Joseph Hilbe. I would suggest reading as much as you can. These get tricky.


Leave a Reply

Your email address will not be published. Required fields are marked *

Please note that, due to the large number of comments submitted, any questions on problems related to a personal study/project will not be answered. We suggest joining Statistically Speaking, where you have access to a private forum and more resources 24/7.