Learn R Programming

fda.usc (version 1.2.3)

Depth for multivariate fdata: Provides the depth measure for a list of p--functional data objects

Description

This function computes the depth measure for a list of p--functional data objects. The procedure extends the Fraiman and Muniz (FM), modal, and random project depth functions from 1 functional dataset to p functional datasets.

Usage

depth.FMp(lfdata, lfdataref = lfdata, trim = 0.25, dfunc = "mdepth.MhD",par.dfunc = list(scale = FALSE), draw = FALSE, ask = FALSE, ...)
depth.RPp(lfdata, lfdataref = lfdata, nproj = 50, proj = "vexponential",trim = 0.25, dfunc = "mdepth.TD", par.dfunc = list(scale = TRUE), draw = FALSE,ask = FALSE) depth.modep(lfdata, lfdataref = lfdata, h = NULL, metric, par.metric = list(), method = "euclidean", scale = FALSE, trim = 0.25, draw = FALSE,ask = FALSE)

Arguments

lfdata
A list of new curves (list of fdata ojects) to evaluate the depth.
lfdataref
A set of reference curves (list of fdata ojects) w.r.t. the depth of lfdata is computed.
trim
The alpha of the trimming.
dfunc
Type of multivariate depth (of order p) function used in Framiman and Muniz depth, depth.FMp or in Random Projection depth,depth.FMp: :
  • The mdepth.SD function provides the simplicial depth measure for bivariate data.
  • The mdepth.LD function provides the Likelihood depth measure based on Nadaraya--Watson estimator of empirical density function.
  • The mdepth.HS function implements a half-space depth measure based on random projections.
  • The mdepth.TD function implements a Tukey depth measure.
  • The mdepth.MhDfunction implements a Mahalanobis depth measure.
  • The mdepth.RP function provides the depth measure using random projections for multivariate data.

par.dfunc
list of parameters for the dfunc depth function, see Depth.Multivariate.
nproj
The number projection.
proj
if is a character: create the random projection using a covariance matrix by process indicated in the argument (by default, proj=1, sigma=diag(ncol(fdataobj))), else if is a matrix of random projection provided by the user.
h
Bandwidth, h>0. Default argument values are provided as the 15%--quantile of the distance between fdataobj and fdataori.
metric
Metric or semi--metric function used for compute the distance between each element in ldata w.r.t. ldataref, by default metric.lp.
par.metric
list of parameters for the metric function.
method
Type of the distance measure (by default euclidean) to compute the metric between the p-distance matrix computed from the p functional data elements.
scale
=TRUE, scale the depth.
draw
=TRUE, draw the curves, the sample median and trimmed mean.
ask
logical. If TRUE (and the R session is interactive) the user is asked for input, before a new figure is drawn.
...
Further arguments passed to or from other methods.

Value

lmed
Index deepest element median.
ltrim
Index of curves with trimmed mean mtrim.
dep
Depth of each curve of fdataobj w.r.t. fdataori.
dfunc
second depth function used as multivariate depth, see details section.
par.dfunc
list of parameters for the dfunc depth function.
proj
The projection value of each point on the curves.
dist
Distance matrix between curves or functional data.

Details

  • depth.FMp, this procedure suposes that each curve of the lfdataobj have the same support [0,T] (same argvals and rangeval). The FMp depth is defined as: $FM_i^p =\int Z_i^p(t)dt$ where $Z_i^p(t)$ is a $p$--variate depth of the vector $(x_i^1(t),...,x_i^p(t))$ w.r.t. the sample at $t$.

  • The depth.RPp function calculates the depth in two steps. It builds random projections for the each curve of the lfdata w.r.t. each curve of the lfdataref object. Then it applyes a multivariate depth function specified in dfunc argument to the set of random projections. This procedure is a generalization of Random Projection with derivatives (RPD) implemented in depth.RPD function. Now, the procedure computes a p-variate depth with the projections using the $p$ functional dataset.
  • The modal depth depth.modep function calculates the depth in three steps. First, the function calculates a suitable metrics or semi--metrics $m1,...,mp$ for each curve of the lfdata w.r.t. each curve in the lfdataref object using the metric and par.metric arguments, see metric.lp or semimetric.NPFDA for more details. Second, the function uses the $p$--dimensional metrics to construct a new metric, specified in method argument, by default if method="euclidean", i.e. $m:=\sqrt(m1^2+...+mp^2)$. Finally, the empirical h--depth is computed as: $$\hat{f}_h(x_0)=N^{-1}\sum_{i=1}^{N}{K(m/h)}$$ where $x$ is dataset with p observed fucntional data, $m$ is a suitable metric or semi--metric, $K(t)$ is an asymmetric kernel function and h is the bandwidth parameter.
  • References

    Cuevas, A., Febrero-Bande, M. and Fraiman, R. (2007). Robust estimation and classification for functional data via projection-based depth notions. Computational Statistics 22, 3, 481-496.

    See Also

    See Also as Descriptive.

    Examples

    Run this code
    ## Not run: 
    # data(tecator)
    # xx<-tecator$absorp
    # xx1<-fdata.deriv(xx,1)
    # lx<-list(xx=xx,xx=xx1)
    # # Fraiman-Muniz Depth
    # par.df<-list(scale =TRUE)
    # out.FM1p=depth.FMp(lx,trim=0.1,draw=TRUE, par.dfunc = par.df)
    # out.FM2p=depth.FMp(lx,trim=0.1,dfunc="mdepth.LD",
    # par.dfunc = par.df, draw=TRUE)
    # 
    # # Random Project Depth
    # out.RP1p=depth.RPp(lx,trim=0.1,dfunc="mdepth.TD",
    # draw=TRUE,par.dfunc = par.df)
    # out.RP2p=depth.RPp(lx,trim=0.1,dfunc="mdepth.LD",
    # draw=TRUE,par.dfunc = par.df)
    # 
    # #Modal Depth
    # out.mode1p=depth.modep(lx,trim=0.1,draw=T,scale=T)
    # out.mode2p=depth.modep(lx,trim=0.1,method="manhattan",
    # draw=T,scale=T)
    # 
    # par(mfrow=c(2,3))
    # plot(out.FM1p$dep,out.FM2p$dep)
    # plot(out.RP1p$dep,out.RP2p$dep)
    # plot(out.mode1p$dep,out.mode2p$dep)
    # plot(out.FM1p$dep,out.RP1p$dep)
    # plot(out.RP1p$dep,out.mode1p$dep)
    # plot(out.FM1p$dep,out.mode1p$dep)
    # ## End(Not run)
    

    Run the code above in your browser using DataLab