Functional Data Analysis and Empirical Dynamics

Provides implementation of various methods of Functional Data Analysis (FDA) and Empirical Dynamics. The core of this package is Functional Principal Component Analysis (FPCA), a key technique for functional data analysis, for sparsely or densely sampled random trajectories and time courses, via the Principal Analysis by Conditional Estimation (PACE) algorithm or numerical integration. PACE is useful for the analysis of data that have been generated by a sample of underlying (but usually not fully observed) random trajectories. It does not rely on pre-smoothing of trajectories, which is problematic if functional data are sparsely sampled. PACE provides options for functional regression and correlation, for Longitudinal Data Analysis, the analysis of stochastic processes from samples of realized trajectories, and for the analysis of underlying dynamics. The core computational algorithms are implemented using the 'Eigen' C++ library for numerical linear algebra and 'RcppEigen' "glue".


Current version

New functionality:

  • Added functional additive models (MultiFAM, TVAMSBFitting, SBFitting).
  • Added stringing (Stringing).
  • Added functonal linear regression with functional response (FPCReg).


  • Dropped argument k from SelectK.
  • Vignette in HTML.
  • FClust functionality uses EMCluster instead Rmixmod.
  • Multiple minor bug fixes.

fdapace v0.3.0 (Release date: 25-Jan-2017)

New functionality:

  • Added obsOnly option to CreatePathPlot.
  • Added derivative estimators (FPCAder, fitted.FPCAder)
  • Added functional concurrent correlation (FCCor).
  • Added pairwise curve synchronization for functional data (WFDA).
  • Added optimal designs for longitudinal or functional data (FOptDes).
  • Miscellaneous update to utility functions (CreateBasis, MakeSparseGP)


  • Covariance GCV bandwidth is modified to prevent oversmoothing.
  • "Diagnostic plots" are renamed.
  • GetNormalisedSample now uses fitted covariance.

fdapace v0.2.5 (Release date: 14-Jul-2016)


  • K is used for specifying the number of components in functions such as SelectK, fitted, CreatePathPlot, CreateFuncBoxPlot, etc, instead of k.
  • GetCrCovYX is sped up.


  • Improved the legend placing in CreateDesignPlot.
  • Plot functions no longer show warnings.
  • Changed clustering example in vignettes.


  • Improved the legend placing in CreateDesignPlot.
  • Plot functions no longer show warnings.

fdapace v0.2.0 (Release date: 17-Jun-2016)

New functionality:

  • Addition of Functional Variance Process Analysis (FVPA.R), Functional Clustering (FClust.R) and Functional Singular Value Decomposition (FSVD.R) functionality.


  • Minor changes to the interface of functions FPCA.R and FCReg.R.
  • New internal C++ smoother used.
  • General improvements and bug fixes.
  • Vignette with knitr.

fdapace v0.1.1 (Release data: 15-Mar-2016)

  • Initial release

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


0.4.0 by Pantelis Z. Hadjipantelis, a year ago

Report a bug at

Browse source code at

Authors: Xiongtao Dai [aut] , Pantelis Z. Hadjipantelis [aut, cre] , Kynghee Han [aut] , Hao Ji [aut] , Shu-Chin Lin [ctb] , Hans-Georg Mueller [cph, ths] , Jane-Ling Wang [cph, ths]

Documentation:   PDF Manual  

Task views: Functional Data Analysis

BSD_3_clause + file LICENSE license

Imports Rcpp, Hmisc, MASS, Matrix, pracma, numDeriv

Suggests plot3D, rgl, aplpack, mgcv, ks, gtools, knitr, EMCluster, minqa, testthat

Linking to Rcpp, RcppEigen

Imported by fdadensity.

Depended on by LCox.

See at CRAN