Task view: Functional Data Analysis

Last updated on 2021-07-28 by Fabian Scheipl

Functional data analysis (FDA) deals with data that "provides information about curves, surfaces or anything else varying over a continuum." This task view catalogues available packages in this rapidly developing field.

General functional data analysis

  • fda provides functions to enable all aspects of functional data analysis: It includes object-types for functional data with corresponding functions for smoothing, plotting and regression models. The package includes data sets and script files for working examples from the book: Ramsay, J. O., Hooker, Giles, and Graves, Spencer (2009) "Data Analysis with R and Matlab" (Springer).
  • fdasrvf performs alignment, PCA, and regression of multidimensional or unidimensional functions using the square-root velocity framework (Srivastava et al., 2011). This framework allows for elastic analysis of functional data through phase and amplitude separation.
  • fdapace provides functional principal component based methods for sparsely or densely sampled random trajectories and time courses 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.
  • fda.usc provides routines for exploratory and descriptive analysis of functional data such as depth measurements, outlier detection, as well as unsupervised and supervised classification, (univariate, nonparametric) regression models with a functional covariate and functional analysis of variance.
  • fds contains 19 data sets with functional data.
  • funData provides S4 classes for univariate and multivariate functional and image data and utility functions.
  • rainbow contains functions and data sets for functional data display, exploratory analysis and outlier detection.
  • fdaoutlier provides a collection of functions for functional data outlier detection. Methods implemented include directional outlyingness, MS-plot, total variation depth, and sequential transformations among others.

Regression and classification for functional data

  • dbstats provides prediction methods where explanatory information is coded as a matrix of distances between individuals. It includes distance based versions of lm and glm, as well as nonparametric versions of both, based on local estimation. To apply these methods to functional data it is sufficient to calculate a distance matrix between the observed functional data.
  • denseFLMM and sparseFLMM estimate functional linear mixed models for densely and sparsely sampled data, respectively, based on functional principal component analysis.
  • fdANOVA implements analysis of variance testing procedures for univariate and multivariate functional data
  • FDboost implements flexible additive regression models and variable selection for scalar-on-function, function-on-scalar and function-on-function regression models that are fitted by a component-wise gradient boosting algorithm.
  • flars implements variable selection for the functional linear regression with scalar response variable and mixed scalar/functional predictors based on the least angle regression approach.
  • GPFDA uses functional regression as the mean structure and Gaussian processes as the covariance structure.
  • growfunctions estimates a collection of time-indexed functions under either of Gaussian process (GP) or intrinsic Gaussian Markov random field (iGMRF) prior formulations where a Dirichlet process mixture allows sub-groupings of the functions to share the same covariance or precision parameters. The GP and iGMRF formulations both support any number of additive covariance or precision terms, respectively, expressing either or both of multiple trend and seasonality.
  • refund provides spline-based methods for roughness penalized function-on-scalar, scalar-on-function, and function-on-function regression as well as methods for functional PCA. Some of the functions are applicable to image data.
  • splinetree implements regression trees and random forests for longitudinal or functional data using a spline projection method.

Clustering functional data

  • funFEM's algorithm (Bouveyron et al., 2014) allows to cluster functional data by modeling the curves within a common and discriminative functional subspace.
  • funHDDC provides the funHDDC algorithm (Bouveyron & Jacques, 2011) which allows to cluster functional data by modeling each group within a specific functional subspace.
  • funLBM implements model-based co-clustering of functional data, i.e., simultaneously clustering the rows and the columns of a data matrix where each entry of the matrix is a function or a time series.
  • fdakma performs clustering and alignment of a multidimensional or unidimensional functional dataset by means of k-mean alignment.

Registering and aligning functional data

  • fdasrvf performs alignment, PCA, and regression of multidimensional or unidimensional functions using the square-root velocity framework (Srivastava et al., 2011). This framework allows for elastic analysis of functional data through phase and amplitude separation.
  • fdakma performs clustering and alignment of a multidimensional or unidimensional functional dataset by means of k-mean alignment.
  • registr provides registration for (incomplete) non-Gaussian functional data, c.f Wrobel et al. (2019) doi: 10.1111/biom.12963 and Wrobel and Bauer (2021) doi: 10.21105/joss.02964.
  • warpMix implements warping (alignment) for functional data using B-spline based mixed effects models.

