Raeanne Miller
2012-Dec-07 12:00 UTC
[R] Negative Binomial GAMM - theta values and convergence
Hi there, My question is about the 'theta' parameter in specification of a NB GAMM. I have fit a GAM with an optimum structure of: SB.gam4<-gam(count~offset(vol_offset)+ s(Depth_m, by=StnF, bs="cs")+StageF*RegionF, family=negbin(1, link=log), data=Zoop_2011[Zoop_2011$SpeciesF=='SB',]) However, this GAM shows heterogeneity in the residuals, and the model fit is not great. I would like to add a random effect to this GAM, for station (StnF), and a spatial correlation structure, for Depth_m. When trying to fit an equivalent GAMM to start with, I used the formula: SB.gamm1<-gamm(count~offset(vol_offset)+ s(Depth_m,by=StnF,bs="cs")+StageF*RegionF, family=negative.binomial(theta=1.41), niterPQL=50, data=Zoop_2011[Zoop_2011$SpeciesF=='SB',]) The theta=1.41 came from SB.gam4, using the theta.ml() command. However, this model does not converge, even with 5000 iterations. When I increase theta to 6, the model converges, but I'm not sure why. I have also tried theta=c(1,10), which converges, but gives me lots of warnings: Warning messages: 1: In y + .Theta : longer object length is not a multiple of shorter object length Can anyone tell me why this might be? The model also does not ever converge if I replace family=negative.binomial() with family=negbin(). I've looked at the help files for GAM and GAMM, and I'm not sure what the difference between these is? I have attached code to create my dataset, for those interested. With many thanks, Raeanne The Scottish Association for Marine Science (SAMS) is registered in Scotland as a Company Limited by Guarantee (SC009292) and is a registered charity (9206). SAMS has an actively trading wholly owned subsidiary company: SAMS Research Services Ltd a Limited Company (SC224404). All Companies in the group are registered in Scotland and share a registered office at Scottish Marine Institute, Oban Argyll PA37 1QA. The content of this message may contain personal views which are not the views of SAMS unless specifically stated. Please note that all email traffic is monitored for purposes of security and spam filtering. As such individual emails may be examined in more detail. -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: Zoop_2011.txt URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20121207/541f4f52/attachment-0002.txt>
Simon Wood
2012-Dec-07 16:40 UTC
[R] Negative Binomial GAMM - theta values and convergence
Hi Raeanne, gamm fits using PQL, which doesn't always converge, however looking at your data, a couple of things stand out... 1. Trying a Tweedie seemed to give nicer residual plots than the negative binomial, and also converges with gamm. e.g. SB.gam3<-gam(count~offset(vol_offset)+ s(Depth_m, by=StnF, bs="cs")+StageF*RegionF+s(StnF,bs="re"), family=Tweedie(p=1.4), data=Zoop_2011[Zoop_2011$SpeciesF=='SB',],method="ML") SB.gam3 plot(fitted(SB.gam3)^.5,residuals(SB.gam3)) qq.gam(SB.gam3) ... I just searched over p=1.2-1.6 in steps of .1 to find the optimum value for the Tweedie p parameter according to the ML score. see ?Tweedie 2. If you only need a random effect for StnF, and don't have to have the spatial autocorrelation structure then you can add the random effect in gam, as above - this will be much more efficient than using gamm (doesn't use PQL). See ?random.effects. best, Simon On 07/12/12 12:00, Raeanne Miller wrote:> Hi there, > > My question is about the 'theta' parameter in specification of a NB GAMM. > > I have fit a GAM with an optimum structure of: > > SB.gam4<-gam(count~offset(vol_offset)+ > s(Depth_m, by=StnF, bs="cs")+StageF*RegionF, > family=negbin(1, link=log), > data=Zoop_2011[Zoop_2011$SpeciesF=='SB',]) > > However, this GAM shows heterogeneity in the residuals, and the model fit is not great. I would like to add a random effect to this GAM, for station (StnF), and a spatial correlation structure, for Depth_m. When trying to fit an equivalent GAMM to start with, I used the formula: > > SB.gamm1<-gamm(count~offset(vol_offset)+ > s(Depth_m,by=StnF,bs="cs")+StageF*RegionF, > family=negative.binomial(theta=1.41), niterPQL=50, > data=Zoop_2011[Zoop_2011$SpeciesF=='SB',]) > > The theta=1.41 came from SB.gam4, using the theta.ml() command. However, this model does not converge, even with 5000 iterations. When I increase theta to 6, the model converges, but I'm not sure why. I have also tried theta=c(1,10), which converges, but gives me lots of warnings: > > Warning messages: > 1: In y + .Theta : > longer object length is not a multiple of shorter object length > > Can anyone tell me why this might be? > > The model also does not ever converge if I replace family=negative.binomial() with family=negbin(). I've looked at the help files for GAM and GAMM, and I'm not sure what the difference between these is? > > I have attached code to create my dataset, for those interested. > > With many thanks, > > Raeanne > The Scottish Association for Marine Science (SAMS) is registered in Scotland as a Company Limited by Guarantee (SC009292) and is a registered charity (9206). SAMS has an actively trading wholly owned subsidiary company: SAMS Research Services Ltd a Limited Company (SC224404). All Companies in the group are registered in Scotland and share a registered office at Scottish Marine Institute, Oban Argyll PA37 1QA. The content of this message may contain personal views which are not the views of SAMS unless specifically stated. Please note that all email traffic is monitored for purposes of security and spam filtering. As such individual emails may be examined in more detail. > > > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >-- Simon Wood, Mathematical Science, University of Bath BA2 7AY UK +44 (0)1225 386603 http://people.bath.ac.uk/sw283
Possibly Parallel Threads
- lattice: loess smooths based on y-axis values
- help understanding hierarchical clustering
- structural equation modeling in sem, error, The model has negative degrees of freedom = -3, and The model is almost surely misspecified...
- SEM model fit
- Generalized additive models: Plots for Qualitative Data