Skip to main content

Information-Geometric Anomaly Detection via Fisher–Rao Scalar Curvature

Project description

Verified

GitHub Actions validated: 54/54 tests passed Validated commit 81dd1eb

IGAD-VER-1.0.0 was validated on GitHub Actions at commit 81dd1eb4540643083854232d9645f6add4150512. The PyPI release was built from commit 156160d59f288d11451895ecb8c234ff7ef9c895. The validation run executed on GitHub-hosted Linux runners and completed successfully across Python 3.10, 3.11, and 3.12, producing separate test-report artifacts for each runtime.

View the exact GitHub Actions validation run.


What is IGAD?

IGAD detects anomalies by measuring scalar curvature on the statistical manifold of an exponential family. Instead of comparing moments directly, it contracts the full third cumulant tensor against the Fisher–Rao metric, extracting shape information that no single moment captures.


Experimental Results

All results are reproducible via experiments/.

Easy Case — Gamma vs Gamma

Different variance.

Method AUC-ROC
IGAD (curvature) 1.0000
Variance shift 1.0000
Skewness shift 0.9834
Mean shift 0.8150

IGAD achieves perfect separation. Variance shift matches it, so this regime does not isolate the geometric advantage.

Hard Case — Matched Mean and Variance

Same mean = 4.0. Same variance = 2.0. Gamma vs LogNormal.
Evaluation: n = 200, 5 seeds.

Method Mean AUC ± Std
IGAD (curvature) 0.6542 0.0469
MLE skewness (control) 0.6016 0.0382
Raw skewness 0.6794 0.0722
Mean shift 0.5240 0.0618
Variance shift 0.5818 0.0266

IGAD beats the MLE-skewness control by +0.053, showing that scalar curvature contributes signal beyond MLE efficiency alone.

Scaling with Batch Size

Seed = 42.

n IGAD MLE-skew Gap
100 0.5704 0.5764 −0.006
200 0.6838 0.6098 +0.074
500 0.6748 0.5846 +0.090
1000 0.7892 0.8214 −0.032

The geometric advantage is strongest at n = 200–500. At n = 1000, model misspecification degrades the curvature signal.


Honest Limitations

  • Model specification required: IGAD needs a correctly chosen exponential family.
  • 1D families such as Poisson, Exponential, and Bernoulli are flat, with R = 0.
  • Model-free methods can dominate at n > 500 under misspecification.
  • Computational cost is O(d³) tensor contractions per evaluation.

Falsifiable Claim

IGAD's advantage over MLE-derived skewness, using the identical MLE fit but discarding the curvature tensor, shows that the full contraction ‖T‖²_g extracts shape information not captured by any single moment, raw or MLE-fitted.

This claim is supported in the tested regime n = 200–500 and remains falsifiable outside that regime.


Verified Test Suite


Install

pip install visigence-igad

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

visigence_igad-1.0.1.tar.gz (11.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

visigence_igad-1.0.1-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file visigence_igad-1.0.1.tar.gz.

File metadata

  • Download URL: visigence_igad-1.0.1.tar.gz
  • Upload date:
  • Size: 11.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for visigence_igad-1.0.1.tar.gz
Algorithm Hash digest
SHA256 8115c52c87a4bb2c74694e1b0c0fcdf89d9908fcf85f886828667d972d94b8bb
MD5 7ddd81864adbe76fa1e234a5a8bf99fb
BLAKE2b-256 85a1f2cf992617039ebd391e3300bd30c22eae4b652dfc636e62504761e87b1f

See more details on using hashes here.

Provenance

The following attestation bundles were made for visigence_igad-1.0.1.tar.gz:

Publisher: publish.yml on Visigence/IGAD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file visigence_igad-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: visigence_igad-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 10.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for visigence_igad-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 676707d27039e198fb94def1c71813b4357e97fe6a54b1deb0f682a73ccdd20a
MD5 22f64e4e2bddc809519436be3c3688c7
BLAKE2b-256 c7e734022d3401bf8fdc4c03ec18a8bfa7b225dace6e70c0e3a0f7a3aee86abb

See more details on using hashes here.

Provenance

The following attestation bundles were made for visigence_igad-1.0.1-py3-none-any.whl:

Publisher: publish.yml on Visigence/IGAD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page