[R] gamm: tensor product and interaction
Simon Wood
s.wood at bath.ac.uk
Tue Apr 3 15:18:50 CEST 2012
On 04/02/2012 01:26 PM, Mabille, Geraldine wrote:
> Hi list,
> I'm working with gamm models of this sort, using Simon Wood's mgcv library:
> gm<- gamm(Z~te(x,y),data=DATA,random=list(Group=~1))
> gm1<-gamm(Z~te(x,y,by=Factor)+Factor,data=DATA,random=list(Group=~1))
> with a dataset of about 70000 rows and 110 levels for Group
I would be inclined to use something like
gm<- gam(Z~te(x,y)+s(Group,bs="re"),data=DATA,method="REML")
gm1<-gam(Z~te(x,y,by=Factor)+Factor+s(Group,bs="re"),data=DATA,method="REML")
AIC(gm,gm1)
See ?random.effects in the mgcv help for more details.
> in order to test whether tensor product smooths vary across factor levels. I was wondering if comparing those two models would be enough to conclude? I saw a preceding post on similar issues
> http://r.789695.n4.nabble.com/Comparing-and-Interpreting-GAMMs-td2234209.html
> but that example used simple s() smooths instead of tensor product smooths. In this case, the person was comparing between model A and model A1 like:
>
> A<-gamm4(Z~factor+s(x)+s(x,by=factor) ,data=DATA, random=~(1|Group))
> A1<- gamm4(Z~factor+s(x) ,data=DATA, random=~(1|Group))
>
> I thus also tried to compare my model gm1, with another gm2 model of that sort:
> gm2<-gamm(Z~te(x,y)+te(x,y,by=Factor)+Factor,data=DATA,random=list(Group=~1))
> but this type of models never converge and I obtain error messages of that sort: Error in MEestimate(lmeSt, grps) : Singularity in backsolve at level 0, block 1
- The problem is that te(x,y) and te(x,y,by=Factor) are confounded. You
can get around this by making `Factor' into an ordered factor. See te
`by' variable section in ?gam.models.
> 2 questions from that:
> 1) Keeping in mind that my main question is to check whether tensor products smooths vary across factor levels, would the comparison of models gm and gm1 be sufficient for me?
- I'd have thought so.
> 2) Otherwise, is there something wrong in my gm2 model that make it impossible to converge??
>
> Also, side question that I already posted a few days ago but didn't get an answer for:
> 3)I don't manage to use vis.gam() to print 3 different 2D-contour plots for the three levels of factors I have in model gm1. It works well with model gm (when only one plot is generated) but not gm1 (3 plots should be generated)
> Here is the error message I obtain:
> vis.gam(gm1$gam,plot.type="contour",n.grid=200,color="heat",zlim=c(0,4))
> Error in predict.gam(x, newdata = newd, se.fit = TRUE, type = type) : number of items to replace is not a multiple of replacement length
- hmm, possibly a bug. I'll look into it.
best,
Simon
> Thanks a lot if someone can help with that,
> Geraldine
>
>
>
>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> 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.
>
More information about the R-help
mailing list