Time series of functional data

  • ftsa provides functions for visualizing, modeling, forecasting and hypothesis testing of functional time series.
  • ftsspec provides functions for estimating the spectral density operator of functional time series (FTS) and comparing the spectral density operator of two functional time series, in a way that allows detection of differences of the spectral density operator in frequencies and along the curve length.
  • freqdom provides frequency domain methods for multivariate and functional time series and implements dynamic functional principal components and functional regression in the presence of temporal dependence.
  • freqdom.fda provides a wrapper for functionality of freqdom for objects from fda
  • pcdpca extends multivariate dynamic principal components to periodically correlated multivariate and functional time series.
  • fdaACF contains functions to quantify the serial correlation across lags of a given functional time series using an autocorrelation function for functional time series. The autocorrelation function is based on the L2 norm of the lagged covariance operators of the series. Functions are available for estimating the distribution of the autocorrelation function under the assumption of strong functional white noise. A brief illustration of the functionality of the proposed functions can be seen at github.com/GMestreM/fdaACF.


  • covsep provides functions for testing if the covariance structure of 2-dimensional data is separable.
  • ddalpha implements depth-based classification and calculation of data depth, also for functional data.
  • fdadensity implements Petersen and Mueller (2016) (doi: 10.1214/15-AOS1363) for the analysis of samples of density functions via specialized Functional Principal Components Analysis.
  • face implements Fast Covariance Estimation for Sparse Functional Data paper (c.f. Statistics and Computing, doi: 10.1007/s11222-017-9744-8)
  • fdatest provides an implementation of the Interval Testing Procedure for functional data in different frameworks (i.e., one or two-population frameworks, functional linear models) by means of different basis expansions (i.e., B-spline, Fourier, and phase-amplitude Fourier).
  • fdcov provides a variety of tools for the analysis of covariance operators.
  • fpca implements functional principal components for sparsely observed data in a geometric approach to MLE for functional principal components.
  • geofd provides Kriging based methods for predicting functional data (curves) with spatial dependence.
  • mfaces implements multivariate functional principal component analysis via fast covariance estimation for multivariate sparse functional data or longitudinal data (c.f Li, Xiao, and Luo (2020) doi: 10.1002/sta4.245).
  • MFPCA calculates multivariate FPCA for data observed on different dimensional domains (c.f. Happ and Greven (2018) doi: 10.1080/01621459.2016.1273115).
  • SCBmeanfd provides methods for estimating and inferring the mean of functional data. The methods include simultaneous confidence bands, local polynomial fitting, bandwidth selection by plug-in and cross-validation, goodness-of-fit tests for parametric models, equality tests for two-sample problems, and plotting functions.
  • switchnpreg provides functions for estimating the parameters from the latent state process and the functions corresponding to the J states as proposed by De Souza and Heckman (2013).

The Functional Data Analysis Task View is maintained by Fabian Scheipl (LMU München, Germany). Please contact him with suggestions, additions and improvements.


covsep — 1.1.0

Tests for Determining if the Covariance Structure of 2-Dimensional Data is Separable

dbstats — 1.0.5

Distance-Based Statistics

ddalpha — 1.3.11

Depth-Based Classification and Calculation of Data Depth

denseFLMM — 0.1.2

Functional Linear Mixed Models for Densely Sampled Data

face — 0.1-6

Fast Covariance Estimation for Sparse Functional Data

fda — 5.5.1

Functional Data Analysis

fdaACF — 1.0.0

Autocorrelation Function for Functional Time Series

fdadensity — 0.1.2

Functional Data Analysis for Density Functions by Transformation to a Hilbert Space

fdakma — 1.2.1

Functional Data Analysis: K-Mean Alignment

fdANOVA — 0.1.2

Analysis of Variance for Univariate and Multivariate Functional Data

fdaoutlier — 0.2.0

Outlier Detection Tools for Functional Data Analysis

fdapace — 0.5.8

Functional Data Analysis and Empirical Dynamics

fdasrvf — 1.9.7

Elastic Functional Data Analysis

fdatest — 2.1

Interval Testing Procedure for Functional Data

fda.usc — 2.0.2

Functional Data Analysis and Utilities for Statistical Computing

FDboost — 1.0-0

Boosting Functional Regression Models

fdcov — 1.1.0

Analysis of Covariance Operators

fds — 1.8

Functional Data Sets

flars — 1.0

Functional LARS

fpca — 0.2-1

Restricted MLE for Functional Principal Components Analysis

freqdom — 2.0.1

Frequency Domain Based Analysis: Dynamic PCA

freqdom.fda — 0.9.1

Functional Time Series: Dynamic Functional Principal Components

ftsa — 6.1

Functional Time Series Analysis

ftsspec — 1.0.0

Spectral Density Estimation and Comparison for Functional Time Series

funData — 1.3-8

An S4 Class for Functional Data

funFEM — 1.2

Clustering in the Discriminative Functional Subspace

funHDDC — 2.3.1

Univariate and Multivariate Model-Based Clustering in Group-Specific Functional Subspaces

funLBM — 2.2

Model-Based Co-Clustering of Functional Data

geofd — 2.0

Spatial Prediction for Function Value Data

GPFDA — 3.1.1

Gaussian Process for Functional Data Analysis

growfunctions — 0.15

Bayesian Non-Parametric Dependent Models for Time-Indexed Functional Data

mfaces — 0.1-3

Fast Covariance Estimation for Multivariate Sparse Functional Data

MFPCA — 1.3-9

Multivariate Functional Principal Component Analysis for Data Observed on Different Dimensional Domains

pcdpca — 0.4

Dynamic Principal Components for Periodically Correlated Functional Time Series

rainbow — 3.6

Bagplots, Boxplots and Rainbow Plots for Functional Data

refund — 0.1-24

Regression with Functional Data

registr — 1.0.0

Curve Registration for Exponential Family Functional Data

SCBmeanfd — 1.2.2

Simultaneous Confidence Bands for the Mean of Functional Data

sparseFLMM — 0.4.1

Functional Linear Mixed Models for Irregularly or Sparsely Sampled Data

splinetree — 0.2.0

Longitudinal Regression Trees and Forests

switchnpreg — 0.8-0

Switching nonparametric regression models for a single curve and functional data

warpMix — 0.1.0

Mixed Effects Modeling with Warping for Functional Data Using B-Spline

Task view list