This is my first question in stats Stack Exchange and I would say that it is an easy one, but hard to find around!

I have a set of fish counts which should follow a Poisson Distribution (right ? ). However, due to a high number of outliers, it does not, except if I log transform my data. If I nathurally log transform the data, it fits Poisson very well!! Am I breaking any natural law?

Also, I do not really know what is the point of fitting a model into my data. I want to test for differences across sampling sites and across time, but for that I am already using Kruskal-Wallis (I need the robustness to deal with the outliers). What are the benefits of modelling the data?

Thanks a lot to the stats community!! :)

  • 1
    $\begingroup$ The poisson model requires integers for the response variable. Log transforming a count variable would cause a problem for that. $\endgroup$
    – logistic
    Nov 11, 2019 at 14:52
  • $\begingroup$ what do you do with zero counts? (Or are your counts so large that a zero is extremely unlikely?) $\endgroup$
    – Glen_b
    Nov 11, 2019 at 15:01
  • $\begingroup$ There are no zero counts. The counts are made on a list of species, and all of them where observed at each site. $\endgroup$
    – CescGV
    Nov 11, 2019 at 15:03
  • $\begingroup$ Do you really mean outliers, or do you mean that the distribution is overdispersed, i.e. has a higher variance than expected? That's pretty normal in real data. You might see if it follows a gamma-poisson distribution (also known as NBD or negative binomial distribution). @Paul_Hewson implies this possibility in his point #1: The counts may be poisson at each individual site, but the distribution of the site means might follow a gamma distribution. $\endgroup$
    – zbicyclist
    Nov 11, 2019 at 15:30
  • $\begingroup$ If there are no zero counts then, unless the mean is fairly large or the sample size is small, it isn't a Poisson. It might be a truncated Poisson. In addition, surely there are really a LOT of zeroes. Wherever a species wasn't observed, it's a 0, right? $\endgroup$
    – Peter Flom
    Nov 12, 2019 at 12:14

1 Answer 1


I thought the (very old fashioned) default transform if you're trying to use ordinary least squares regression was a square root. However, since 1972, the preferred approach would be to use a generalised linear model where you assume Poisson errors, a log link function and use a standard linear predictor. You can form a model such that $Y_{st} \sim Poisson(\lambda_{st})$ and then model $\log(\lambda_{st}) = \beta_0 + \beta_{s} + \beta_{t} + \beta_{st}$. Unpacking this a little: 1. I wouldn't expect your fish counts to follow a Poisson distribution. I might expect your conditional fish counts (conditional on whichever time point and location) to follow a Poisson distribution 2. The advantage of your model is that you can examine the structure of your data. I suggested a very simple log-linear model above, with interactions. But you could modify this so you had a trend for time ($\beta_t \times time$), you could allow the time trend to interact with the sites because you think the trend might be different at different sites, and compare that with a model where all trends are the same. Hence you learn something you can't from a Kruskal-Wallis. You can even consider mathematical models for growth/death/recruitment etc. if you have them. All in all, putting this in a model framework opens up a whole world of data interpretation. Hope that helps.


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