discretize() exposes every internal state discretizer as a first-class
verb. It accepts the same inputs as tsn() (plus a tsn object) and returns
a tidy one-row-per-observation table of discretized states. tsn() routes
its own state aggregation through the same engine, so
tsn(x, "<method>") and discretize(x, method = "<method>") produce
identical state assignments. Scalar methods learn one shared state space
from all selected values. Temporal methods ("ordinal",
"adaptive_magnitude", and "dtw") first compute patterns or windows
within each series, never across an ID boundary, and then use a shared
alphabet or clustering model.
Usage
discretize(
data,
value = NULL,
id = NULL,
time = NULL,
series = NULL,
method = "quantile",
n_states = 3L,
breaks = NULL,
labels = NULL,
transform = "none",
m = NULL,
tau = NULL,
seed = NULL
)Arguments
- data
A numeric vector,
ts, matrix, named list of numeric vectors, data frame, or atsnobject (its source series are used).- value
Optional value-column name for long data.
- id
Optional series-ID column name for long data.
- time
Optional time-column name for long data.
- series
Optional series IDs or wide-data column names to select.
- method
Discretization method. One of
"threshold","width","quantile","kde","kmeans","gaussian","hclust","ordinal","symbolic","change_points","entropy","magnitude","adaptive_magnitude","percentile_magnitude", or"dtw".- n_states
Number of states. Ignored by
"ordinal", whose state count follows the embedding argumentsmandtau.- breaks
Optional interior thresholds for
method = "threshold".- labels
Optional custom state labels. Length must equal the number of states produced. When
NULL, states are numbered consecutively.- transform
Pre-discretization transform:
"none"(default),"log"(useslog1p(abs(x))), or"zscore"(standardized values).- m
Embedding dimension for
method = "ordinal"(default3).- tau
Embedding lag for
method = "ordinal"(default1).- seed
Optional seed used by stochastic discretizers.
Value
A tidy data frame of class tsn_states with columns id, time,
value, state (a factor), and probability. The discretization model
and any bin boundaries are stored in the model and breaks attributes.
References
Bandt, C., & Pompe, B. (2002). Permutation entropy: A natural complexity measure for time series. Physical Review Letters, 88, 174102. doi:10.1103/PhysRevLett.88.174102
Examples
discretize(c(1, 5, 2, 9, 3, 7, 4, 8), method = "quantile", n_states = 3)
#> <tsn_states> quantile discretization (transform: none): 8 observations, 3 states
#> id time value state probability
#> series_1 1 1 1 1
#> series_1 2 5 2 1
#> series_1 3 2 1 1
#> series_1 4 9 3 1
#> series_1 5 3 1 1
#> series_1 6 7 3 1
#> series_1 7 4 2 1
#> series_1 8 8 3 1
discretize(
c(1, 5, 2, 9, 3, 7, 4, 8),
method = "quantile",
n_states = 3,
labels = c("low", "mid", "high")
)
#> <tsn_states> quantile discretization (transform: none): 8 observations, 3 states
#> id time value state probability
#> series_1 1 1 low 1
#> series_1 2 5 mid 1
#> series_1 3 2 low 1
#> series_1 4 9 high 1
#> series_1 5 3 low 1
#> series_1 6 7 high 1
#> series_1 7 4 mid 1
#> series_1 8 8 high 1
discretize(c(3, 1, 4, 1, 5, 9, 2, 6), method = "ordinal", m = 3)
#> <tsn_states> ordinal discretization (transform: none): 8 observations, 5 states
#> id time value state probability
#> series_1 1 3 3 1
#> series_1 2 1 2 1
#> series_1 3 4 3 1
#> series_1 4 1 1 1
#> series_1 5 5 4 1
#> series_1 6 9 5 1
#> series_1 7 2 5 1
#> series_1 8 6 5 1
discretize(c(10, 12, 8, 40, 44, 9), method = "width", transform = "log")
#> <tsn_states> width discretization (transform: log): 6 observations, 2 states
#> id time value state probability
#> series_1 1 10 1 1
#> series_1 2 12 1 1
#> series_1 3 8 1 1
#> series_1 4 40 2 1
#> series_1 5 44 2 1
#> series_1 6 9 1 1
