
Data-driven, outlier-robust dynamic-state thresholds
Source:R/sniff_trajectory_dynamics.R
data_state_thresholds.RdDerives a fixed_state_thresholds()-shaped list from an observed
sniff_trajectory_dynamics() table, so the cut points adapt to the dataset
instead of fixed constants. The growth cuts are placed k robust deviations
(median absolute deviation) from the median, which resists outliers such as a
single fast-growing young core; the bounded metrics use their median as the
neutral split, and dormancy_share keeps the absolute majority rule (its
distribution is usually too concentrated at zero to standardize).
Arguments
- dyn
A
sniff_trajectory_dynamics()tibble; only its metric columns are read, so the classification it currently carries is irrelevant.- k
Number of robust deviations (scaled MAD) above/below the median for the growth cuts (default 1):
emergence_growth = median + k*MADanddecline_growth = median - k*MADover the living cores'growth_rate. Largerkwidens the maturity band (fewer emergence / dormancy calls).
Value
A list shaped like fixed_state_thresholds():
emergence_growth, decline_growth (robust, from the centrals' growth),
emergence_novelty (median novelty of the centrals), convergence_entropy
(median destination entropy of the absorbed), and dormancy_share (the
default majority rule). Any quantity that cannot be derived (too few points,
zero spread) falls back to its fixed_state_thresholds() value.