Skip to main content

Paper-aligned AMI and extension pAMI diagnostics for forecastability triage

Project description

Forecastability Triage Toolkit

A deterministic forecastability triage toolkit with AMI as the paper-aligned foundation and pAMI as a project extension.

CI Version Docs Python 3.11-3.12 Based on arXiv:2601.10006

This repository provides a deterministic triage workflow for deciding whether a time series shows exploitable structure before you commit to expensive model search. The maintained package facade exposes run_triage, run_batch_triage, analyzers, request/result models, config models, dataset helpers, and the scorer registry through forecastability and forecastability.triage.

Package And API Quickstart

Install the package surface:

pip install dependence-forecastability

Optional runtime extras:

pip install "dependence-forecastability[transport]"
pip install "dependence-forecastability[agent]"

Run one deterministic triage call through the top-level facade:

from forecastability import TriageRequest, generate_ar1, run_triage

series = generate_ar1(n_samples=300, phi=0.8, random_state=42)
result = run_triage(
    TriageRequest(
        series=series,
        goal="univariate",
        max_lag=20,
        n_surrogates=99,
        random_state=42,
    )
)

summary = {
    "blocked": result.blocked,
    "readiness_status": result.readiness.status.value,
    "compute_surrogates": None if result.method_plan is None else result.method_plan.compute_surrogates,
    "forecastability_class": None if result.interpretation is None else result.interpretation.forecastability_class,
    "primary_lags": [] if result.interpretation is None else list(result.interpretation.primary_lags),
}
print(summary)

Transport and runtime entry points:

Surface Entry point Stability
Python facade forecastability, forecastability.triage Stable
CLI forecastability Beta
HTTP API forecastability.adapters.api:app Beta
Dashboard forecastability-dashboard Beta
MCP server adapter surface Experimental
Agent narration adapter surface Experimental

Repository Workflow

If you are working in the repository rather than installing the package, start here:

uv sync

Canonical maintainer scripts:

Script Role
scripts/run_canonical_triage.py Canonical single-series workflow
scripts/run_benchmark_panel.py Benchmark-panel workflow
scripts/build_report_artifacts.py Report artifact builder

Secondary utilities:

  • scripts/download_data.py
  • scripts/run_exog_analysis.py
  • scripts/check_notebook_contract.py
  • scripts/rebuild_benchmark_fixture_artifacts.py
  • scripts/rebuild_diagnostic_regression_fixtures.py

Current config status:

Config Current role
configs/benchmark_panel.yaml Active benchmark-panel configuration
configs/canonical_examples.yaml Descriptive reference for canonical examples, not the root runner's only source of truth
configs/interpretation_rules.yaml Reference thresholds for interpretation policy
configs/benchmark_exog_panel.yaml Secondary exogenous benchmark workflow
configs/exogenous_screening_workbench.yaml Secondary workbench configuration
configs/robustness_study.yaml Secondary robustness-study workflow

Notebook Path And Artifact Surfaces

The canonical notebook path is:

  1. docs/notebooks/README.md
  2. notebooks/walkthroughs/00_air_passengers_showcase.ipynb
  3. notebooks/walkthroughs/01 through 04
  4. notebooks/triage/01 through 06 for deep dives

Main checked-in artifact surfaces:

  • outputs/json/canonical_examples_summary.json and related canonical JSON outputs
  • outputs/tables/*.csv
  • outputs/reports/*.md

[!NOTE] Checked-in artifacts are reference outputs. They are useful examples of the output surface, but they should not be treated as guaranteed-fresh build products for the current working tree.

Statistical Notes

  • AMI is computed per horizon rather than aggregated before computation.
  • pAMI is a project extension and a linear-residual approximation, not exact conditional mutual information.
  • Surrogate significance uses phase-randomized FFT surrogates with at least 99 surrogates and two-sided 95% bands.
  • “Significance skipped” and “no significant lags” are different outcomes. Use compute_surrogates or the route choice to tell them apart.
  • In rolling-origin workflows, diagnostics are computed on the training window only.
  • Phase surrogates can be conservative for strongly periodic series.

Documentation Map

Need Start here
Documentation index by role docs/README.md
Stable imports and runtime entry points docs/public_api.md
Live module layout docs/code/module_map.md
HTTP API contract docs/api_contract.md
Notebook path docs/notebooks/README.md
Contributor workflow docs/maintenance/developer_guide.md

For the repository-wide docs map, see docs/README.md.

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

dependence_forecastability-0.2.0.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

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

dependence_forecastability-0.2.0-py3-none-any.whl (184.4 kB view details)

Uploaded Python 3

File details

Details for the file dependence_forecastability-0.2.0.tar.gz.

File metadata

File hashes

Hashes for dependence_forecastability-0.2.0.tar.gz
Algorithm Hash digest
SHA256 99573db7b0fe1af4abfd25202769b16ec3681a37765cc55428fb9f97fcdf0f65
MD5 c5d0c23ab4344d196dc053115f3c3856
BLAKE2b-256 06e3698440664e24173b6b44448ab7f149bc6dff8039c280582cbb64dca67f3a

See more details on using hashes here.

Provenance

The following attestation bundles were made for dependence_forecastability-0.2.0.tar.gz:

Publisher: publish-pypi.yml on AdamKrysztopa/dependence-forecastability

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

File details

Details for the file dependence_forecastability-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for dependence_forecastability-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ac77b0c590ea22aa71d5ff8e4b18338a64960dbc313b81674f6209694ed3555a
MD5 c06846c60279ea8b0b24acc102bcc2c8
BLAKE2b-256 3919ceea56ab9fd031559a9bbe2c78fc684ed546280bd7bff5fe6f78a03e10e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for dependence_forecastability-0.2.0-py3-none-any.whl:

Publisher: publish-pypi.yml on AdamKrysztopa/dependence-forecastability

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