I am trying to model weekly disease counts in 25 different regions within 1 country over a ten year period as influenced by temperature. The data is zero inflated and over dispersed.

I am most familiar with Stata but I don't think that there is any option amongst the gee, xtmixed, xtmepoisson etc. commands that allows me to account for the zero inflation and over dispersion issues as well as the autocorrelation.

I log transformed the incidence data and used a SARIMA model but the residuals are not quite normal. I think that there are versions of the ARIMA model for integer data like disease counts but I can't find a program for it.

I was also thinking that I could create a hierarchical model with random intercepts for each region and random effects of temperature in each region, while also accounting for the regular seasonal disease cycle. I believe that I could model this in R using a package like glmm.admb but due to my limited statistical and R knowledge I am not entirely sure how to do use it. I am mainly confused about accounting for the autocorrelation and seasonal cycle part of the data using a program like this.

Any advice on how to best do this?


You may want to check out hurdle() from the pscl package in R. It specifies two-component models, one that handles the zero counts and one that handles the positive counts. Check out the hurdle help page here.

EDIT: I just found this post in R help that describes the zeroinf() function in R (also from the pscl package), as well as gamlss and VGAM options. However, I don't believe that the VGAM options will allow you to take into account non-independent correlation structures.

Another option is the zinb command in Stata. Fitting a model using the negative binomial family will account for the overdispersion.

I am not sure if they allow for seasonality adjustments, however.

  • $\begingroup$ +1 In addition, look at the sandwich package which works hand-in-hand with functions in the pscl package to provide appropriate estimation of model covariance matrices that account fot the lack of independence. $\endgroup$ – Gavin Simpson Feb 24 '11 at 22:12

Another option for negative binomial regression in R is the excellent MASS package's glm.nb() function. UCLA's statistical consulting group has a pretty clear vignette, which unfortunately does not seem to provide any obvious insights into your autocorrelation issues, but maybe searching these various nb-regression options on R-seek or elsewhere would help?


If you have access to SAS 9.2 you could use PROC COUNTREG. It's a fairly new procedure and if you poke around the SAS site you can find out about it in the SAS/ETS(R) 9.2 User's Guide. COUNTREG does count modeling with or without zero inflation, has a "by" clause to split analyses, and allows both categorical and continuous variables.


Your Answer

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