pyhctsa.operations.stationarity.sliding_window¶
-
pyhctsa.operations.stationarity.sliding_window(y, window_stat=
'mean', across_win_stat='std', num_seg=5, inc_move=2, asym_tau=1)¶ Sliding window measures of stationarity.
Slides a window along the time series, measures a statistic (
window_stat) in each window, and outputs a summary (across_win_stat) of this set of local estimates of that statistic. Each window is1/num_segof the series long and moves on by1/inc_moveof its own length at each step. A stationary series gives similar values in every window.References
- Parameters:¶
- y : array-like¶
The input time series to analyze.
- window_stat : str, optional (default='mean')¶
Statistic to calculate in each window:
’mean’: arithmetic mean
’std’: standard deviation
’ent’: distribution entropy (kernel-smoothed)
’permen’: normalized permutation entropy, PermEn(3, 1)
’specen’: normalized Shannon spectral entropy of the window’s power spectrum (window mean removed before the FFT; the DC bin is excluded and the entropy is normalized by the log of the number of frequencies,
floor(n/2))’mom3’: skewness (standardized third moment)
’mom4’: kurtosis (standardized fourth moment)
’mom5’: standardized fifth moment
’lillie’: the Lilliefors test statistic (KS distance from a fitted Gaussian CDF), not its p-value
’AC1’: lag-1 autocorrelation
’asymAC1’:
mean(x_t * x_{t+tau} * (x_{t+tau} - x_t))with x z-scored within the window (tau = asym_tau): a nonlinear autocorrelation variant that is antisymmetric under time reversal, so zero in expectation for any time-reversible process’apen’, ‘sampen’: approximate entropy (m=1, r=0.2) and sample entropy (m=2, r=0.1) of each window (kept for backward compatibility; hctsa does not offer them)
Default is
'mean'.- across_win_stat : str, optional¶
Method to summarize the sequence of local estimates:
’std’: standard deviation, normalized by that of the full series
’stdratio’: standard deviation, relative to the standard deviation expected from sampling error alone if the series were stationary: about 1 for a stationary series at any length, and larger when the local statistic changes over time. With a fixed number of windows, the plain ‘std’ is mostly that sampling error, so it shrinks as the windows grow. The expected spread comes from the variance of the statistic in matched block surrogates whose windows sample the whole series evenly (each window made of one block from every stretch of the series, so changes over time cancel), allowing for the correlation of overlapping windows (as in
pyhctsa.operations.model_fit.fit_subsegments()). The surrogates use a fixed seed, so the output is reproducible. NaN if no spread is expected (for example, a constant series)’ent’: (kernel-smoothed) distributional entropy of the sequence of local estimates (
pyhctsa.operations.distribution.fit_kernel_smooth(); NaN if the local estimates are all the same)’entnorm’: the same entropy, of the local estimates divided by their stationary standard deviation (as for ‘stdratio’). The entropy of the plain estimates moves with the log of their spread, so it falls as the windows grow; in these units it does not
’permen’: normalized permutation entropy, PermEn(3, 1), of the sequence of local estimates
’apen’, ‘sampen’: approximate entropy (m=1, r=0.2) and sample entropy (m=2, r=0.15) (kept for backward compatibility; hctsa does not offer them)
Default is
'std'.- num_seg : int, optional¶
Number of segments to divide the time series into, which sets the window length,
floor(N / num_seg). Default is 5.- inc_move : int, optional¶
Controls window overlap - window moves by window_length/inc_move at each step (e.g., inc_move=2 means 50% overlap between windows). Default is 2.
- asym_tau : int or str, optional¶
The lag, tau, of the ‘asymAC1’ window statistic (ignored for other statistics): an integer number of samples, or a rule for
pyhctsa.utils.get_tau()(e.g.,'ac1e', the floor of the first 1/e crossing of the autocorrelation function) applied to the whole series, so that the lag reflects the series’ own correlation time. A window that is not longer thantau + 1samples gives NaN. Default is 1.
- Returns:¶
The summary,
across_win_stat, of the local estimates ofwindow_stat: how the local statistic varies across the time series (for ‘std’, relative to the full-series standard deviation; for ‘stdratio’, relative to the spread expected from sampling error). NaN if the windows are too short, or if all window statistics are NaN.- Return type:¶
float