Cross-validation Functional Regression with scalar response using basis representation.
Source:R/fregre.basis.cv.R
fregre.basis.cv.Rd
Computes functional regression between functional explanatory variables and scalar response using basis representation.
Arguments
- fdataobj
fdata
class object.- y
Scalar response with length
n
.- basis.x
Basis for functional explanatory data
fdataobj
.- basis.b
Basis for functional beta parameter.
- type.basis
A vector of character string which determines type of basis. By default "bspline". It is only used when
basis.x
orbasis.b
are a vector of number of basis considered.- lambda
A roughness penalty. By default, no penalty
lambda=0
.- Lfdobj
See eval.penalty.
- type.CV
Type of cross-validation. By default generalized cross-validation
GCV.S
method.- par.CV
List of parameters for
type.CV
:trim
, the alpha of the trimming anddraw
.- weights
weights
- verbose
If
TRUE
information about the procedure is printed. Default isFALSE
.- ...
Further arguments passed to or from other methods.
Value
Return:
fregre.basis
: Fitted regression object by the best parameters (basis elements for data and beta and lambda penalty).basis.x.opt
: Basis used for functional explanatory data estimationfdata
.basis.b.opt
: Basis used for functionalbeta
parameter estimation.lambda.opt
:lambda
value that minimizes CV or GCV method.gcv.opt
: Minimum value of CV or GCV method.
Details
The function fregre.basis.cv()
uses validation criterion defined by argument
type.CV
to estimate the number of basis elements and/or the penalized
parameter (lambda
) that best predicts the response.
If basis = NULL
creates bspline basis.
If the functional covariate fdataobj
is in a format raw data
,
such as matrix or data.frame, creates an object of class fdata
with
default attributes, see fdata
.
If basis.x
is a vector of number of basis elements and
basis.b=NULL
, the function force the same number of elements in the
basis of x
and beta
.
If basis.x$type=``fourier''
and basis.b$type=``fourier''
, the
function decreases the number of fourier basis elements on the
\(min(k_{n1},k_{n2})\), where \(k_{n1}\) and
\(k_{n2}\) are the number of basis element of basis.x
and
basis.b
respectively.
References
Ramsay, James O. and Silverman, Bernard W. (2006), Functional Data Analysis, 2nd ed., Springer, New York.
Febrero-Bande, M., Oviedo de la Fuente, M. (2012). Statistical Computing in Functional Data Analysis: The R Package fda.usc. Journal of Statistical Software, 51(4), 1-28. https://www.jstatsoft.org/v51/i04/
See also
See Also as: fregre.basis
,
summary.fregre.fd
and predict.fregre.fd
.
Alternative method: fregre.pc.cv
and
fregre.np.cv
.
Author
Manuel Febrero-Bande, Manuel Oviedo de la Fuente manuel.oviedo@udc.es
Examples
if (FALSE) { # \dontrun{
data(tecator)
x<-tecator$absorp.fdata[1:129]
y=tecator$y$Fat[1:129]
b1<-c(15,21,31)
b2<-c(7,9)
res1=fregre.basis.cv(x,y,basis.x=b1)
res2=fregre.basis.cv(x,y,basis.x=b1,basis.b=b2)
res1$gcv
res2$gcv
l=2^(-4:10)
res3=fregre.basis.cv(x,y,basis.b=b1,type.basis="fourier",
lambda=l,type.CV=GCV.S,par.CV=list(trim=0.15))
res3$gcv
} # }