dctBasis2D: Calculate a cosine basis representation for functional data...

Description Usage Arguments Details Value Warning See Also

View source: R/univDecomp.R


These functions calculate a tensor cosine basis representation for functional data on two- or three-dimensional domains based on a discrete cosine transformation (DCT) using the C-library fftw3 (http://www.fftw.org/). Coefficients under a given threshold are set to 0 to reduce complexity and for denoising.


dctBasis2D(funDataObject, qThresh, parallel = FALSE)

dctBasis3D(funDataObject, qThresh, parallel = FALSE)



An object of class funData containing the observed functional data samples and for which the basis representation is calculated.


A numeric with value in [0,1], giving the quantile for thresholding the coefficients. See Details.


Logical. If TRUE, the coefficients for the basis functions are calculated in parallel. The implementation is based on the foreach function and requires a parallel backend that must be registered before; see foreach for details. Defaults to FALSE.


Given the (discretized) observed functions X_i, the function dctBasis2D calculates a basis representation

X_i(s,t) = ∑_{m = 0}^{K_1-1} ∑_{n = 0}^{K_2-1} θ_{mn} f_{mn}(s,t)

of a two-dimensional function X_i(s,t) in terms of (orthogonal) tensor cosine basis functions

f_{mn}(s,t) = c_m c_n \cos(ms) \cos(nt), \quad (s,t) \in \calT

with c_m = \frac{1}{√{π}} for m=0 and c_m = √{\frac{2}{π}} for m=1,2,… based on a discrete cosine transform (DCT).

If not thresholded (qThresh = 0), the function returns all non-zero coefficients θ_{mn} in the basis representation in a sparseMatrix (package Matrix) called scores. Otherwise, coefficients with

|θ_{mn}| <= q

are set to zero, where q is the qThresh-quantile of |θ_{mn}|.

For functions X_i(s,t,u) on three-dimensional domains, the function dctBasis3D calculates a basis representation

X_i(s,t,u) = ∑_{m = 0}^{K_1-1} ∑_{n = 0}^{K_2-1} ∑_{k = 0}^{K_3-1} θ_{mnk} f_{mnk}(s,t,u)

in terms of (orthogonal) tensor cosine basis functions

f_{mnk}(s,t,u) = c_m c_n c_k \cos(ms) \cos(nt) \cos(ku), \quad (s,t,u) \in \calT

again with c_m = \frac{1}{√{pi}} for m=0 and c_m = √{\frac{2}{pi}} for m=1,2,… based on a discrete cosine transform (DCT). The thresholding works analogous as for the two-dimensional case.



A sparseMatrix of scores (coefficients) with dimension N x K, reflecting the weights θ_{mn} (θ_{mnk}) for each basis function in each observation, where K is the total number of basis functions used.


A diagonal matrix, giving the norms of the different basis functions used (as they are orthogonal).


Logical, set to FALSE, as basis functions are orthogonal, but in general not orthonormal.


NULL, as basis functions are known.


If the C-library fftw3 is not available when the package MFPCA is installed, this function is disabled an will throw an error. For full functionality install the C-library fftw3 from http://www.fftw.org/ and reinstall MFPCA. This function has not been tested with ATLAS/MKL/OpenBLAS.

See Also

univDecomp, dct2D, dct3D

MFPCA documentation built on Oct. 17, 2021, 5:06 p.m.