Cross-validation Functional Regression with scalar response using basis representation.
Source:R/fregre.basis.cv.R
fregre.basis.cv.RdComputes functional regression between functional explanatory variables and scalar response using basis representation.
Arguments
- fdataobj
fdataclass 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.xorbasis.bare 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.Smethod.- par.CV
List of parameters for
type.CV:trim, the alpha of the trimming anddraw.- weights
weights
- verbose
If
TRUEinformation 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 functionalbetaparameter estimation.lambda.opt:lambdavalue 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
} # }