pyhctsa.operations.information.automutual_info

pyhctsa.operations.information.automutual_info(y, time_delay=1, est_method='kernel', extra_param=None)

Compute time-delayed automutual information of a time series.

Calculates the mutual information between a time series and its time-delayed version using various estimation methods from the JIDT (Java Information Dynamics Toolkit).

References

Parameters:
y : array-like

Input time series (1D).

time_delay : int, str, or list of int, optional

Time lag(s) for automutual information calculation. Can be:

  • int: a fixed lag

  • list of int: multiple lags

  • ’ac’: first zero-crossing of autocorrelation

  • ’tau’: same as ‘ac’

Default is 1.

est_method : {'gaussian', 'kernel', 'kraskov1', 'kraskov2'}, optional

Method for estimating mutual information:

  • ’gaussian’: Assumes Gaussian variables

  • ’kernel’: Kernel density estimation (default)

  • ’kraskov1’: Kraskov estimator 1 (KSG1)

  • ’kraskov2’: Kraskov estimator 2 (KSG2)

extra_param : int or str, optional

Extra parameter for the estimator. For Kraskov estimators, this sets the number of nearest neighbors ‘k’ (default is 3).

Returns:

If single time_delay:

float: The automutual information value

If multiple time_delay:

dict: Keys are f”ami{delay}”, values are corresponding AMI values

Return type:

float or dict