Skip to content

PySPI v1.0.3

Choose a tag to compare

@joshuabmoore joshuabmoore released this 22 Apr 19:40
· 92 commits to main since this release
0a53795

SPI Reproducibility Fix

pyspi v1.0.3 is a patch update that addresses inconsistent results observed in several Information Theoretic and Convergent Cross-Mapping (ccm) SPIs when running multiple trials on the same benchmarking dataset. As of this update, all 284 SPIs should now produce identical results across multiple runs on the same dataset.

Key Changes:

  • Upgraded jidt dependency from v1.5 to v1.6.1. jidt v1.6.1 includes a new NOISE_SEED property for all jidt calculators, enabling consistent results across multiple runs. For more information, see here. Since jidt is self-contained within the pyspi package, upgrading the jidt version should not introduce any breaking changes for users who have already installed pyspi.
  • Added random seed support within pyspi for jidt-based SPIs. All SPIs that rely on the jidt library now utilise a fixed random seed to ensure reproducibility across runs.
  • Introduced random seed for Convergent Cross-Mapping (ccm) SPI. The ccm SPI now uses a fixed random seed, addressing the previously observed stochasticity in its outputs.

Important Note to Users:
The addition of fixed random seeds for the affected SPIs may result in slightly different output values compared to previous versions of pyspi. This change is due to the improved consistency and reproducibility of the SPI outputs. Please keep this in mind if making exact numerical comparisons with previous versions of pyspi.

Affected SPIs:
The following SPIs, which previously produced varying outputs across multiple trials, should now yield consistent results:

  • ccm (all 9 estimators)
  • cce_kozachenko
  • ce_kozachenko
  • di_kozachenko
  • je_kozachenko
  • si_kozachenko_k-1