So far we have assumed that random errors are independent with equal variances. In this section, we consider model () with model space for given in (), and . When is completely known, we transform the data into iid case and fit as in previous sections. In the following we assume that depends on a parsimonious set of parameters .

We estimate as the minimizer of the following penalized weighted
least squares

Again, the solution has the form () (Wang, 1998b).

Correlated random errors may have a profound effect on methods for
selecting smoothing parameters such as GCV, GML and UBR
(Wang, 1998b). Extensions of GCV, GML and UBR methods with
correlated random errors were developed in Wang (1998b). It was
found that the extended GML method has the best overall
performance. Therefore, we concentrate on the extended GML method
here. Fixing , the extended GML method estimates smoothing
parameters
in () together with the
variance-covariance parameters
as the minimizers of

To compute the minimizers of (), we use the connection
between smoothing spline models and linear mixed-effects models (LMM)
(Opsomer et al., 2001; Wang, 1998b). Let
, where is a matrix with
. Consider the following
LMM

where 's are random effects, with being the identity matrix of order , and are mutually independent and are independent of . It is easy to show that the restricted maximum likelihood (REML) estimate of the variance components and in model () are the minimizers of (). Gu and Wahba (1991) noticed this connection and indicated that

Two options in `ssr` can be used to specify the correlation
and variance structures for Gaussian data. The first option,
`correlation`, specifies the correlation
structure of random errors. It inputs a `corMatrix` class as in
`nlme`. Available correlation structures include `corSymm,
corAR1, corCAR1, corARMA, corExp, corLin, corGaus, corSpher,
corSpatial`. See the document of `nlme` (Pinheiro and Bates, 2000)
for a complete list. New structures can be added through
facilities provided in `nlme`. The following statement fits a
thin plate spline with an exponential correlation structure

ssr(y~t1+t2, rk=tp.pseudo(cbind(t1,t2)), corr=corExp(form=~t1+t2), spar=``m'')

The second option, `weights`, specifies the variance structure for the
variance function of the random errors in the form of a `varFunc`
class as in `nlme`. Available `varFunc` classes include
`varFixed`, `varIdent`, `varPower`, `varExp` and
`varComb`. See Pinheiro and Bates (2000) for details. New
`varFunc` classes representing user-defined variance functions
can be added. For example, the following statement fits a cubic spline
with fixed weights (assuming a vector of `w` has been created)

ssr(y~t, rk=cubic(t), weights=w)