Compute (penalized) principal components for functional data.
Usage
fdata2pc(fdataobj, ncomp = 2, norm = TRUE, lambda = 0, P = c(0, 0, 1), ...)Arguments
- fdataobj
fdataclass object.- ncomp
Number of principal components.
- norm
=TRUE the norm of eigenvectors
(rotation)is 1.- lambda
Amount of penalization. Default value is 0, i.e. no penalization is used.
- P
If P is a vector: coefficients to define the penalty matrix object. By default P=c(0,0,1) penalize the second derivative (curvature) or acceleration. If P is a matrix: the penalty matrix object.
- ...
Further arguments passed to or from other methods.
Value
d: The standard deviations of the functional principal components.rotation: Also known as loadings. Afdataclass object whose rows contain the eigenvectors.x: Also known as scores. The value of the rotated functional data is returned.fdataobj.cen: The centeredfdataobjobject.mean: The functional mean of thefdataobjobject.l: Vector of indices of principal components.C: The matched call.lambda: Amount of penalization.P: Penalty matrix.
Details
Smoothing is achieved by penalizing the integral of the square of the derivative of order m over rangeval:
m = 0 penalizes the squared difference from 0 of the function
m = 1 penalize the square of the slope or velocity
m = 2 penalize the squared acceleration
m = 3 penalize the squared rate of change of acceleration
References
Venables, W. N. and B. D. Ripley (2002). Modern Applied Statistics with S. Springer-Verlag.
N. Kraemer, A.-L. Boulsteix, and G. Tutz (2008). Penalized Partial Least Squares with Applications to B-Spline Transformations and Functional Data. Chemometrics and Intelligent Laboratory Systems, 94, 60 - 69. doi:10.1016/j.chemolab.2008.06.009
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/
Author
Manuel Febrero-Bande, Manuel Oviedo de la Fuente manuel.oviedo@usc.es
Examples
if (FALSE) { # \dontrun{
n= 100;tt= seq(0,1,len=51)
x0<-rproc2fdata(n,tt,sigma="wiener")
x1<-rproc2fdata(n,tt,sigma=0.1)
x<-x0*3+x1
pc=fdata2pc(x,lambda=1)
summary(pc)
} # }