pyhctsa.operations.correlation.oversampling¶
- pyhctsa.operations.correlation.oversampling(y)¶
Detects temporal oversampling relative to a series’ own dynamics.
Implements the oversampling-detection statistic eta (and its downsampling correction) from the ‘oversampling’ stage of the Chaos Decision Tree Algorithm [1]:
\[\eta = \frac{\mathrm{range}(y)}{\langle |\Delta y| \rangle}\]A large eta means consecutive samples are, on average, tiny relative to the full dynamic range the series explores – i.e., the series is sampled much faster than its own dynamics move, so consecutive points are close to redundant. Toker et al. flag eta > 10 as ‘oversampled’: this inflates the apparent smoothness/determinism of a series and can bias downstream nonlinear statistics (their motivation: left uncorrected, it distorts their 0-1 test for chaos – cf.
zero_one_test). Their correction is to iteratively halve the sampling rate (keep every second point) until eta <= 10 or fewer than 100 points remain.cf.
zero_one_testfor the chaos-classification stage of the same pipeline, andpermutation_entropy/surrogate_testfor its stochasticity-testing stage; this function covers the oversampling-diagnosis stage instead. Note eta is scale- and location-invariant (a ratio of two amplitude-unit quantities), so z-scored or raw y give identical results.References
- Parameters:¶
- y : array-like¶
The input time series.
- Returns:¶
- Dictionary containing:
’eta’: The oversampling statistic, range(y)/mean(|diff(y)|).
’etaRobust’: The same ratio with range replaced by a 5th-95th percentile range, since eta’s numerator (a global max-min) is a single-outlier-sensitive statistic; etaRobust asks the same oversampling question without letting one extreme point set the scale.
’numHalvings’: The number of times Toker et al.’s halving procedure would downsample y before eta <= 10 (or fewer than 100 points would remain) – a direct, interpretable severity measure.
’etaAfterDownsampling’: The value of eta after applying numHalvings halvings (<=10, unless the series was too short to fully correct).
- Return type:¶
dict