
Dynamic Time Warping Dissimilarity Analysis of Time Series Lists
Source:R/distantia_dtw.R
distantia_dtw.RdA minimalistic but slightly faster version of distantia() that computes dynamic time warping dissimilarity scores using diagonal least cost paths.
Arguments
- tsl
(required, time series list) list of zoo time series. Default: NULL
- distance
(optional, character vector) name or abbreviation of the distance method. Valid values are in the columns "names" and "abbreviation" of the dataset distances. Default: "euclidean".
- bandwidth
(optional, numeric) Proportion of space at each side of the cost matrix diagonal (aka Sakoe-Chiba band) defining a valid region for dynamic time warping, used to control the flexibility of the warping path. This method prevents degenerate alignments due to differences in magnitude between time series when the data is not properly scaled. If
1(default), DTW is unconstrained. If0, DTW is fully constrained and the warping path follows the matrix diagonal. Recommended values may vary depending on the nature of the data. Ignored iflock_step = TRUE. Default: 1.
Value
data frame with columns:
x: time series name.y: time series name.distance: name of the distance metric.psi: psi dissimilarity of the sequencesxandy.
See also
Other distantia:
distantia(),
distantia_dtw_plot(),
distantia_ls()
Examples
#load fagus_dynamics as tsl
#global centering and scaling
tsl <- tsl_initialize(
x = fagus_dynamics,
name_column = "name",
time_column = "time"
) |>
tsl_transform(
f = f_scale_global
)
if(interactive()){
tsl_plot(
tsl = tsl,
guide_columns = 3
)
}
#dynamic time warping dissimilarity analysis
df_dtw <- distantia_dtw(
tsl = tsl,
distance = "euclidean"
)
df_dtw[, c("x", "y", "psi")]
#> x y psi
#> 2 Germany Sweden 0.8437535
#> 1 Germany Spain 1.3533551
#> 3 Spain Sweden 1.4640024
#visualize dynamic time warping
if(interactive()){
distantia_dtw_plot(
tsl = tsl[c("Spain", "Sweden")],
distance = "euclidean"
)
}