where $<.,.>$ denotes the inner product on $L_2$ and $\epsilon$ are random errors with mean zero , finite variance $\sigma^2$ and $E[X(t)\epsilon]=0$.
\tilde{x},\beta\big>fregre.pls(fdataobj, y=NULL, l = NULL,lambda=0,P=c(0,0,1),...)
fdata
class object.n
.P
is a vector: P
are 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: P is the penalty matrix object.fregre.pls
function.fdata
.y
-fitted values
.fdata2pls
function.lm
functionFunctional (FPLS) algorithm maximizes the covariance between $X(t)$ and the scalar response $Y$ via the partial least squares (PLS) components. The functional penalized PLS are calculated in fdata2pls
by alternative formulation of the NIPALS algorithm proposed by Kraemer and Sugiyama (2011).
Let ${\nu_k}_k=1:\infty$ the functional PLS components and $X_i(t)=\sum{k=1:\infty} \gamma_{ik} \nu_k$ and $\beta(t)=\sum{k=1:\infty} \beta_k \nu_k$. The functional linear model is estimated by: $$ \hat{y}=\big< X,\hat{\beta} \big> \approx \sum_{k=1}^{k_n}\tilde{\gamma}_{k}\tilde{\beta}_k $$
The response can be fitted by:
P=P.penalty(fdataobj["argvals"],P)
, $$\hat{y}=\nu_k^{\top}(\nu_k\top \nu_k+\lambda \nu_k^{\top} \textbf{P}\nu_k)^{-1}\nu_k^{\top}y$$
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. http://dx.doi.org/10.1016/j.chemolab.2008.06.009
Martens, H., Naes, T. (1989) Multivariate calibration. Chichester: Wiley.
Kraemer, N., Sugiyama M. (2011). The Degrees of Freedom of Partial Least Squares Regression. Journal of the American Statistical Association. Volume 106, 697-705.
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. http://www.jstatsoft.org/v51/i04/
P.penalty
and fregre.pls.cv
.
Alternative method: fregre.pc
.
## Not run:
# data(tecator)
# x<-tecator$absorp.fdata
# y<-tecator$y$Fat
# res=fregre.pc(x,y,c(1:8))
# summary(res)
# res2=fregre.pls(x,y,c(1:8),lambda=10)
# summary(res2)
# ## End(Not run)
Run the code above in your browser using DataLab