Skip to contents

Computes functional regression between functional explanatory variables and scalar response using basis representation.

Usage

fregre.basis.cv(
  fdataobj,
  y,
  basis.x = NULL,
  basis.b = NULL,
  type.basis = NULL,
  lambda = 0,
  Lfdobj = vec2Lfd(c(0, 0), rtt),
  type.CV = GCV.S,
  par.CV = list(trim = 0),
  weights = rep(1, n),
  verbose = FALSE,
  ...
)

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 or basis.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 and draw.

weights

weights

verbose

If TRUE information about the procedure is printed. Default is FALSE.

...

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 estimation fdata.

  • basis.b.opt: Basis used for functional beta 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
} # }