I'm currently trying to investigate relationships between habitat characteristics and animal abundances using GLMs. I've gone through the process of whittling down possible predictors and have a final model that I think is both biologically and statistically meaningful.

Unfortunately I have a huge problem with over-dispersion in my data. One of my collaborators has suggested that running the GLM using an "exponential distribution with a reciprocal link" should help to mitigate this problem.

From the research I've done online, it seems like the only way I can run a GLM with an exponential distribution in R is to first run a GLM using the gamma distribution, and then specify the dispersion as 1 in the summary. For example, like this:

fit <- glm(y~x, family=Gamma(link="inverse"))
summary(fit, dispersion=1)

Unfortunately one of my predictors has negative values, and when I try to run the GLM with it included I get an error saying that non-positive values are not allowed with the gamma family.

I know it's possible to run this combination of GLM with exponential distribution and negative values for predictors in other programs (i.e., JMP), but haven't been able to figure out how to work around this problem in R.

  • 6
    $\begingroup$ The problem isn't that a predictor is negative: it's that a response is negative. That's an obvious non-starter for a model that can only produce positive values! Rather than fixing up this abortive beginning--with a high risk of producing a nonsensical model--you would be better off explaining your data and your objectives and asking advice about modeling them. $\endgroup$ – whuber Jan 18 '17 at 23:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.