I am trying to do a logistic regression to look at the relationship between the number of cigarettes smoked by subjects in a sample (0-60 per day) and a yes/no outcome. As a lot of people in the sample are non-smokers, there are lot of zeros for the continuous covariate.

I have a few questions about this:

  • Is this correctly described as a zero-inflated continuous covariate?
  • Will this cause "problems" in the logistic regression e.g. affect the validity of the coefficients etc.
  • Should a stratified be carried out on smokers and non-smokers instead?



If the zero-inflation is extreme, it will cause problems, not because it violates assumptions but because of the sense of the regression. I think it will cause problems here. Many studies use two smoking variables: Yes/No and then number (just among smokers).

Logistic regression in its usual form assumes that the relationship is linear in the logit; that is, the difference in the logit between 0 and 1 cigarettes is the same as between 1 and 2:

$f(z) = \frac{1}{1 + e^{-z}}$


$z = \beta_0 + \beta_1 + ... \beta_p$

Such a linear relationship seems unlikely here (although you don't say what your DV is)

One could use a spline of B instead (see, e.g. this article. If I recall, Frank Harrell's book discusses these models as well. However, a yes/no + number analysis might be easier to interpret.

  • $\begingroup$ Hi Peter, many thanks for your insights. You say that many studies include two smoking variables. Do you mean they have a model of the form: y=B0+B1(SMOKER)+B2(CIGARETTES) per day (wouldn't the fact that CIGARETTES=0 for all SMOKER=0 cause instabilities)? Or that they do a stratified analysis y=B0+B1(CIGARETTES) just using the data on smokers? $\endgroup$ – N26 Apr 16 '12 at 14:29
  • $\begingroup$ Ps: I agree a linear relationship is probably unlikely. I have a number of zero inflated covariates like this and just want to get a sense of some of the issues with dealing with such data. Many thanks again. $\endgroup$ – N26 Apr 16 '12 at 14:34
  • $\begingroup$ I think they mostly do stratified analyses. $\endgroup$ – Peter Flom - Reinstate Monica Apr 16 '12 at 15:34
  • $\begingroup$ You would set up the model as y=B0+B1(NONSMOKER)+B2(CIGARETTES). This would give y=B0+B1 for non-smokers and y=B0+B2(CIGARETTES) for smokers (on the logit-scale, of course). $\endgroup$ – Aniko Apr 16 '12 at 15:54

(Reinforcing Peter Flom's answer) In marketing, the standard is to model whether they buy the product (yes/no, logistic) and then the number of purchases among those who buy the product. A third variable would be the average size of the purchase. In line with this, you'd have a yes/no on smoker and then only among smokers model the number of cigarettes.

These analyses do not always point in the same direction; it's not unusual for advertising to increase the number of buyers but have little effect on how often they buy, for example.

  • $\begingroup$ Hi thanks for the feedback. I'm actually using "number of cigarettes" as a predictor rather than an outcome. How would you guys in marketing deal with this? $\endgroup$ – N26 Apr 18 '12 at 11:24

Since nobody's mentioned it, you could also think of your data as the result of a two step process, e.g. some personal facts determine whether a subject smokes, and then some possibly different facts determine how the intensity of smoking affects the question outcome.

This approach puts in the domain of explicit selection models, of which Heckman and Tobit regression are familiar examples for continuous dependent variables. The statistical issues arise due to the possibility of correlated errors in the two steps. There exist relatively straightforward extensions to probit models to cover your categorical dependent variable: try googling 'double probit' for details. I think this would be the model class corresponding to @zbicyclist's answer.


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.