Imagine that I have 40 observations in region A, and 50 observations in region B. The total size of region A in square kilometers is 50km, and the total size of region B is 40km. Within each region, each observation has a count of events that ranges from 0 (fairly frequent) to 20.

What is the best way to hypothesis test for a difference in mean events per square kilometer between region A and region B?

I've considered the following options: 1) Using a negative binomial regression with the area of each observation as a covariate. 2) Scaling the dependent variable (event counts) somehow. 3) Subsetting A and B via matching to achieve an equivalent total area on each side.

Thanks in advance.


2 Answers 2


What about a robust poisson regression with a logarithmic offset for area? The linked example uses time, but I think the intuition carries over to space.


If zeros are "fairly frequent" in your data, it sounds like a zero-inflated model might be appropriate. In order to account for covariates like the area, you may want to look at zero-inflated Poisson regression.

  • $\begingroup$ So you think that adding the area as a covariate and then modeling the over-dispersion of 0's is the best approach here? One additional option that didn't occur to me -- what about running a weighted regression with the weights determined by land area. $\endgroup$
    – reson
    Feb 5, 2013 at 16:54
  • $\begingroup$ It's really hard to say without knowing the specifics of your problem. Zero-inflated Poisson regression will allow you to model causal effects like area both on the amount of zero inflation and on the Poisson parameter (or only in one of the two components). Which model to use will depend on the underlying causalities of zero inflation and event count you hypothesize. $\endgroup$ Feb 5, 2013 at 17:00
  • $\begingroup$ interesting discussion about zinf models here: statisticalhorizons.com/zero-inflated-models $\endgroup$
    – qwwqwwq
    Jul 3, 2013 at 18:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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