I'm trying to determine the effects of four treatments on flowers on the volume of nectar available to pollinators. Problem is, I have about 50% zero volumes across treatment categories. What is the best approach to comparing mean volumes between treatments?

  • $\begingroup$ If there are "lots of zeros" ... how is it continuous? And if it's continuous, why is "Poisson" one of your tags? $\endgroup$ – Glen_b Oct 7 '13 at 23:18
  • $\begingroup$ @Glen_b There could be lots of zeroes and continuous data. E.g. if you asked "total number of miles traveled by air in last 12 months" of a random sample of people (technically, I guess 'miles' is a count, but it would certainly be treated as continuous). I don't know why 'Poisson' is a tag here though $\endgroup$ – Peter Flom Oct 7 '13 at 23:51
  • $\begingroup$ @PeterFlom That would be an example of a mixture distribution, not an actually continuous distribution. The portion that is above zero is continuous, certainly, but the distribution overall is not. $\endgroup$ – Glen_b Oct 8 '13 at 0:00
  • $\begingroup$ @Glen_b OK, technically you are right, but I bet this is the sort of thing that busybee means. He said "continuous response variable", which I think this is, even if it's from a mixture distribution, but I also think this gets a bit pedantic about the semantics. $\endgroup$ – Peter Flom Oct 8 '13 at 0:03
  • 1
    $\begingroup$ @PeterFlom It often makes a difference; for example, if one proposes to use a rank-based technique (it is stated to be continuous, so it must be okay, right?) ... but in fact that spike at zero is a problem. Better to be crystal clear about the properties of the random variables are that are at hand than let sloppiness lead us into otherwise easily-avoided errors. For example, if someone really is analyzing flight miles and for those that travel at all, a gamma distribution is a reasonable model, a zero-inflated distribution may work quite well for the overall data, ... (ctd) $\endgroup$ – Glen_b Oct 8 '13 at 0:08

There is finite mixture model regression. In SAS you can do this with PROC FMM, see this article; in particular, example 1 deals with excess zeroes in a Poisson model (ZIP) but because of the structure of FMM you can substitute normal for poisson in the code, e.g. something like :

proc fmm data= dataset;
model dv = ivs / dist=normal;
model dv = / dist=constant;
probmodel ivs;

In R there is the flexmix package, which seems to provide similar with the function FLXMRziglm.


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.