This function computes the matrix of pairwise distances between curves a functional data sample. This can be achieved with or without phase and amplitude separation, which can be done using a variety of warping classes.
fdadist(
x,
y = NULL,
is_domain_interval = FALSE,
transformation = c("identity", "srvf"),
warping_class = c("none", "shift", "dilation", "affine", "bpd"),
metric = c("l2", "normalized_l2", "pearson"),
cluster_on_phase = FALSE,
labels = NULL
)A stats::dist object storing the distance matrix between the input
curves using the metric specified through the argument metric and the
warping class specified by the argument warping_class.
A numeric vector of length \(M\) or a numeric matrix of shape
\(N \times M\) or an object of class funData::funData. If a numeric
vector or matrix, it specifies the grid(s) of size \(M\) on which each of
the \(N\) curves have been observed. If an object of class
funData::funData, it contains the whole functional data set and the y
argument is not used.
Either a numeric matrix of shape \(N \times M\) or a numeric array
of shape \(N \times L \times M\) or an object of class fda::fd. If a
numeric matrix or array, it specifies the \(N\)-sample of
\(L\)-dimensional curves observed on grids of size \(M\). If an object
of class fda::fd, it contains all the necessary information about the
functional data set to be able to evaluate it on user-defined grids.
A boolean specifying whether the sample of curves
is defined on a fixed interval. Defaults to FALSE.
A string specifying the transformation to apply to the
original sample of curves. Choices are no transformation (transformation = "identity") or square-root velocity function transformation = "srvf".
Defaults to "identity".
A string specifying the class of warping functions.
Choices are no warping (warping_class = "none"), shift y = x + b
(warping_class = "shift"), dilation y = ax (warping_class = "dilation"), affine y = ax + b (warping_class = "affine") or
boundary-preserving diffeomorphism (warping_class = "bpd"). Defaults to
"none".
A string specifying the metric used to compare curves. Choices
are "l2", "normalized_l2" or "pearson". If transformation == "srvf", the metric must be "l2" because the SRVF transform maps
absolutely continuous functions to square-integrable functions. If
transformation == "identity" and warping_class is either dilation or
affine, the metric cab be either "normalized_l2" or "pearson". The L2
distance is indeed not dilation-invariant or affine-invariant. The
metric can also be "l2" if warping_class == "shift". Defaults to
"l2".
A boolean specifying whether clustering should be
based on phase variation or amplitude variation. Defaults to FALSE which
implies amplitude variation.
A character vector specifying curve labels. Defaults to NULL
which uses sequential numbers as labels.
if (FALSE) { # requireNamespace("lpSolve", quietly = TRUE)
idx <- c(1:5, 11:15, 21:25)
D <- fdadist(simulated30_sub$x[idx, ], simulated30_sub$y[idx, , ])
}
Run the code above in your browser using DataLab