It's my first question here, I hope I'll ask it correctly. I am trying to find out how to analyse non-integer, count data (yes!). I am looking at the effect of a given treatment on habitat suitability for some birds, measured as number of territories. Some of the territories are inbetween two plots with different treatments, such that I had to distribute the territories between the plots. I end up with half and quarter territories.

EDIT My dataset looks like this:

   year         plot    treatment   territories    location surface
1  1985         1569         ctrl           1.0     Cheyres     1.2
2  1986         1569         ctrl           1.0     Cheyres     1.2
3  1987         1569            1           0.0     Cheyres     1.2 
4  1988         1569            2           2.0     Cheyres     1.2
5  1989         1569            3           6.5     Cheyres     1.2
6  1990         1569            1           1.5     Cheyres     1.2

Where year, plot, location and treatment are factors.

I've tried a GLMM with Poisson distribution (in R):

glmmacrsci1 <- glmer(territories ~ treatment * (1|year) * (1|location/plot), 
                     offset=surface, family="poisson", data=acrsci)

When running this, I get the usual non-integer warnings (e.g.):

In dpois(y, mu, log = TRUE) : non-integer x = 1.500000

and I get infinite AIC, BIC, and deviance:

 AIC      BIC   logLik deviance df.resid 
 Inf      Inf     -Inf      Inf      775 

Most other questions related to non-integer counts were about rates, which can apparently be circumvented by using an offset. However I don't think it's possible in my case.

My questions to you:

1) Is it correct to use a GLMM with Poisson distribution with such data? (I don't think so but glmer seems to work anyway)

2) Can you think of any alternative to Poisson for my data?

  • 2
    $\begingroup$ I would count partials as whole. If you think it's wrong, then maybe your territories are too big, split them in smaller pieces. You should not be applying Poisson to fractionals. $\endgroup$
    – Aksakal
    Jul 11, 2016 at 14:04
  • 1
    $\begingroup$ Poisson is a distribution for non-negative integer values (see en.wikipedia.org/wiki/Poisson_distribution) so you can't use it for non-integers. Also, by "count data" we mean integer-valued data (en.wikipedia.org/wiki/Count_data). $\endgroup$
    – Tim
    Jul 11, 2016 at 14:05
  • 2
    $\begingroup$ You can't count non-integers, I'm sorry. Don't call your measurements counts it confuses everybody including yourself. Once you stop calling them counts things will get much clearer, you'll rid yourself the desire to apply Poisson, for one, and open your mind to other approaches. $\endgroup$
    – Aksakal
    Jul 11, 2016 at 14:50
  • 3
    $\begingroup$ I personally think this could work, but github.com/lme4/lme4/issues/180 $\endgroup$
    – Ben Bolker
    Jul 11, 2016 at 15:25
  • 4
    $\begingroup$ You can use poisson for non-integer data, as long as you use het-robust standard errors. This approach is fairly common in econometrics and statistics and goes under the name quasi-likelihood or quasi-MLE theory. Having said that, I am not sure it this is the best approach given your specifics. $\endgroup$
    – dimitriy
    Jul 11, 2016 at 17:12

2 Answers 2


1) Is it correct to use a GLMM with Poisson distribution with such data? (I don't think so but glmer seems to work anyway)

No, it is not correct. By "count data" we generally mean data that records number of cases, so it can be only non-negative and integer-valued. The same is with Poisson distribution, that is a distribution for non-negative integer-valued data. Under Poisson distribution probability of observing non-integer value is zero and R behaves accordingly to it:

dpois(c(1, 1.5, 2, 2.5, 3), 5)
## [1] 0.03368973 0.00000000 0.08422434 0.00000000 0.14037390
## Warning messages:
## 1: In dpois(c(1, 1.5, 2, 2.5, 3), 5) : non-integer x = 1.500000
## 2: In dpois(c(1, 1.5, 2, 2.5, 3), 5) : non-integer x = 2.500000

You can estimate log-linear glmm using this data but assuming Poisson distribution means that you treat all the non-integers as improbable values so R throws appropriate warnings. This means that the estimates of log-likelihood and the ones based on it, like AIC, won't be what you want them to be.

This doesn't mean that you cannot estimate log-linear regression with non-integer data. You can, but you can't assume Poisson distribution for such data.

See also What regression model is the most appropriate to use with count data? thread (check also the discussion in comments below the answer) and How does a Poisson distribution work when modeling continuous data and does it result in information loss? .

  • 2
    $\begingroup$ A lot of the criticism here centers on whether the numbers are integers, and the observation that the Poisson distribution is restricted to the integers. But it seems the more productive reading of the question would examine what happens if we generalize the Poisson distribution to nonnegative reals using the gamma function. $\endgroup$
    – Sycorax
    Jul 12, 2016 at 2:04
  • $\begingroup$ @GeneralAbrial I know. I explicitely focused on the Q1 since I am not that sure what is the best approach for this data and if the "counts" from this description make sens. $\endgroup$
    – Tim
    Jul 12, 2016 at 9:21

Since the problem arises because two treatments are relevant for the territory why not create a new pseudo-treatment? So if you have treatments A, B, C then a territory which receives A and B is recorded as having received AB? Obviously this could lead to a multiplicity of treatments with correspondingly few occurrences but without more information about your data we cannot tell whether that is going to be tricky.

  • $\begingroup$ Nice proposition, although I'm afraid it's going to be even more complicated. Basically I have surveyed singing birds and reported their positions on a map. After several surveys I've superimposed a "treatment map" to my "singing birds map". I've then distributed the territories to each plot (a plot is a subdivision of my study area that received a given treatment). Since my replication unit is the plot and not the territories, your advice will be hard to execute (i.e. each plot has received a unique treatment and bears a variable number of territories). Does it make sense? $\endgroup$ Jul 11, 2016 at 14:56

Your Answer

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

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