Learn R Programming

fda.usc (version 1.2.3)

fregre.np.cv: Cross-validation functional regression with scalar response using kernel estimation.

Description

Computes functional regression between functional explanatory variables and scalar response using asymmetric kernel estimation by cross-validation method. The non-parametric functional regression model can be written as follows $$y_i =r(X_i) + \epsilon_i$$ where the unknown smooth real function $r$ is estimated using kernel estimation by means of $$\hat{r}(X)=\frac{\sum_{i=1}^{n}{K(h^{-1}d(X,X_{i}))y_{i}}}{\sum_{i=1}^{n}{K(h^{-1}d(X,X_{i}))}}$$ where $K$ is an kernel function (see Ker argument), h is the smoothing parameter and $d$ is a metric or a semi-metric (see metric argument). The function estimates the value of smoothing parameter (also called bandwidth) h through Generalized Cross-validation GCV criteria, see GCV.S or CV.S.

Usage

fregre.np.cv(fdataobj,y,h=NULL,Ker=AKer.norm,metric=metric.lp,
type.CV = GCV.S,type.S=S.NW,par.CV=list(trim=0),par.S=list(w=1),...)

Arguments

fdataobj
fdata class object.
y
Scalar response with length n.
h
Bandwidth, h>0. Default argument values are provided as the sequence of length 25 from 2.5%--quantile to 25%--quantile of the distance between fdataobj curves, see h.default.
Ker
Type of asymmetric kernel used, by default asymmetric normal kernel.
metric
Metric function, by default metric.lp.
type.CV
Type of cross-validation. By default generalized cross-validation GCV.S method.
type.S
Type of smothing matrix S. By default S is calculated by Nadaraya-Watson kernel estimator (S.NW).
par.CV
List of parameters for type.CV: trim, the alpha of the trimming and draw=TRUE.
par.S
List of parameters for type.S: w, the weights.
...
Arguments to be passed for metric.lp o other metric function.

Value

  • Return:
  • callThe matched call.
  • residualsy minus fitted values.
  • fitted.valuesEstimated scalar response.
  • dfThe residual degrees of freedom.
  • r2Coefficient of determination.
  • sr2Residual variance.
  • HHat matrix.
  • yResponse.
  • fdataobjFunctional explanatory data.
  • mdistDistance matrix between x and newx.
  • KerAsymmetric kernel used.
  • gcvCV or GCV values.
  • h.optsmoothing parameter or bandwidth that minimizes CV or GCV method.
  • hVector of smoothing parameter or bandwidth.
  • cvList with the fitted values and residuals estimated by CV, without the same curve.

Details

The function estimates the value of smoothing parameter or the bandwidth through the cross validation methods: GCV.S or CV.S. It computes the distance between curves using the metric.lp, although any other semimetric could be used (see semimetric.basis or semimetric.NPFDA functions). Different asymmetric kernels can be used, see Kernel.asymmetric.

References

Ferraty, F. and Vieu, P. (2006). Nonparametric functional data analysis. Springer Series in Statistics, New York. Hardle, W. Applied Nonparametric Regression. Cambridge University Press, 1994. 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/

See Also

See Also as: fregre.np, summary.fregre.fd and predict.fregre.fd . Alternative method: fregre.basis.cv and fregre.np.cv.

Examples

Run this code
data(tecator)
absorp=tecator$absorp.fdata
ind=1:129
x=absorp[ind,]
y=tecator$y$Fat[ind]
Ker=AKer.tri
res.np=fregre.np.cv(x,y,Ker=Ker)
summary.fregre.fd(res.np)
res.np2=fregre.np.cv(x,y,type.CV=GCV.S,criteria="Shibata")
summary.fregre.fd(res.np2)

## Example with other semimetrics (not run)
res.pca1=fregre.np.cv(x,y,Ker=Ker,metric=semimetric.pca,q=1)
summary.fregre.fd(res.pca1)
res.deriv=fregre.np.cv(x,y,Ker=Ker,metric=semimetric.deriv)
summary.fregre.fd(res.deriv)

x.d2=fdata.deriv(x,nderiv=1,method="fmm",class.out='fdata')
res.deriv2=fregre.np.cv(x.d2,y,Ker=Ker)
summary.fregre.fd(res.deriv2)
x.d3=fdata.deriv(x,nderiv=1,method="bspline",class.out='fdata')
res.deriv3=fregre.np.cv(x.d3,y,Ker=Ker)
summary.fregre.fd(res.deriv3)

Run the code above in your browser using DataLab