| smooth.construct.re.smooth.spec {mgcv} | R Documentation | 
gam can deal with simple independent random effects, by exploiting the link 
between smooths and random effects to treat random effects as smooths. s(x,bs="re") implements 
this. Such terms can can have any number of predictors, which can be any mixture of numeric or factor 
variables. The terms produce a parametric interaction of the predictors, and penalize the corresponding 
coefficients with a multiple of the identity matrix, corresponding to an assumption of i.i.d. normality.
See details.
## S3 method for class 're.smooth.spec' smooth.construct(object, data, knots) ## S3 method for class 'random.effect' Predict.matrix(object, data)
object | 
 For the   | 
data | 
 a list containing just the data (including any   | 
knots | 
 generically a list containing any knots supplied for basis setup — unused at present.  | 
Exactly how the random effects are implemented is best seen by example. Consider the model 
term s(x,z,bs="re"). This will result in the model matrix component corresponding to ~x:z-1 
being added to the model matrix for the whole model. The coefficients associated with the model matrix 
component are assumed i.i.d. normal, with unknown variance (to be estimated). This assumption is 
equivalent to an identity penalty matrix (i.e. a ridge penalty) on the coefficients. Because such a 
penalty is full rank, random effects terms do not require centering constraints. 
If the nature of the random effect specification is not clear, consider a couple more examples: 
s(x,bs="re") results in model.matrix(~x-1) being appended to the overall model matrix, 
while  s(x,v,w,bs="re") would result in  model.matrix(~x:v:w-1) being appended to the model 
matrix. In both cases the corresponding model coefficients are assumed i.i.d. normal, and are hence 
subject to ridge penalties.
Note that smooth ids are not supported for random effect terms. Unlike most smooth terms, side 
conditions are never applied to random effect terms in the event of nesting (since they are identifiable 
without side conditions).
Random effects implemented in this way do not exploit the sparse structure of many random effects, and 
may therefore be relatively inefficient for models with large numbers of random effects, when gamm4
or gamm may be better alternatives. Note also that gam will not support 
models with more coefficients than data. 
 An object of class "random.effect" or a matrix mapping the coefficients of the random effect to the random effects themselves.
Simon N. Wood simon.wood@r-project.org
Wood, S.N. (2008) Fast stable direct fitting and smoothness selection for generalized additive models. Journal of the Royal Statistical Society (B) 70(3):495-518
## see ?gam.vcomp