In mgcv::gam smooths are represented using basis functions. The `k' argument of `s' specifies the number of basis functions to use. Its default value is 10. If you have fewer than k unique covariate values then the basis can not be set up. So you need to reduce k to at most the number of unique covariate values that you have.
Here is an example... > x <- rep(1:9*10,10) > unique(x) ## 90 data, but only 9 values [1] 10 20 30 40 50 60 70 80 90 > y <- runif(90)*100 > gam(asin(sqrt(.01*y))~s(asin(sqrt(.01*x)))) ## fails k=10 is too large Error in smooth.construct.tp.smooth.spec(object, data, knots) : A term has fewer unique covariate combinations than specified maximum degrees of freedom > gam(asin(sqrt(.01*y))~s(asin(sqrt(.01*x)),k=9)) ## no problem, k=9 is fine Family: gaussian Link function: identity Formula: asin(sqrt(0.01 * y)) ~ s(asin(sqrt(0.01 * x)), k = 9) Estimated degrees of freedom: 5.302189 total = 6.302189 GCV score: 0.1204443 On Wednesday 17 October 2007 18:03, Francesc Montan� wrote: > Hello useRs! > > I have % cover data for different plant species in 300 plots, and I use > the ARCSINE transformation (to deal with % cover data). > When I use a GLM I do not have any problem. > But when I am trying to use a GAM model using mgcv package, to account for > non-linearity I get an “error message”. > > I use the following model: > > sp1.gam<-gam(asin(sqrt(0.01*SP1COVER))~ s(asin(sqrt(0.01*SP2COVER)))+ > s(asin(sqrt(0.01*SP3COVER)))+ s(asin(sqrt(0.01*SP4COVER)))+ > s(asin(sqrt(0.01*SP5COVER))), family=gaussian, data=plantcover, > na.action=na.pass) > > The error message is the following: > > "Error in smooth.construct.tp.smooth.spec(object, data, knots) : > A term has fewer unique covariate combinations than specified maximum > degrees of freedom" > > It seems that some variables in the model give problems,…What is the > reason of this error message? > What I do is trying to erase randomly some of the variables (those that I > expect to have more zeros) in the model (for instance run the same model > without the SP5COVER term) and try if I get the error message again or > not,… but this is time consuming. > What can I do? > > Thanks! > > Francesc > > ______________________________________________ > R-help@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 Sciences, University of Bath, Bath, BA2 7AY UK > +44 1225 386603 www.maths.bath.ac.uk/~sw283
______________________________________________ R-help@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.