# fregre.gls

##### Fit Functional Linear Model Using Generalized Least Squares

This function fits a functional linear model using generalized least squares. The errors are allowed to be correlated and/or have unequal variances.

- Keywords
- models, regression

##### Usage

```
fregre.gls(
formula,
data,
correlation = NULL,
basis.x = NULL,
basis.b = NULL,
rn,
lambda,
weights = NULL,
subset,
method = c("REML", "ML"),
control = list(),
verbose = FALSE,
criteria = "GCCV1",
...
)
```

##### Arguments

- formula
a two-sided linear formula object describing the model, with the response on the left of a

`~`

operator and the terms, separated by`+`

operators, on the right.- data
an optional data frame containing the variables named in

`model`

,`correlation`

,`weights`

, and`subset`

. By default the variables are taken from the environment from which`gls`

is called.- correlation
an optional

`corStruct`

object describing the within-group correlation structure. See the documentation of`corClasses`

for a description of the available`corStruct`

classes. If a grouping variable is to be used, it must be specified in the`form`

argument to the`corStruct`

constructor. Defaults to`NULL`

, corresponding to uncorrelated errors.- basis.x
List of basis for functional explanatory data estimation.

- basis.b
List of basis for \(\beta(t)\) parameter estimation.

- rn
List of Ridge parameter.

- lambda
List of Roughness penalty parameter.

- weights
an optional

`varFunc`

object or one-sided formula describing the within-group heteroscedasticity structure. If given as a formula, it is used as the argument to`varFixed`

, corresponding to fixed variance weights. See the documentation on`varClasses`

for a description of the available`varFunc`

classes. Defaults to`NULL`

, corresponding to homoscedastic errors.- subset
an optional expression indicating which subset of the rows of

`data`

should be used in the fit. This can be a logical vector, or a numeric vector indicating which observation numbers are to be included, or a character vector of the row names to be included. All observations are included by default.- method
a character string. If

`"REML"`

the model is fit by maximizing the restricted log-likelihood. If`"ML"`

the log-likelihood is maximized. Defaults to`"REML"`

.- control
a list of control values for the estimation algorithm to replace the default values returned by the function

`glsControl`

. Defaults to an empty list.- verbose
an optional logical value. If

`TRUE`

information on the evolution of the iterative algorithm is printed. Default is`FALSE`

.- criteria
GCCV criteria, see

`GCCV.S`

.- …
some methods for this generic require additional arguments. None are used in this methodl.

##### Value

an object of class `"gls"`

representing the functional linear
model fit. Generic functions such as `print`

, `plot`

, and
`summary`

have methods to show the results of the fit.
See `glsObject`

for the components of the fit. The functions
`resid`

, `coef`

and `fitted`

, can be
used to extract some of its components.
Beside, the class(z) is "gls", "lm" and "fregre.lm" with the following
objects:

`sr2`

Residual variance.`Vp`

Estimated covariance matrix for the parameters.`lambda`

A roughness penalty.`basis.x`

Basis used for`fdata`

or`fd`

covariates.`basis.b`

Basis used for beta parameter estimation.`beta.l`

List of estimated beta parameter of functional covariates.`data`

List that containing the variables in the model.`formula`

formula used in ajusted model.`formula.ini`

formula in call.`W`

inverse of covariance matrix`correlation`

See glsObject for the components of the fit.

##### References

Oviedo de la Fuente, M., Febrero-Bande, M., Pilar Munoz, and Dominguez, A. Predicting seasonal influenza transmission using Functional Regression Models with Temporal Dependence. arXiv:1610.08718. https://arxiv.org/abs/1610.08718

##### Examples

```
# NOT RUN {
data(tecator)
x=tecator$absorp.fdata
x.d2<-fdata.deriv(x,nderiv=)
tt<-x[["argvals"]]
dataf=as.data.frame(tecator$y)
# plot the response
plot(ts(tecator$y$Fat))
nbasis.x=11;nbasis.b=7
basis1=create.bspline.basis(rangeval=range(tt),nbasis=nbasis.x)
basis2=create.bspline.basis(rangeval=range(tt),nbasis=nbasis.b)
basis.x=list("x.d2"=basis1)
basis.b=list("x.d2"=basis2)
ldata=list("df"=dataf,"x.d2"=x.d2)
res.gls=fregre.gls(Fat~x.d2,data=ldata, correlation=corAR1(),
basis.x=basis.x,basis.b=basis.b)
summary(res.gls)
# }
```

*Documentation reproduced from package fda.usc, version 2.0.2, License: GPL-2*