[R] negative binomial family glm R and STATA
Mikis Stasinopoulos
d.stasinopoulos at londonmet.ac.uk
Mon Jan 8 00:14:05 CET 2007
Dear Patrick
Try the package gamlss which allow to fit the negative binomial
distrbution. For example with your data I am getting
#---------------------------------------------------
ga1<-gamlss(nbcas~.,data=zonesdb4,family=NBI)
GAMLSS-RS iteration 1: Global Deviance = 817.9027
GAMLSS-RS iteration 2: Global Deviance = 817.9025
ga1
Family: c("NBI", "Negative Binomial type I")
Fitting method: RS()
Call: gamlss(formula = nbcas ~ ., family = NBI, data = zonesdb4)
Mu Coefficients:
(Intercept) pop Area V_100kHab1 gares1
3.204e+00 1.114e-05 1.354e-05 9.144e-01 7.946e-01
ports1 axe_routier1 axe_routier2 lacs1
-1.730e+00 1.989e-01 NA 3.042e+00
Sigma Coefficients:
(Intercept)
2.313
Degrees of Freedom for the fit: 9 Residual Deg. of Freedom 83
Global Deviance: 817.902
AIC: 835.902
SBC: 858.599
#--------------------------------------------------------------
Note that the AIC: 835.902 is similar to your fitted model using glm.nb
which is AIC: 836.2.
The coefficients are not identical but this is not suprissing when you
are using x-variables with extreme values as pop and Area.
The profile function for sigma can be found using
prof.dev(ga1,"sigma", min=7, max=16, step=0.1, type="l")
Your discrepancy with STATA come from the fact that in STATA you are
fitting the model with sigma fixed to 1.
You can see that by fitting the same model in GAMLSS.
> ga2<-gamlss(nbcas~.,data=zonesdb4,family=NBI, sigma.fix=T,
sigma.start=1)
GAMLSS-RS iteration 1: Global Deviance = 1194.299
GAMLSS-RS iteration 2: Global Deviance = 1194.298
This is similar to the log likelihod you are getting in STATA. i.e.
-2*-597.14778= 1194.296.
You can also use the stepGAIC() function to simplify your model. For
example
ga2<-stepGAIC(ga1)
will result to a model with only pop and lacs in the mdel.
Note also the the Negative binomial type II fits better to you data.
> ga3<-gamlss(nbcas~.,data=zonesdb4,family=NBII)
GAMLSS-RS iteration 1: Global Deviance = 804.5682
...
GAMLSS-RS iteration 10: Global Deviance = 804.4995
Thanks
Mikis
More information about the R-help
mailing list