I have aggregated death counts and some categorical predictors e.g. era, drug use, and I'm running a Poisson GZLM in SPSS, also a glm in Stata (generalized linear model). There are many, but not excessive, zeros and it has been suggested to me to add 0.5 to the observed values. When I do that the GENLIN procedure in SPSS won't run, because the Poisson dependent should have integer values. However, the glm with family Poisson and log link in Stata runs and just makes a note that the dependent has non-integer values.

Why does Stata run the Poisson glm if the values of the dependent should be integers only?

  • 1
    $\begingroup$ When you say there are many zeroes - are there more than would be expected for a Poisson model? Or is it just that the Poisson mean is quite small? $\endgroup$ – Glen_b Oct 16 '13 at 22:37
  • 2
    $\begingroup$ Just adding 0.5 strikes me as a fudge at best; do you have literature or theoretical support for that? $\endgroup$ – Nick Cox Oct 16 '13 at 22:45
  • $\begingroup$ Some useful references on the why. $\endgroup$ – Dimitriy V. Masterov Oct 16 '13 at 23:32

One of the reasons why this feature of glm is useful is the possibility to perform quasi-maximum likelihood estimations. I cannot be be sure if this was originally the main purpose for not restricting the admissible domain of the dependent variable, but it gives you a good example of a setting where this is very useful.

See, as a similar case, the fractional regression, where the dependent variable is continuous in [0,1] instead of binary but the link function is often chosen to be a normal cdf or a logistic function. As long as the likelihood belongs to the linear exponential family and the range of variation of the dependent variable is the same, the parameters of the conditional mean are consistently estimated (even if the distribution of the dependent variable is misspecified; see GMT(1984)).

The command fracreg [logit|probit] has been around for a while now and performs this estimation, but an alternative is just glm y X, link(logit) family(binomial) vce(robust) (and when Papke & Wooldridge (1996) was published the only way in Stata; see Baum(2008)). In both cases the estimation is by quasi-maximum likelihood.

See also at the link that Nick Cox posted in a comment above: "It turns out that the estimated coefficients of the maximum-likelihood Poisson estimator in no way depend on the assumption that E(yj) = Var(yj), so even if the assumption is violated, the estimates of the coefficients b0, b1, …, bk are unaffected." That's exactly what I am talking about.


Baum (2008) Stata Tip 63: Modeling Proportions, The Stata Journal

Goriereux, Monfort, Trognon (1984), Pseudo Maximum Likelihood Methods: Theory

Papke, Wooldridge (1996), Econometric Methods for Fractional Response Variables With an Application to 401 (K) Plan Participation Rates


You can fit a Poisson model to any kind of data. But it doesn't really make sense to fit it to data that have non-integers, because it's supposed to be counts.

SPSS is worrying about that. Stata isn't.

Have you tested to see if you do have too many zeroes? (I always do.) If you do, you should run negative binomial regression instead. In Stata, run:

estat gof

after a Poisson regression to get a test of goodness of fit.

(Just as an aside, it's the opposite way around with non-integer frequency weights, Stata won't allow them, SPSS will.)

  • 5
    $\begingroup$ If you think there are too many zeros, you may want to run a zero-inflated Poisson (zip) model, instead of negative binomial, which is more for overdispersion. $\endgroup$ – gung Oct 16 '13 at 21:47
  • 3
    $\begingroup$ More precisely, SPSS is worrying about enough to not let the model run, while 'Stata` is telling the user it's a problem but letting the user deal with that. Also, as @gung points out, for too many zeroes, a ZIP model seems more apropos; for overdispersion, negative binomial; for both - ZINB. $\endgroup$ – Peter Flom Oct 16 '13 at 22:31
  • 5
    $\begingroup$ The view that Poisson regression is for counts only is widely rebutted: for one informal account with Stata flavour see blog.stata.com/2011/08/22/… Also, for Stata "non-integer frequency weights" just can't be frequency weights, but they can be analytic weights. $\endgroup$ – Nick Cox Oct 16 '13 at 22:48
  • 2
    $\begingroup$ Stata commands relevant (here names are self-explanatory): zip, zinb, nbreg. $\endgroup$ – Nick Cox Oct 16 '13 at 22:51
  • 1
    $\begingroup$ Here's a simulation paper where the Poisson quasi-MLE does very well when there are lots of zeros. $\endgroup$ – Dimitriy V. Masterov Oct 17 '13 at 1:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.