Fitting Functional Generalized Spectral Additive Models
Computes functional GAM model between functional covariate (X(t_1),...,X(t_q)) (and non functional covariate (Z1,...,Zp)) and scalar response Y.
fregre.gsam( formula, family = gaussian(), data = list(), weights = NULL, basis.x = NULL, basis.b = NULL, CV = FALSE, ... )
formula | 
 an object of class   | 
family | 
 a description of the error distribution and link function to
be used in the model. This can be a character string naming a family
function, a family function or the result of a call to a family function.
(See   | 
data | 
 List that containing the variables in the model.  | 
weights | 
 weights  | 
basis.x | 
 List of basis for functional explanatory data estimation.  | 
basis.b | 
 List of basis for functional beta parameter estimation.  | 
CV | 
 =TRUE, Cross-validation (CV) is done.  | 
... | 
 Further arguments passed to or from other methods.  | 
This function is an extension of the functional generalized linear
regression models: fregre.glm where the E[Y|X,Z] is
related to the linear prediction η via a link function
g(.) with integrated smoothness estimation by the smooth
functions f(.).
E[Y|X,Z]=η=g^{-1}(α+∑_i f_i(Z_{i})+∑_k^q∑_{j=1}^{k_q}{f_j^k(ξ_j^k)})
where ξ_j^k is the coefficient of the basis function expansion of X^k, (in PCA analysis ξ_j^k is the score of the j-functional PC of X^k.
The smooth functions f(.) can be added to the right hand
side of the formula to specify that the linear predictor depends on smooth
functions of predictors using smooth terms s and
te as in gam (or linear functionals of these as
Zβ and < X(t),β(t) > in
fregre.glm).
The first item in the data list is called "df" and is a data
frame with the response and non functional explanatory variables, as
gam.
Functional covariates of class fdata or fd are introduced in
the following items in the data list.basis.x is a list of
basis for represent each functional covariate. The basis object can be
created by the function: create.pc.basis, pca.fd
create.pc.basis, create.fdata.basis o
create.basis.basis.b is a list of basis for
represent each functional beta parameter. If basis.x is a list of
functional principal components basis (see create.pc.basis or
pca.fd) the argument basis.b is ignored.
Return gam object plus:
basis.x Basis used for fdata or fd covariates. 
basis.b Basis used for beta parameter estimation.
data List that containing the variables in the model.
formula formula.
y.pred predicted response by cross-validation.
If the formula only contains a non functional explanatory variables
(multivariate covariates), the function compute a standard glm
procedure.
Manuel Febrero-Bande, Manuel Oviedo de la Fuente manuel.oviedo@usc.es
Muller HG and Stadtmuller U. (2005). Generalized functional linear models. Ann. Statist.33 774-805.
Wood (2001) mgcv:GAMs and Generalized Ridge Regression for R. R News 1(2):20-25.
Ramsay, James O., and Silverman, Bernard W. (2006), Functional Data Analysis, 2nd ed., Springer, New York.
Venables, W. N. and Ripley, B. D. (2002) Modern Applied Statistics with S, New York: Springer.
See Also as: predict.fregre.gsam and
summary.gam.
 Alternative methods: fregre.glm
and fregre.gkam.
## Not run: 
data(tecator)
x=tecator$absorp.fdata
x.d1<-fdata.deriv(x)
tt<-x[["argvals"]]
dataf=as.data.frame(tecator$y)
nbasis.x=11;nbasis.b=5
basis1=create.bspline.basis(rangeval=range(tt),nbasis=nbasis.x)
basis2=create.bspline.basis(rangeval=range(tt),nbasis=nbasis.b)
f=Fat~s(Protein)+s(x)
basis.x=list("x"=basis1,"x.d1"=basis1)
basis.b=list("x"=basis2,"x.d1"=basis2)
ldata=list("df"=dataf,"x"=x,"x.d1"=x.d1)
res=fregre.gsam(Fat~Water+s(Protein)+x+s(x.d1),ldata,family=gaussian(),
basis.x=basis.x,basis.b=basis.b)
res
res2=fregre.gsam(Fat~te(Protein,k=3)+x,data=ldata,family=gaussian())
summary(res2)
##  dropind basis pc
basis.pc0=create.pc.basis(x,c(2,4,7))
basis.pc1=create.pc.basis(x.d1,c(1:3))
basis.x=list("x"=basis.pc0,"x.d1"=basis.pc1)
ldata=list("df"=dataf,"x"=x,"x.d1"=x.d1)  
res.pc=fregre.gsam(f,data=ldata,family=gaussian(),
basis.x=basis.x,basis.b=basis.b)
summary(res.pc)
 
##  Binomial family
x=tecator$absorp.fdata
tecator$y$Fat<-ifelse(tecator$y$Fat>20,1,0)
x.d1<-fdata.deriv(x)
dataf=as.data.frame(tecator$y)
ldata=list("df"=dataf,"x"=x,"x.d1"=x.d1)
res.bin=fregre.gsam(Fat~Protein+s(x),ldata,family=binomial())
## End(Not run)Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.