jpt.learning.dependency.xi

Xi-correlation-based dependency discovery.

Uses Chatterjee’s xi coefficient to determine which feature-target pairs exhibit statistically significant functional dependence.

Classes

XiDependencyDiscovery

Dependency discovery via Chatterjee's xi.

Module Contents

class jpt.learning.dependency.xi.XiDependencyDiscovery(alpha: float = 0.05)

Bases: jpt.learning.dependency.base.DependencyDiscovery

Dependency discovery via Chatterjee’s xi.

Computes the xi correlation between all feature-target pairs and retains only those where the correlation is statistically significant under the asymptotic null distribution of xi.

Under H0 (independence with continuous Y), sqrt(n) * xi ~ N(0, 2/5).

Parameters:

alpha – significance level for the independence test

alpha: float = 0.05
__call__(data: numpy.ndarray, features: list[jpt.variables.Variable], targets: list[jpt.variables.Variable], variables: list[jpt.variables.Variable]) dict[jpt.variables.Variable, list[jpt.variables.Variable]]

Discover dependencies via xi correlation.

Parameters:
  • data – data array (n x d)

  • features – list of feature Variables

  • targets – list of target Variables

  • variables – list of all Variables

Returns:

dict mapping features to their dependent targets

to_json() dict[str, Any]

Serialize configuration.

Returns:

JSON-serializable dict

classmethod from_json(data: dict[str, Any]) XiDependencyDiscovery

Restore from JSON.

Parameters:

data – dict from to_json()

Returns:

XiDependencyDiscovery instance