fdahclust {fdacluster} | R Documentation |
Performs hierarchical clustering for functional data with amplitude and phase separation
Description
This function extends hierarchical agglomerative clustering to functional data. It includes the possibility to separate amplitude and phase information.
Usage
fdahclust(
x,
y = NULL,
n_clusters = 1L,
warping_class = c("affine", "dilation", "none", "shift", "srsf"),
centroid_type = "mean",
metric = c("l2", "pearson"),
linkage_criterion = c("complete", "average", "single", "ward.D2"),
cluster_on_phase = FALSE,
use_verbose = TRUE,
warping_options = c(0.15, 0.15),
maximum_number_of_iterations = 100L,
number_of_threads = 1L,
parallel_method = 0L,
distance_relative_tolerance = 0.001,
use_fence = FALSE,
check_total_dissimilarity = TRUE,
compute_overall_center = FALSE
)
Arguments
x |
A numeric vector of length |
y |
Either a numeric matrix of shape |
n_clusters |
An integer value specifying the number of clusters.
Defaults to |
warping_class |
A string specifying the warping class Choices are
|
centroid_type |
A string specifying the type of centroid to compute.
Choices are |
metric |
A string specifying the metric used to compare curves. Choices
are |
linkage_criterion |
A string specifying which linkage criterion should
be used to compute distances between sets of curves. Choices are
|
cluster_on_phase |
A boolean specifying whether clustering should be
based on phase variation or amplitude variation. Defaults to |
use_verbose |
A boolean specifying whether the algorithm should output
details of the steps to the console. Defaults to |
warping_options |
A numeric vector supplied as a helper to the chosen
|
maximum_number_of_iterations |
An integer specifying the maximum number
of iterations before the algorithm stops if no other convergence criterion
was met. Defaults to |
number_of_threads |
An integer value specifying the number of threads
used for parallelization. Defaults to |
parallel_method |
An integer value specifying the type of desired
parallelization for template computation, If |
distance_relative_tolerance |
A numeric value specifying a relative
tolerance on the distance update between two iterations. If all
observations have not sufficiently improved in that sense, the algorithm
stops. Defaults to |
use_fence |
A boolean specifying whether the fence algorithm should be
used to robustify the algorithm against outliers. Defaults to |
check_total_dissimilarity |
A boolean specifying whether an additional
stopping criterion based on improvement of the total dissimilarity should
be used. Defaults to |
compute_overall_center |
A boolean specifying whether the overall center
should be also computed. Defaults to |
Details
The number of clusters is required as input because, with functional data, once hierarchical clustering is performed, curves within clusters need to be aligned to their corresponding centroid.
Value
An object of class caps
.
Examples
#----------------------------------
# Extracts 15 out of the 30 simulated curves in `simulated30_sub` data set
idx <- c(1:5, 11:15, 21:25)
x <- simulated30_sub$x[idx, ]
y <- simulated30_sub$y[idx, , ]
#----------------------------------
# Runs an HAC with affine alignment, searching for 2 clusters
out <- fdahclust(
x = x,
y = y,
n_clusters = 2,
warping_class = "affine"
)
#----------------------------------
# Then visualize the results
# Either with ggplot2 via ggplot2::autoplot(out)
# or using graphics::plot()
# You can visualize the original and aligned curves with:
plot(out, type = "amplitude")
# Or the estimated warping functions with:
plot(out, type = "phase")